summaryrefslogtreecommitdiff
path: root/docs/mutool/examples/pdf-merge.js
diff options
context:
space:
mode:
Diffstat (limited to 'docs/mutool/examples/pdf-merge.js')
-rw-r--r--docs/mutool/examples/pdf-merge.js67
1 files changed, 0 insertions, 67 deletions
diff --git a/docs/mutool/examples/pdf-merge.js b/docs/mutool/examples/pdf-merge.js
deleted file mode 100644
index d8cdcfcb..00000000
--- a/docs/mutool/examples/pdf-merge.js
+++ /dev/null
@@ -1,67 +0,0 @@
-// A re-implementation of "mutool merge" in JavaScript.
-
-function graftObject(dstDoc, srcDoc, srcObj, map) {
- var srcNum, dstRef, dstObj
- if (!map)
- map = []
- if (srcObj.isIndirect()) {
- srcNum = srcObj.toIndirect()
- if (map[srcNum])
- return map[srcNum]
- map[srcNum] = dstRef = dstDoc.createObject()
- dstRef.writeObject(graftObject(dstDoc, srcDoc, srcObj.resolve(), map))
- if (srcObj.isStream())
- dstRef.writeRawStream(srcObj.readRawStream())
- return dstRef
- }
- if (srcObj.isArray()) {
- dstObj = dstDoc.newArray()
- srcObj.forEach(function (key, val) {
- dstObj[key] = graftObject(dstDoc, srcDoc, val, map)
- })
- return dstObj
- }
- if (srcObj.isDictionary()) {
- dstObj = dstDoc.newDictionary()
- srcObj.forEach(function (key, val) {
- dstObj[key] = graftObject(dstDoc, srcDoc, val, map)
- })
- return dstObj
- }
- return srcObj /* primitive objects are not bound to a document */
-}
-
-function copyPage(dstDoc, srcDoc, pageNumber, map) {
- var srcPage, dstPage
- srcPage = srcDoc.findPage(pageNumber)
- dstPage = dstDoc.newDictionary()
- dstPage.Type = dstDoc.newName("Page")
- if (srcPage.MediaBox) dstPage.MediaBox = graftObject(dstDoc, srcDoc, srcPage.MediaBox, map)
- if (srcPage.Rotate) dstPage.Rotate = graftObject(dstDoc, srcDoc, srcPage.Rotate, map)
- if (srcPage.Resources) dstPage.Resources = graftObject(dstDoc, srcDoc, srcPage.Resources, map)
- if (srcPage.Contents) dstPage.Contents = graftObject(dstDoc, srcDoc, srcPage.Contents, map)
- dstDoc.insertPage(-1, dstDoc.addObject(dstPage))
-}
-
-function copyAllPages(dstDoc, srcDoc) {
- var k, n = srcDoc.countPages()
- var srcMap = []
- for (k = 0; k < n; ++k)
- copyPage(dstDoc, srcDoc, k, srcMap)
-}
-
-function pdfmerge() {
- var srcDoc, dstDoc, i
-
- dstDoc = new PDFDocument()
- for (i = 2; i < argv.length; ++i) {
- srcDoc = new PDFDocument(argv[i])
- copyAllPages(dstDoc, srcDoc)
- }
- dstDoc.save(argv[1], "compress")
-}
-
-if (argv.length < 3)
- print("usage: mutool run pdf-merge.js output.pdf input1.pdf input2.pdf ...")
-else
- pdfmerge()