xfa_fonts.js 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. /**
  2. * @licstart The following is the entire license notice for the
  3. * Javascript code in this page
  4. *
  5. * Copyright 2021 Mozilla Foundation
  6. *
  7. * Licensed under the Apache License, Version 2.0 (the "License");
  8. * you may not use this file except in compliance with the License.
  9. * You may obtain a copy of the License at
  10. *
  11. * http://www.apache.org/licenses/LICENSE-2.0
  12. *
  13. * Unless required by applicable law or agreed to in writing, software
  14. * distributed under the License is distributed on an "AS IS" BASIS,
  15. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  16. * See the License for the specific language governing permissions and
  17. * limitations under the License.
  18. *
  19. * @licend The above is the entire license notice for the
  20. * Javascript code in this page
  21. */
  22. "use strict";
  23. Object.defineProperty(exports, "__esModule", {
  24. value: true
  25. });
  26. exports.getXfaFontName = getXfaFontName;
  27. exports.getXfaFontWidths = getXfaFontWidths;
  28. var _calibri_factors = require("./calibri_factors.js");
  29. var _helvetica_factors = require("./helvetica_factors.js");
  30. var _liberationsans_widths = require("./liberationsans_widths.js");
  31. var _myriadpro_factors = require("./myriadpro_factors.js");
  32. var _segoeui_factors = require("./segoeui_factors.js");
  33. var _core_utils = require("./core_utils.js");
  34. var _fonts_utils = require("./fonts_utils.js");
  35. const getXFAFontMap = (0, _core_utils.getLookupTableFactory)(function (t) {
  36. t["MyriadPro-Regular"] = t["PdfJS-Fallback-Regular"] = {
  37. name: "LiberationSans-Regular",
  38. factors: _myriadpro_factors.MyriadProRegularFactors,
  39. baseWidths: _liberationsans_widths.LiberationSansRegularWidths,
  40. lineHeight: _myriadpro_factors.MyriadProRegularLineHeight
  41. };
  42. t["MyriadPro-Bold"] = t["PdfJS-Fallback-Bold"] = {
  43. name: "LiberationSans-Bold",
  44. factors: _myriadpro_factors.MyriadProBoldFactors,
  45. baseWidths: _liberationsans_widths.LiberationSansBoldWidths,
  46. lineHeight: _myriadpro_factors.MyriadProBoldLineHeight
  47. };
  48. t["MyriadPro-It"] = t["MyriadPro-Italic"] = t["PdfJS-Fallback-Italic"] = {
  49. name: "LiberationSans-Italic",
  50. factors: _myriadpro_factors.MyriadProItalicFactors,
  51. baseWidths: _liberationsans_widths.LiberationSansItalicWidths,
  52. lineHeight: _myriadpro_factors.MyriadProItalicLineHeight
  53. };
  54. t["MyriadPro-BoldIt"] = t["MyriadPro-BoldItalic"] = t["PdfJS-Fallback-BoldItalic"] = {
  55. name: "LiberationSans-BoldItalic",
  56. factors: _myriadpro_factors.MyriadProBoldItalicFactors,
  57. baseWidths: _liberationsans_widths.LiberationSansBoldItalicWidths,
  58. lineHeight: _myriadpro_factors.MyriadProBoldItalicLineHeight
  59. };
  60. t.ArialMT = t.Arial = t["Arial-Regular"] = {
  61. name: "LiberationSans-Regular",
  62. baseWidths: _liberationsans_widths.LiberationSansRegularWidths
  63. };
  64. t["Arial-BoldMT"] = t["Arial-Bold"] = {
  65. name: "LiberationSans-Bold",
  66. baseWidths: _liberationsans_widths.LiberationSansBoldWidths
  67. };
  68. t["Arial-ItalicMT"] = t["Arial-Italic"] = {
  69. name: "LiberationSans-Italic",
  70. baseWidths: _liberationsans_widths.LiberationSansItalicWidths
  71. };
  72. t["Arial-BoldItalicMT"] = t["Arial-BoldItalic"] = {
  73. name: "LiberationSans-BoldItalic",
  74. baseWidths: _liberationsans_widths.LiberationSansBoldItalicWidths
  75. };
  76. t["Calibri-Regular"] = {
  77. name: "LiberationSans-Regular",
  78. factors: _calibri_factors.CalibriRegularFactors,
  79. baseWidths: _liberationsans_widths.LiberationSansRegularWidths,
  80. lineHeight: _calibri_factors.CalibriRegularLineHeight
  81. };
  82. t["Calibri-Bold"] = {
  83. name: "LiberationSans-Bold",
  84. factors: _calibri_factors.CalibriBoldFactors,
  85. baseWidths: _liberationsans_widths.LiberationSansBoldWidths,
  86. lineHeight: _calibri_factors.CalibriBoldLineHeight
  87. };
  88. t["Calibri-Italic"] = {
  89. name: "LiberationSans-Italic",
  90. factors: _calibri_factors.CalibriItalicFactors,
  91. baseWidths: _liberationsans_widths.LiberationSansItalicWidths,
  92. lineHeight: _calibri_factors.CalibriItalicLineHeight
  93. };
  94. t["Calibri-BoldItalic"] = {
  95. name: "LiberationSans-BoldItalic",
  96. factors: _calibri_factors.CalibriBoldItalicFactors,
  97. baseWidths: _liberationsans_widths.LiberationSansBoldItalicWidths,
  98. lineHeight: _calibri_factors.CalibriBoldItalicLineHeight
  99. };
  100. t["Segoeui-Regular"] = {
  101. name: "LiberationSans-Regular",
  102. factors: _segoeui_factors.SegoeuiRegularFactors,
  103. baseWidths: _liberationsans_widths.LiberationSansRegularWidths,
  104. lineHeight: _segoeui_factors.SegoeuiRegularLineHeight
  105. };
  106. t["Segoeui-Bold"] = {
  107. name: "LiberationSans-Bold",
  108. factors: _segoeui_factors.SegoeuiBoldFactors,
  109. baseWidths: _liberationsans_widths.LiberationSansBoldWidths,
  110. lineHeight: _segoeui_factors.SegoeuiBoldLineHeight
  111. };
  112. t["Segoeui-Italic"] = {
  113. name: "LiberationSans-Italic",
  114. factors: _segoeui_factors.SegoeuiItalicFactors,
  115. baseWidths: _liberationsans_widths.LiberationSansItalicWidths,
  116. lineHeight: _segoeui_factors.SegoeuiItalicLineHeight
  117. };
  118. t["Segoeui-BoldItalic"] = {
  119. name: "LiberationSans-BoldItalic",
  120. factors: _segoeui_factors.SegoeuiBoldItalicFactors,
  121. baseWidths: _liberationsans_widths.LiberationSansBoldItalicWidths,
  122. lineHeight: _segoeui_factors.SegoeuiBoldItalicLineHeight
  123. };
  124. t["Helvetica-Regular"] = t.Helvetica = {
  125. name: "LiberationSans-Regular",
  126. factors: _helvetica_factors.HelveticaRegularFactors,
  127. baseWidths: _liberationsans_widths.LiberationSansRegularWidths,
  128. lineHeight: _helvetica_factors.HelveticaRegularLineHeight
  129. };
  130. t["Helvetica-Bold"] = {
  131. name: "LiberationSans-Bold",
  132. factors: _helvetica_factors.HelveticaBoldFactors,
  133. baseWidths: _liberationsans_widths.LiberationSansBoldWidths,
  134. lineHeight: _helvetica_factors.HelveticaBoldLineHeight
  135. };
  136. t["Helvetica-Italic"] = {
  137. name: "LiberationSans-Italic",
  138. factors: _helvetica_factors.HelveticaItalicFactors,
  139. baseWidths: _liberationsans_widths.LiberationSansItalicWidths,
  140. lineHeight: _helvetica_factors.HelveticaItalicLineHeight
  141. };
  142. t["Helvetica-BoldItalic"] = {
  143. name: "LiberationSans-BoldItalic",
  144. factors: _helvetica_factors.HelveticaBoldItalicFactors,
  145. baseWidths: _liberationsans_widths.LiberationSansBoldItalicWidths,
  146. lineHeight: _helvetica_factors.HelveticaBoldItalicLineHeight
  147. };
  148. });
  149. function getXfaFontName(name) {
  150. const fontName = (0, _fonts_utils.normalizeFontName)(name);
  151. const fontMap = getXFAFontMap();
  152. return fontMap[fontName];
  153. }
  154. function getXfaFontWidths(name) {
  155. const info = getXfaFontName(name);
  156. if (!info) {
  157. return null;
  158. }
  159. const {
  160. baseWidths,
  161. factors
  162. } = info;
  163. if (!factors) {
  164. return baseWidths;
  165. }
  166. return baseWidths.map((w, i) => w * factors[i]);
  167. }