mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-20 23:28:06 +02:00
Extract CFFParser
from fonts.js (issue 6777)
This commit is contained in:
parent
a250c150ab
commit
b961e1d21b
5 changed files with 1721 additions and 1673 deletions
|
@ -1,6 +1,5 @@
|
|||
/* globals expect, it, describe, CFFCompiler, CFFParser, CFFIndex, CFFStrings,
|
||||
SEAC_ANALYSIS_ENABLED, Type1Parser, StringStream,
|
||||
_enableSeacAnalysis */
|
||||
Type1Parser, StringStream, SEAC_ANALYSIS_ENABLED */
|
||||
|
||||
'use strict';
|
||||
|
||||
|
@ -38,7 +37,7 @@ describe('font', function() {
|
|||
}
|
||||
|
||||
describe('CFFParser', function() {
|
||||
var parser = new CFFParser(fontData, {});
|
||||
var parser = new CFFParser(fontData, {}, SEAC_ANALYSIS_ENABLED);
|
||||
var cff = parser.parse();
|
||||
|
||||
it('parses header', function() {
|
||||
|
@ -117,46 +116,42 @@ describe('font', function() {
|
|||
});
|
||||
|
||||
it('parses a CharString endchar with 4 args w/seac enabled', function() {
|
||||
var seacAnalysisState = SEAC_ANALYSIS_ENABLED;
|
||||
try {
|
||||
_enableSeacAnalysis(true);
|
||||
var bytes = new Uint8Array([0, 1, // count
|
||||
1, // offsetSize
|
||||
0, // offset[0]
|
||||
237, 247, 22, 247, 72, 204, 247, 86, 14]);
|
||||
parser.bytes = bytes;
|
||||
var charStringsIndex = parser.parseIndex(0).obj;
|
||||
var result = parser.parseCharStrings(charStringsIndex);
|
||||
expect(result.charStrings.count).toEqual(1);
|
||||
expect(result.charStrings.get(0).length).toEqual(1);
|
||||
expect(result.seacs.length).toEqual(1);
|
||||
expect(result.seacs[0].length).toEqual(4);
|
||||
expect(result.seacs[0][0]).toEqual(130);
|
||||
expect(result.seacs[0][1]).toEqual(180);
|
||||
expect(result.seacs[0][2]).toEqual(65);
|
||||
expect(result.seacs[0][3]).toEqual(194);
|
||||
} finally {
|
||||
_enableSeacAnalysis(seacAnalysisState);
|
||||
}
|
||||
var parser = new CFFParser(fontData, {},
|
||||
/* seacAnalysisEnabled = */ true);
|
||||
var cff = parser.parse();
|
||||
|
||||
var bytes = new Uint8Array([0, 1, // count
|
||||
1, // offsetSize
|
||||
0, // offset[0]
|
||||
237, 247, 22, 247, 72, 204, 247, 86, 14]);
|
||||
parser.bytes = bytes;
|
||||
var charStringsIndex = parser.parseIndex(0).obj;
|
||||
var result = parser.parseCharStrings(charStringsIndex);
|
||||
expect(result.charStrings.count).toEqual(1);
|
||||
expect(result.charStrings.get(0).length).toEqual(1);
|
||||
expect(result.seacs.length).toEqual(1);
|
||||
expect(result.seacs[0].length).toEqual(4);
|
||||
expect(result.seacs[0][0]).toEqual(130);
|
||||
expect(result.seacs[0][1]).toEqual(180);
|
||||
expect(result.seacs[0][2]).toEqual(65);
|
||||
expect(result.seacs[0][3]).toEqual(194);
|
||||
});
|
||||
|
||||
it('parses a CharString endchar with 4 args w/seac disabled', function() {
|
||||
var seacAnalysisState = SEAC_ANALYSIS_ENABLED;
|
||||
try {
|
||||
_enableSeacAnalysis(false);
|
||||
var bytes = new Uint8Array([0, 1, // count
|
||||
1, // offsetSize
|
||||
0, // offset[0]
|
||||
237, 247, 22, 247, 72, 204, 247, 86, 14]);
|
||||
parser.bytes = bytes;
|
||||
var charStringsIndex = parser.parseIndex(0).obj;
|
||||
var result = parser.parseCharStrings(charStringsIndex);
|
||||
expect(result.charStrings.count).toEqual(1);
|
||||
expect(result.charStrings.get(0).length).toEqual(9);
|
||||
expect(result.seacs.length).toEqual(0);
|
||||
} finally {
|
||||
_enableSeacAnalysis(seacAnalysisState);
|
||||
}
|
||||
var parser = new CFFParser(fontData, {},
|
||||
/* seacAnalysisEnabled = */ false);
|
||||
var cff = parser.parse();
|
||||
|
||||
var bytes = new Uint8Array([0, 1, // count
|
||||
1, // offsetSize
|
||||
0, // offset[0]
|
||||
237, 247, 22, 247, 72, 204, 247, 86, 14]);
|
||||
parser.bytes = bytes;
|
||||
var charStringsIndex = parser.parseIndex(0).obj;
|
||||
var result = parser.parseCharStrings(charStringsIndex);
|
||||
expect(result.charStrings.count).toEqual(1);
|
||||
expect(result.charStrings.get(0).length).toEqual(9);
|
||||
expect(result.seacs.length).toEqual(0);
|
||||
});
|
||||
|
||||
it('parses a CharString endchar no args', function() {
|
||||
|
|
|
@ -48,12 +48,12 @@ function initializePDFJS(callback) {
|
|||
'pdfjs/core/annotation', 'pdfjs/core/crypto', 'pdfjs/core/stream',
|
||||
'pdfjs/core/fonts', 'pdfjs/core/ps_parser', 'pdfjs/core/function',
|
||||
'pdfjs/core/parser', 'pdfjs/core/evaluator', 'pdfjs/core/cmap',
|
||||
'pdfjs/core/worker', 'pdfjs/core/network', 'pdfjs/display/api',
|
||||
'pdfjs/display/metadata', 'pdfjs/display/dom_utils'],
|
||||
'pdfjs/core/worker', 'pdfjs/core/network', 'pdfjs/core/cff_parser',
|
||||
'pdfjs/display/api', 'pdfjs/display/metadata', 'pdfjs/display/dom_utils'],
|
||||
function (sharedUtil, displayGlobal, corePrimitives, coreAnnotation,
|
||||
coreCrypto, coreStream, coreFonts, corePsParser, coreFunction,
|
||||
coreParser, coreEvaluator, coreCMap, coreWorker, coreNetwork,
|
||||
displayAPI, displayMetadata, displayDOMUtils) {
|
||||
coreCFFParser, displayAPI, displayMetadata, displayDOMUtils) {
|
||||
|
||||
pdfjsLibs = {
|
||||
sharedUtil: sharedUtil,
|
||||
|
@ -70,6 +70,7 @@ function initializePDFJS(callback) {
|
|||
coreCMap: coreCMap,
|
||||
coreWorker: coreWorker,
|
||||
coreNetwork: coreNetwork,
|
||||
coreCFFParser: coreCFFParser,
|
||||
displayAPI: displayAPI,
|
||||
displayMetadata: displayMetadata,
|
||||
displayDOMUtils: displayDOMUtils
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue