123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248 |
- /**
- * @licstart The following is the entire license notice for the
- * Javascript code in this page
- *
- * Copyright 2022 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.
- *
- * @licend The above is the entire license notice for the
- * Javascript code in this page
- */
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.getXfaFontDict = getXfaFontDict;
- exports.getXfaFontName = getXfaFontName;
- var _calibri_factors = require("./calibri_factors.js");
- var _primitives = require("./primitives.js");
- var _helvetica_factors = require("./helvetica_factors.js");
- var _liberationsans_widths = require("./liberationsans_widths.js");
- var _myriadpro_factors = require("./myriadpro_factors.js");
- var _segoeui_factors = require("./segoeui_factors.js");
- var _core_utils = require("./core_utils.js");
- var _fonts_utils = require("./fonts_utils.js");
- const getXFAFontMap = (0, _core_utils.getLookupTableFactory)(function (t) {
- t["MyriadPro-Regular"] = t["PdfJS-Fallback-Regular"] = {
- name: "LiberationSans-Regular",
- factors: _myriadpro_factors.MyriadProRegularFactors,
- baseWidths: _liberationsans_widths.LiberationSansRegularWidths,
- baseMapping: _liberationsans_widths.LiberationSansRegularMapping,
- metrics: _myriadpro_factors.MyriadProRegularMetrics
- };
- t["MyriadPro-Bold"] = t["PdfJS-Fallback-Bold"] = {
- name: "LiberationSans-Bold",
- factors: _myriadpro_factors.MyriadProBoldFactors,
- baseWidths: _liberationsans_widths.LiberationSansBoldWidths,
- baseMapping: _liberationsans_widths.LiberationSansBoldMapping,
- metrics: _myriadpro_factors.MyriadProBoldMetrics
- };
- t["MyriadPro-It"] = t["MyriadPro-Italic"] = t["PdfJS-Fallback-Italic"] = {
- name: "LiberationSans-Italic",
- factors: _myriadpro_factors.MyriadProItalicFactors,
- baseWidths: _liberationsans_widths.LiberationSansItalicWidths,
- baseMapping: _liberationsans_widths.LiberationSansItalicMapping,
- metrics: _myriadpro_factors.MyriadProItalicMetrics
- };
- t["MyriadPro-BoldIt"] = t["MyriadPro-BoldItalic"] = t["PdfJS-Fallback-BoldItalic"] = {
- name: "LiberationSans-BoldItalic",
- factors: _myriadpro_factors.MyriadProBoldItalicFactors,
- baseWidths: _liberationsans_widths.LiberationSansBoldItalicWidths,
- baseMapping: _liberationsans_widths.LiberationSansBoldItalicMapping,
- metrics: _myriadpro_factors.MyriadProBoldItalicMetrics
- };
- t.ArialMT = t.Arial = t["Arial-Regular"] = {
- name: "LiberationSans-Regular",
- baseWidths: _liberationsans_widths.LiberationSansRegularWidths,
- baseMapping: _liberationsans_widths.LiberationSansRegularMapping
- };
- t["Arial-BoldMT"] = t["Arial-Bold"] = {
- name: "LiberationSans-Bold",
- baseWidths: _liberationsans_widths.LiberationSansBoldWidths,
- baseMapping: _liberationsans_widths.LiberationSansBoldMapping
- };
- t["Arial-ItalicMT"] = t["Arial-Italic"] = {
- name: "LiberationSans-Italic",
- baseWidths: _liberationsans_widths.LiberationSansItalicWidths,
- baseMapping: _liberationsans_widths.LiberationSansItalicMapping
- };
- t["Arial-BoldItalicMT"] = t["Arial-BoldItalic"] = {
- name: "LiberationSans-BoldItalic",
- baseWidths: _liberationsans_widths.LiberationSansBoldItalicWidths,
- baseMapping: _liberationsans_widths.LiberationSansBoldItalicMapping
- };
- t["Calibri-Regular"] = {
- name: "LiberationSans-Regular",
- factors: _calibri_factors.CalibriRegularFactors,
- baseWidths: _liberationsans_widths.LiberationSansRegularWidths,
- baseMapping: _liberationsans_widths.LiberationSansRegularMapping,
- metrics: _calibri_factors.CalibriRegularMetrics
- };
- t["Calibri-Bold"] = {
- name: "LiberationSans-Bold",
- factors: _calibri_factors.CalibriBoldFactors,
- baseWidths: _liberationsans_widths.LiberationSansBoldWidths,
- baseMapping: _liberationsans_widths.LiberationSansBoldMapping,
- metrics: _calibri_factors.CalibriBoldMetrics
- };
- t["Calibri-Italic"] = {
- name: "LiberationSans-Italic",
- factors: _calibri_factors.CalibriItalicFactors,
- baseWidths: _liberationsans_widths.LiberationSansItalicWidths,
- baseMapping: _liberationsans_widths.LiberationSansItalicMapping,
- metrics: _calibri_factors.CalibriItalicMetrics
- };
- t["Calibri-BoldItalic"] = {
- name: "LiberationSans-BoldItalic",
- factors: _calibri_factors.CalibriBoldItalicFactors,
- baseWidths: _liberationsans_widths.LiberationSansBoldItalicWidths,
- baseMapping: _liberationsans_widths.LiberationSansBoldItalicMapping,
- metrics: _calibri_factors.CalibriBoldItalicMetrics
- };
- t["Segoeui-Regular"] = {
- name: "LiberationSans-Regular",
- factors: _segoeui_factors.SegoeuiRegularFactors,
- baseWidths: _liberationsans_widths.LiberationSansRegularWidths,
- baseMapping: _liberationsans_widths.LiberationSansRegularMapping,
- metrics: _segoeui_factors.SegoeuiRegularMetrics
- };
- t["Segoeui-Bold"] = {
- name: "LiberationSans-Bold",
- factors: _segoeui_factors.SegoeuiBoldFactors,
- baseWidths: _liberationsans_widths.LiberationSansBoldWidths,
- baseMapping: _liberationsans_widths.LiberationSansBoldMapping,
- metrics: _segoeui_factors.SegoeuiBoldMetrics
- };
- t["Segoeui-Italic"] = {
- name: "LiberationSans-Italic",
- factors: _segoeui_factors.SegoeuiItalicFactors,
- baseWidths: _liberationsans_widths.LiberationSansItalicWidths,
- baseMapping: _liberationsans_widths.LiberationSansItalicMapping,
- metrics: _segoeui_factors.SegoeuiItalicMetrics
- };
- t["Segoeui-BoldItalic"] = {
- name: "LiberationSans-BoldItalic",
- factors: _segoeui_factors.SegoeuiBoldItalicFactors,
- baseWidths: _liberationsans_widths.LiberationSansBoldItalicWidths,
- baseMapping: _liberationsans_widths.LiberationSansBoldItalicMapping,
- metrics: _segoeui_factors.SegoeuiBoldItalicMetrics
- };
- t["Helvetica-Regular"] = t.Helvetica = {
- name: "LiberationSans-Regular",
- factors: _helvetica_factors.HelveticaRegularFactors,
- baseWidths: _liberationsans_widths.LiberationSansRegularWidths,
- baseMapping: _liberationsans_widths.LiberationSansRegularMapping,
- metrics: _helvetica_factors.HelveticaRegularMetrics
- };
- t["Helvetica-Bold"] = {
- name: "LiberationSans-Bold",
- factors: _helvetica_factors.HelveticaBoldFactors,
- baseWidths: _liberationsans_widths.LiberationSansBoldWidths,
- baseMapping: _liberationsans_widths.LiberationSansBoldMapping,
- metrics: _helvetica_factors.HelveticaBoldMetrics
- };
- t["Helvetica-Italic"] = {
- name: "LiberationSans-Italic",
- factors: _helvetica_factors.HelveticaItalicFactors,
- baseWidths: _liberationsans_widths.LiberationSansItalicWidths,
- baseMapping: _liberationsans_widths.LiberationSansItalicMapping,
- metrics: _helvetica_factors.HelveticaItalicMetrics
- };
- t["Helvetica-BoldItalic"] = {
- name: "LiberationSans-BoldItalic",
- factors: _helvetica_factors.HelveticaBoldItalicFactors,
- baseWidths: _liberationsans_widths.LiberationSansBoldItalicWidths,
- baseMapping: _liberationsans_widths.LiberationSansBoldItalicMapping,
- metrics: _helvetica_factors.HelveticaBoldItalicMetrics
- };
- });
- function getXfaFontName(name) {
- const fontName = (0, _fonts_utils.normalizeFontName)(name);
- const fontMap = getXFAFontMap();
- return fontMap[fontName];
- }
- function getXfaFontWidths(name) {
- const info = getXfaFontName(name);
- if (!info) {
- return null;
- }
- const {
- baseWidths,
- baseMapping,
- factors
- } = info;
- let rescaledBaseWidths;
- if (!factors) {
- rescaledBaseWidths = baseWidths;
- } else {
- rescaledBaseWidths = baseWidths.map((w, i) => w * factors[i]);
- }
- let currentCode = -2;
- let currentArray;
- const newWidths = [];
- for (const [unicode, glyphIndex] of baseMapping.map((charUnicode, index) => [charUnicode, index]).sort(([unicode1], [unicode2]) => unicode1 - unicode2)) {
- if (unicode === -1) {
- continue;
- }
- if (unicode === currentCode + 1) {
- currentArray.push(rescaledBaseWidths[glyphIndex]);
- currentCode += 1;
- } else {
- currentCode = unicode;
- currentArray = [rescaledBaseWidths[glyphIndex]];
- newWidths.push(unicode, currentArray);
- }
- }
- return newWidths;
- }
- function getXfaFontDict(name) {
- const widths = getXfaFontWidths(name);
- const dict = new _primitives.Dict(null);
- dict.set("BaseFont", _primitives.Name.get(name));
- dict.set("Type", _primitives.Name.get("Font"));
- dict.set("Subtype", _primitives.Name.get("CIDFontType2"));
- dict.set("Encoding", _primitives.Name.get("Identity-H"));
- dict.set("CIDToGIDMap", _primitives.Name.get("Identity"));
- dict.set("W", widths);
- dict.set("FirstChar", widths[0]);
- dict.set("LastChar", widths[widths.length - 2] + widths[widths.length - 1].length - 1);
- const descriptor = new _primitives.Dict(null);
- dict.set("FontDescriptor", descriptor);
- const systemInfo = new _primitives.Dict(null);
- systemInfo.set("Ordering", "Identity");
- systemInfo.set("Registry", "Adobe");
- systemInfo.set("Supplement", 0);
- dict.set("CIDSystemInfo", systemInfo);
- return dict;
- }
|