Mercurial > hgrepos > Python2 > PyMuPDF
diff mupdf-source/docs/examples/draw-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/draw-device.js Mon Sep 15 11:43:07 2025 +0200 @@ -0,0 +1,54 @@ +// Use device interface to draw some graphics and save as a PNG. + +import * as mupdf from "mupdf" + +var font = new mupdf.Font("Times-Roman") +var image = new mupdf.Image("huntingofthesnark.png") +var path, text + +var pixmap = new mupdf.Pixmap(mupdf.ColorSpace.DeviceRGB, [ 0, 0, 500, 600 ], false) +pixmap.clear(255) +var device = new mupdf.DrawDevice(mupdf.Matrix.identity, pixmap) +var transform = [ 2, 0, 0, 2, 0, 0 ] +{ + text = new mupdf.Text() + { + text.showString(font, [ 16, 0, 0, -16, 100, 30 ], "Hello, world!") + text.showString(font, [ 0, 16, 16, 0, 15, 100 ], "Hello, world!") + } + device.fillText(text, transform, mupdf.ColorSpace.DeviceGray, [ 0 ], 1) + + path = new mupdf.Path() + { + path.moveTo(10, 10) + path.lineTo(90, 10) + path.lineTo(90, 90) + path.lineTo(10, 90) + path.closePath() + } + device.fillPath(path, false, transform, mupdf.ColorSpace.DeviceRGB, [ 1, 0, 0 ], 1) + device.strokePath( + path, + { dashes: [ 5, 10 ], lineWidth: 3, lineCap: "Round" }, + transform, + mupdf.ColorSpace.DeviceRGB, + [ 0, 0, 0 ], + 1 + ) + + path = new mupdf.Path() + { + path.moveTo(100, 100) + path.curveTo(150, 100, 200, 150, 200, 200) + path.curveTo(200, 300, 0, 300, 100, 100) + path.closePath() + } + device.clipPath(path, true, transform) + { + device.fillImage(image, Matrix.concat(transform, [ 300, 0, 0, 300, 0, 0 ]), 1) + } + device.popClip() +} +device.close() + +pixmap.saveAsPNG("out.png")
