Mercurial > hgrepos > Python2 > PyMuPDF
comparison mupdf-source/docs/examples/pdf-merge.js @ 3:2c135c81b16c
MERGE: upstream PyMuPDF 1.26.4 with MuPDF 1.26.7
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Mon, 15 Sep 2025 11:44:09 +0200 |
| parents | b50eed0cc0ef |
| children |
comparison
equal
deleted
inserted
replaced
| 0:6015a75abc2d | 3:2c135c81b16c |
|---|---|
| 1 // A re-implementation of "mutool merge" in JavaScript. | |
| 2 | |
| 3 import * as mupdf from "mupdf" | |
| 4 | |
| 5 function copyPage(dstDoc, srcDoc, pageNumber, dstFromSrc) { | |
| 6 var srcPage, dstPage | |
| 7 srcPage = srcDoc.findPage(pageNumber) | |
| 8 dstPage = dstDoc.newDictionary() | |
| 9 dstPage.Type = dstDoc.newName("Page") | |
| 10 if (srcPage.MediaBox) dstPage.MediaBox = dstFromSrc.graftObject(srcPage.MediaBox) | |
| 11 if (srcPage.Rotate) dstPage.Rotate = dstFromSrc.graftObject(srcPage.Rotate) | |
| 12 if (srcPage.Resources) dstPage.Resources = dstFromSrc.graftObject(srcPage.Resources) | |
| 13 if (srcPage.Contents) dstPage.Contents = dstFromSrc.graftObject(srcPage.Contents) | |
| 14 dstDoc.insertPage(-1, dstDoc.addObject(dstPage)) | |
| 15 } | |
| 16 | |
| 17 function copyAllPages(dstDoc, srcDoc) { | |
| 18 var dstFromSrc = dstDoc.newGraftMap() | |
| 19 var k, n = srcDoc.countPages() | |
| 20 for (k = 0; k < n; ++k) | |
| 21 copyPage(dstDoc, srcDoc, k, dstFromSrc) | |
| 22 } | |
| 23 | |
| 24 function pdfmerge() { | |
| 25 var srcDoc, dstDoc, i | |
| 26 | |
| 27 dstDoc = new mupdf.PDFDocument() | |
| 28 for (i = 3; i < process.argv.length; ++i) { | |
| 29 srcDoc = mupdf.Document.openDocument(process.argv[i]) | |
| 30 copyAllPages(dstDoc, srcDoc) | |
| 31 } | |
| 32 dstDoc.save(process.argv[2], "compress") | |
| 33 } | |
| 34 | |
| 35 if (process.argv.length < 4) | |
| 36 print("usage: mutool run pdf-merge.js output.pdf input1.pdf input2.pdf ...") | |
| 37 else | |
| 38 pdfmerge() |
