mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-20 15:18:08 +02:00
Add a parser to get font data from the default appearance (#12831)
* Add a parser to get font data from the default appearance - pdfium & poppler use a special parser too to get these info. * Update src/core/default_appearance.js Co-authored-by: Jonas Jenwald <jonas.jenwald@gmail.com> Co-authored-by: Jonas Jenwald <jonas.jenwald@gmail.com>
This commit is contained in:
parent
4142001fc2
commit
1039698697
7 changed files with 191 additions and 33 deletions
|
@ -1808,7 +1808,7 @@ describe("annotation", function () {
|
|||
}, done.fail)
|
||||
.then(appearance => {
|
||||
expect(appearance).toEqual(
|
||||
"/Tx BMC q BT /Helv 11 Tf 1 0 0 1 0 0 Tm" +
|
||||
"/Tx BMC q BT /Helv 11 Tf 0 g 1 0 0 1 0 0 Tm" +
|
||||
" 2.00 2.00 Td (test \\(print\\)) Tj ET Q EMC"
|
||||
);
|
||||
done();
|
||||
|
@ -1848,7 +1848,7 @@ describe("annotation", function () {
|
|||
"\x30\x53\x30\x93\x30\x6b\x30\x61" +
|
||||
"\x30\x6f\x4e\x16\x75\x4c\x30\x6e";
|
||||
expect(appearance).toEqual(
|
||||
"/Tx BMC q BT /Goth 9 Tf 1 0 0 1 0 0 Tm" +
|
||||
"/Tx BMC q BT /Goth 9 Tf 0 g 1 0 0 1 0 0 Tm" +
|
||||
` 2.00 2.00 Td (${utf16String}) Tj ET Q EMC`
|
||||
);
|
||||
done();
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
"core_utils_spec.js",
|
||||
"crypto_spec.js",
|
||||
"custom_spec.js",
|
||||
"default_appearance_spec.js",
|
||||
"display_svg_spec.js",
|
||||
"display_utils_spec.js",
|
||||
"document_spec.js",
|
||||
|
|
55
test/unit/default_appearance_spec.js
Normal file
55
test/unit/default_appearance_spec.js
Normal file
|
@ -0,0 +1,55 @@
|
|||
/* Copyright 2020 Mozilla Foundation
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
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 () {
|
||||
it("should parse and create default appearance", function () {
|
||||
const da = "/FontName 12 Tf 0.10 0.20 0.30 rg";
|
||||
const result = {
|
||||
fontSize: 12,
|
||||
fontName: Name.get("FontName"),
|
||||
fontColor: new Uint8ClampedArray([26, 51, 76]),
|
||||
};
|
||||
expect(parseDefaultAppearance(da)).toEqual(result);
|
||||
expect(createDefaultAppearance(result)).toEqual(da);
|
||||
|
||||
expect(
|
||||
parseDefaultAppearance(
|
||||
" 0.1 0.2 0.3 rg /FontName 12 Tf 0.3 0.2 0.1 rg /NameFont 13 Tf"
|
||||
)
|
||||
).toEqual({
|
||||
fontSize: 13,
|
||||
fontName: Name.get("NameFont"),
|
||||
fontColor: new Uint8ClampedArray([76, 51, 26]),
|
||||
});
|
||||
});
|
||||
|
||||
it("should parse default appearance with save/restore", function () {
|
||||
const da =
|
||||
"0.10 0.20 0.30 rg /FontName 12 Tf q 0.30 0.20 0.10 rg /NameFont 13 Tf Q";
|
||||
expect(parseDefaultAppearance(da)).toEqual({
|
||||
fontSize: 12,
|
||||
fontName: Name.get("FontName"),
|
||||
fontColor: new Uint8ClampedArray([26, 51, 76]),
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
|
@ -60,6 +60,7 @@ async function initializePDFJS(callback) {
|
|||
"pdfjs-test/unit/core_utils_spec.js",
|
||||
"pdfjs-test/unit/crypto_spec.js",
|
||||
"pdfjs-test/unit/custom_spec.js",
|
||||
"pdfjs-test/unit/default_appearance_spec.js",
|
||||
"pdfjs-test/unit/display_svg_spec.js",
|
||||
"pdfjs-test/unit/display_utils_spec.js",
|
||||
"pdfjs-test/unit/document_spec.js",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue