From f657de7de2c615b4c7d861ceaa8fd95f3865fd2d Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Fri, 19 May 2023 18:34:21 +0200 Subject: [PATCH] Extend `getNonStdFontMap` for non-embedded Impact fonts (bug 1365930) According to https://en.wikipedia.org/wiki/Impact_(typeface) this font should be available on all current versions of Windows, and with the recently added font-substitution we should actually be able to render it correctly (at least on Windows). --- src/core/standard_fonts.js | 1 + test/pdfs/.gitignore | 1 + test/pdfs/bug1365930.pdf | Bin 0 -> 21795 bytes test/test_manifest.json | 6 ++++++ 4 files changed, 8 insertions(+) create mode 100644 test/pdfs/bug1365930.pdf diff --git a/src/core/standard_fonts.js b/src/core/standard_fonts.js index e3e835a67..b84633a24 100644 --- a/src/core/standard_fonts.js +++ b/src/core/standard_fonts.js @@ -136,6 +136,7 @@ const getNonStdFontMap = getLookupTableFactory(function (t) { t["ComicSansMS-Bold"] = "Comic Sans MS-Bold"; t["ComicSansMS-BoldItalic"] = "Comic Sans MS-BoldItalic"; t["ComicSansMS-Italic"] = "Comic Sans MS-Italic"; + t.Impact = "Helvetica"; t["ItcSymbol-Bold"] = "Helvetica-Bold"; t["ItcSymbol-BoldItalic"] = "Helvetica-BoldOblique"; t["ItcSymbol-Book"] = "Helvetica"; diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index fd859146b..b1864f846 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -383,6 +383,7 @@ !issue4650.pdf !issue6721_reduced.pdf !issue3025.pdf +!bug1365930.pdf !french_diacritics.pdf !issue2099-1.pdf !issue3371.pdf diff --git a/test/pdfs/bug1365930.pdf b/test/pdfs/bug1365930.pdf new file mode 100644 index 0000000000000000000000000000000000000000..89535461a558df6b7b4f6c7e6bbccf4b7b20f03a GIT binary patch literal 21795 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