Mercurial > hgrepos > Python2 > PyMuPDF
view mupdf-source/docs/examples/copy-outline.js @ 30:fc4555a3097b
>>>>> tag v1.26.4+1 for changeset f76e6575dca9
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Fri, 19 Sep 2025 19:59:44 +0200 |
| parents | b50eed0cc0ef |
| children |
line wrap: on
line source
// Copy an outline from one document to another PDF file. // Can be used to transfer outlines when converting from another format into PDF. // Can also be used to change outlines to use page numbers instead of named destinations. if (scriptArgs.length != 3) { print("usage: mutool run copy-outline.js a.xps b.pdf output.pdf"); quit(); } function copy_outline_rec(cursor, input, list) { list.forEach(function (node) { var page = input.resolveLink(node.uri) cursor.insert({ title: node.title, uri: "#page=" + (page + 1) }) if (node.down) { cursor.prev() cursor.down() copy_outline_rec(cursor, input, node.down) cursor.up() cursor.next() } }) } function copy_outline(output, input, list) { var cursor = output.outlineIterator() while (cursor.item()) cursor.delete() copy_outline_rec(cursor, input, list) } var input = mupdf.Document.openDocument(scriptArgs[0]) var output = mupdf.Document.openDocument(scriptArgs[1]) copy_outline(output, input, input.loadOutline()) output.save(scriptArgs[2], "incremental");
