Mercurial > hgrepos > Python2 > PyMuPDF
comparison 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 |
comparison
equal
deleted
inserted
replaced
| 1:1d09e1dec1d9 | 2:b50eed0cc0ef |
|---|---|
| 1 // Use device interface to draw some graphics and save as a PNG. | |
| 2 | |
| 3 import * as mupdf from "mupdf" | |
| 4 | |
| 5 var font = new mupdf.Font("Times-Roman") | |
| 6 var image = new mupdf.Image("huntingofthesnark.png") | |
| 7 var path, text | |
| 8 | |
| 9 var pixmap = new mupdf.Pixmap(mupdf.ColorSpace.DeviceRGB, [ 0, 0, 500, 600 ], false) | |
| 10 pixmap.clear(255) | |
| 11 var device = new mupdf.DrawDevice(mupdf.Matrix.identity, pixmap) | |
| 12 var transform = [ 2, 0, 0, 2, 0, 0 ] | |
| 13 { | |
| 14 text = new mupdf.Text() | |
| 15 { | |
| 16 text.showString(font, [ 16, 0, 0, -16, 100, 30 ], "Hello, world!") | |
| 17 text.showString(font, [ 0, 16, 16, 0, 15, 100 ], "Hello, world!") | |
| 18 } | |
| 19 device.fillText(text, transform, mupdf.ColorSpace.DeviceGray, [ 0 ], 1) | |
| 20 | |
| 21 path = new mupdf.Path() | |
| 22 { | |
| 23 path.moveTo(10, 10) | |
| 24 path.lineTo(90, 10) | |
| 25 path.lineTo(90, 90) | |
| 26 path.lineTo(10, 90) | |
| 27 path.closePath() | |
| 28 } | |
| 29 device.fillPath(path, false, transform, mupdf.ColorSpace.DeviceRGB, [ 1, 0, 0 ], 1) | |
| 30 device.strokePath( | |
| 31 path, | |
| 32 { dashes: [ 5, 10 ], lineWidth: 3, lineCap: "Round" }, | |
| 33 transform, | |
| 34 mupdf.ColorSpace.DeviceRGB, | |
| 35 [ 0, 0, 0 ], | |
| 36 1 | |
| 37 ) | |
| 38 | |
| 39 path = new mupdf.Path() | |
| 40 { | |
| 41 path.moveTo(100, 100) | |
| 42 path.curveTo(150, 100, 200, 150, 200, 200) | |
| 43 path.curveTo(200, 300, 0, 300, 100, 100) | |
| 44 path.closePath() | |
| 45 } | |
| 46 device.clipPath(path, true, transform) | |
| 47 { | |
| 48 device.fillImage(image, Matrix.concat(transform, [ 300, 0, 0, 300, 0, 0 ]), 1) | |
| 49 } | |
| 50 device.popClip() | |
| 51 } | |
| 52 device.close() | |
| 53 | |
| 54 pixmap.saveAsPNG("out.png") |
