mirror of
https://github.com/mozilla/pdf.js.git
synced 2026-04-18 19:24:04 +02:00
The current version 2.5 is from September 2014, which is almost 8 years old now. The new version 3.19.0 is from November 2017, which is still almost 5 years old, but is a step forward towards eventually using the most recent version. Note that we currently can't update any further; see #11802 for the details. Fortunately using this newer version only required a few changes: - The `ttx` output regexes needed updating to ignore comments that `ttx` now puts after some XML nodes (`<!-- ... -->` and `/* ... */`). - The `ttx` invocation now explicitly uses `python2` (except on Windows where this alias doesn't exist) since otherwise the font tests can't be run on modern systems anymore given that `python` is nowadays an alias for `python3`, and it now points at the new location of the `ttx.py` file since the `Tools` folder got removed. - The note about needing a 32-bit Python 2.6 version is dropped since it's obsolete: this version (and also the existing one already) work just fine on a 64-bit Python 2.7 as well.
41 lines
92 KiB
JavaScript
41 lines
92 KiB
JavaScript
import { decodeFontData, ttx, verifyTtxOutput } from "./fontutils.js";
|
|
import { CMapFactory } from "../../src/core/cmap.js";
|
|
import { Font } from "../../src/core/fonts.js";
|
|
import { Name } from "../../src/core/primitives.js";
|
|
import { Stream } from "../../src/core/stream.js";
|
|
import { ToUnicodeMap } from "../../src/core/to_unicode_map.js";
|
|
|
|
describe("font_fpgm", function () {
|
|
const font2324 = decodeFontData(
|
|
// eslint-disable-next-line max-len
|
|
"AAEAAAANAIAAAwBQT1MvMlNlbJwAAADcAAAAYGNtYXDrAFO9AAABPAAALKxjdnQgAzYCuwAALegAAAAMZnBnbQgKVdkAAC30AAACaGdseWa+m03rAAAwXAAAOERoZWFk9BT7TwAAaKAAAAA4aGhlYQWlFpUAAGjYAAAAJGhtdHgPKyHAAABo/AAAUqRsb2NhBA9dxAAAu6AAAFKobWF4cBY1AjUAAQ5IAAAAIG5hbWXZdYwDAAEOaAAAAhBwb3N0AAMAAAABEHgAAAAgcHJlcFyRbmMAARCYAAAAVAADAiQB9AAFAAACigK7AAAAjAKKArsAAAHfADEBAgAAAAAGAAAAAAAAAOAAEAFQAP3/AAAAIAAAAAQqMjEqAAAAIP//A+j+1ABkBBoB1QAAAAAAAAAAAgwC2QAAACAAAwAAAAEAAwABAAAADAAELKAAAADQAIAABgBQAH4emx75HxUfHR9FH00fVx9ZH1sfXR99H7QfxB/TH9sf7x/0H/4gZCBxII4glCCuILUguCDhIPAhCSEkITMhPCE/IUQhSyFOIX8hmSGmIaohtSHDIcwh1SHdIgAiAyINIhciGiIeIiAiLiI0Ij4iSSJNIlAiYiJlImsicyJ9IokijCKZIqcitSLDIsYiyCLjIwAjCyMjIyojpiOuJCQkaSVLJWwl/yYsJmcmbydAKgQqCS1lLW8uF6Yrp4ztwPsF+xf7Nvs8+z77QftE+0///wAAACAeAB6gHwAfGB8gH0gfUB9ZH1sfXR9fH4Afth/GH9Yf3R/yH/YgACBwIHQgkCChILAguCDQIOQhACELISYhNSE+IUEhSiFNIVMhkCGmIakhtSG8Icwh0CHdIgAiAiIFIg8iGSIdIiAiIyI0IjwiQCJNIlAiYCJkImoibSJ6IoAijCKPIqIisiLAIsUiyCLgIwAjCCMgIykjmyOuJAAkYCUAJVAlgCYsJmAmaSdAKgAqCS0wLW8uF6UAp4jgAPsA+xP7Hfs4+z77QPtD+0b//QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AGMAsIDdAOeA6gD8gP8BAoECgQKBAoERgSuBMoE5ATuBRIFFgUmBe4F8AYkBiwGRgZQBlAGcgaKBpwGzgboBvYG+Ab+BwAHAgdaB2wHbAduB24HfAd8B4YHhgeGB4gHmAeoB6oHrAn>
|
|
);
|
|
|
|
describe("Fixes fpgm table", function () {
|
|
it("table was truncated in the middle of functions", async function () {
|
|
const cMap = await CMapFactory.create({
|
|
encoding: Name.get("Identity-H"),
|
|
});
|
|
const font = new Font("font", new Stream(font2324), {
|
|
loadedName: "font",
|
|
type: "CIDFontType2",
|
|
differences: [],
|
|
defaultEncoding: [],
|
|
cMap,
|
|
toUnicode: new ToUnicodeMap([]),
|
|
xHeight: 0,
|
|
capHeight: 0,
|
|
italicAngle: 0,
|
|
});
|
|
const output = await ttx(font.data);
|
|
|
|
verifyTtxOutput(output);
|
|
expect(
|
|
/(ENDF\[ \]|SVTCA\[0\])\s*\/\*.*\*\/\s*<\/assembly>\s*<\/fpgm>/.test(
|
|
output
|
|
)
|
|
).toEqual(true);
|
|
});
|
|
});
|
|
});
|