Mercurial > hgrepos > Python2 > PyMuPDF
view mupdf-source/docs/examples/fix-s22pdf.js @ 28:dcabf2733f0f
Allow PEP 440 local version version specifiers in a PyMuPDF version
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Fri, 19 Sep 2025 19:58:43 +0200 |
| parents | b50eed0cc0ef |
| children |
line wrap: on
line source
// A simple script to fix the broken fonts in PDF files generated by S22PDF. if (scriptArgs.length != 2) { print("usage: mutool run fix-s22pdf.js input.pdf output.pdf"); quit(); } var doc = Document.openDocument(scriptArgs[0]); var font = new Font("zh-Hans"); var song = doc.addCJKFont(font, "zh-Hans", "H", "serif"); var heiti = doc.addCJKFont(font, "zh-Hans", "H", "sans-serif"); song.Encoding = 'GBK-EUC-H'; heiti.Encoding = 'GBK-EUC-H'; var MAP = { "/#CB#CE#CC#E5": song, // SimSun "/#BA#DA#CC#E5": heiti, // SimHei "/#BF#AC#CC#E5_GB2312": song, // SimKai "/#B7#C2#CB#CE_GB2312": heiti, // SimFang "/#C1#A5#CA#E9": song, // SimLi } var i, n = doc.countPages(); for (i = 0; i < n; ++i) { var fonts = doc.findPage(i).Resources.Font; if (fonts) { fonts.forEach(function (font, name) { if (font.BaseFont in MAP && font.Encoding == 'WinAnsiEncoding') fonts[name] = MAP[font.BaseFont]; }); } } doc.save(scriptArgs[1]);
