Mercurial > hgrepos > Python2 > PyMuPDF
diff mupdf-source/docs/examples/trace-device.js @ 2:b50eed0cc0ef upstream
ADD: MuPDF v1.26.7: the MuPDF source as downloaded by a default build of PyMuPDF 1.26.4.
The directory name has changed: no version number in the expanded directory now.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Mon, 15 Sep 2025 11:43:07 +0200 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mupdf-source/docs/examples/trace-device.js Mon Sep 15 11:43:07 2025 +0200 @@ -0,0 +1,135 @@ +import * as mupdf from "mupdf" + +var Q = JSON.stringify + +var pathPrinter = { + moveTo: function (x,y) { print("moveTo", x, y) }, + lineTo: function (x,y) { print("lineTo", x, y) }, + curveTo: function (x1,y1,x2,y2,x3,y3) { print("curveTo", x1, y1, x2, y2, x3, y3) }, + closePath: function () { print("closePath") }, +} + +var textPrinter = { + beginSpan: function (f,m,wmode, bidi, dir, lang) { + print("beginSpan",f,m,wmode,bidi,dir,repr(lang)); + }, + showGlyph: function (f,m,g,u,v,b) { print("glyph",f,m,g,u,v,b) }, + endSpan: function () { print("endSpan"); } +} + +var traceDevice = { + fillPath: function (path, evenOdd, ctm, colorSpace, color, alpha) { + print("fillPath", evenOdd, ctm, colorSpace, color, alpha) + path.walk(pathPrinter) + }, + clipPath: function (path, evenOdd, ctm) { + print("clipPath", evenOdd, ctm) + path.walk(pathPrinter) + }, + strokePath: function (path, stroke, ctm, colorSpace, color, alpha) { + print("strokePath", Q(stroke), ctm, colorSpace, color, alpha) + path.walk(pathPrinter) + }, + clipStrokePath: function (path, stroke, ctm) { + print("clipStrokePath", Q(stroke), ctm) + path.walk(pathPrinter) + }, + + fillText: function (text, ctm, colorSpace, color, alpha) { + print("fillText", ctm, colorSpace, color, alpha) + text.walk(textPrinter) + }, + clipText: function (text, ctm) { + print("clipText", ctm) + text.walk(textPrinter) + }, + strokeText: function (text, stroke, ctm, colorSpace, color, alpha) { + print("strokeText", Q(stroke), ctm, colorSpace, color, alpha) + text.walk(textPrinter) + }, + clipStrokeText: function (text, stroke, ctm) { + print("clipStrokeText", Q(stroke), ctm) + text.walk(textPrinter) + }, + ignoreText: function (text, ctm) { + print("ignoreText", ctm) + text.walk(textPrinter) + }, + + fillShade: function (shade, ctm, alpha) { + print("fillShade", shade, ctm, alpha) + }, + fillImage: function (image, ctm, alpha) { + print("fillImage", image, ctm, alpha) + }, + fillImageMask: function (image, ctm, colorSpace, color, alpha) { + print("fillImageMask", image, ctm, colorSpace, color, alpha) + }, + clipImageMask: function (image, ctm) { + print("clipImageMask", image, ctm) + }, + + beginMask: function (area, luminosity, colorspace, color) { + print("beginMask", area, luminosity, colorspace, color) + }, + endMask: function () { + print("endMask") + }, + + popClip: function () { + print("popClip") + }, + + beginGroup: function (area, isolated, knockout, blendmode, alpha) { + print("beginGroup", area, isolated, knockout, blendmode, alpha) + }, + endGroup: function () { + print("endGroup") + }, + beginTile: function (area, view, xstep, ystep, ctm, id) { + print("beginTile", area, view, xstep, ystep, ctm, id) + return 0 + }, + endTile: function () { + print("endTile") + }, + beginLayer: function (name) { + print("beginLayer", name) + }, + endLayer: function () { + print("endLayer") + }, + beginStructure: function (structure, raw, uid) { + print("beginStructure", structure, raw, uiw) + }, + endStructure: function () { + print("endStructure") + }, + beginMetatext: function (meta, metatext) { + print("beginMetatext", meta, metatext) + }, + endMetatext: function () { + print("endMetatext") + }, + + renderFlags: function (set, clear) { + print("renderFlags", set, clear) + }, + setDefaultColorSpaces: function (colorSpaces) { + print("setDefaultColorSpaces", colorSpaces.getDefaultGray(), + colorSpaces.getDefaultRGB(), colorSpaces.getDefaultCMYK(), + colorSpaces.getOutputIntent()) + }, + + close: function () { + print("close") + }, +} + +if (scriptArgs.length != 2) + print("usage: mutool run trace-device.js document.pdf pageNumber") +else { + var doc = mupdf.Document.openDocument(scriptArgs[0]); + var page = doc.loadPage(parseInt(scriptArgs[1])-1); + page.run(traceDevice, mupdf.Matrix.identity); +}
