1
0
Fork 0
mirror of https://github.com/mozilla/pdf.js.git synced 2025-04-22 08:08:07 +02:00

[api-minor] Change the format of the fontName-property, in defaultAppearanceData, on Annotation-instances (PR 12831 follow-up)

Currently the `fontName`-property contains an actual /Name-instance, which is a problem given that its fallback value is an empty string; see ca7f546828/src/core/default_appearance.js (L35)
The reason that this is a problem can be seen in ca7f546828/src/core/primitives.js (L30-L34), since an empty string short-circuits the cache. Essentially, in PDF documents, a /Name-instance cannot be empty and the way that the `DefaultAppearanceEvaluator` does things is unfortunately not entirely correct.

Hence the `fontName`-property is changed to instead contain a string, rather than a /Name-instance, which simplifies the code overall.

*Please note:* I'm tagging this patch with "[api-minor]", since PR 12831 is included in the current pre-release (although we're not using the `fontName`-property in the display-layer).
This commit is contained in:
Jonas Jenwald 2021-04-01 15:19:45 +02:00
parent ca7f546828
commit 0eb1433c78
4 changed files with 18 additions and 23 deletions

View file

@ -17,7 +17,6 @@ import {
createDefaultAppearance,
parseDefaultAppearance,
} from "../../src/core/default_appearance.js";
import { Name } from "../../src/core/primitives.js";
describe("Default appearance", function () {
describe("parseDefaultAppearance and createDefaultAppearance", function () {
@ -25,7 +24,7 @@ describe("Default appearance", function () {
const da = "/F1 12 Tf 0.10 0.20 0.30 rg";
const result = {
fontSize: 12,
fontName: Name.get("F1"),
fontName: "F1",
fontColor: new Uint8ClampedArray([26, 51, 76]),
};
expect(parseDefaultAppearance(da)).toEqual(result);
@ -37,7 +36,7 @@ describe("Default appearance", function () {
)
).toEqual({
fontSize: 13,
fontName: Name.get("F2"),
fontName: "F2",
fontColor: new Uint8ClampedArray([76, 51, 26]),
});
});
@ -47,7 +46,7 @@ describe("Default appearance", function () {
"q Q 0.10 0.20 0.30 rg /F1 12 Tf q 0.30 0.20 0.10 rg /F2 13 Tf Q";
expect(parseDefaultAppearance(da)).toEqual({
fontSize: 12,
fontName: Name.get("F1"),
fontName: "F1",
fontColor: new Uint8ClampedArray([26, 51, 76]),
});
});