Mercurial > hgrepos > Python2 > PyMuPDF
view mupdf-source/docs/examples/pdf-merge.js @ 23:3b13504f9d89
Use the official packaging.version.Version to parse version strings.
While there revert the previons change to _int_rc(): it is not needed
now.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Fri, 19 Sep 2025 12:40:07 +0200 |
| parents | b50eed0cc0ef |
| children |
line wrap: on
line source
// A re-implementation of "mutool merge" in JavaScript. import * as mupdf from "mupdf" function copyPage(dstDoc, srcDoc, pageNumber, dstFromSrc) { var srcPage, dstPage srcPage = srcDoc.findPage(pageNumber) dstPage = dstDoc.newDictionary() dstPage.Type = dstDoc.newName("Page") if (srcPage.MediaBox) dstPage.MediaBox = dstFromSrc.graftObject(srcPage.MediaBox) if (srcPage.Rotate) dstPage.Rotate = dstFromSrc.graftObject(srcPage.Rotate) if (srcPage.Resources) dstPage.Resources = dstFromSrc.graftObject(srcPage.Resources) if (srcPage.Contents) dstPage.Contents = dstFromSrc.graftObject(srcPage.Contents) dstDoc.insertPage(-1, dstDoc.addObject(dstPage)) } function copyAllPages(dstDoc, srcDoc) { var dstFromSrc = dstDoc.newGraftMap() var k, n = srcDoc.countPages() for (k = 0; k < n; ++k) copyPage(dstDoc, srcDoc, k, dstFromSrc) } function pdfmerge() { var srcDoc, dstDoc, i dstDoc = new mupdf.PDFDocument() for (i = 3; i < process.argv.length; ++i) { srcDoc = mupdf.Document.openDocument(process.argv[i]) copyAllPages(dstDoc, srcDoc) } dstDoc.save(process.argv[2], "compress") } if (process.argv.length < 4) print("usage: mutool run pdf-merge.js output.pdf input1.pdf input2.pdf ...") else pdfmerge()
