From 59cb9a064ef107c5f4e9a38f6fbaf22c109c95bf Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Wed, 26 Feb 2025 10:07:28 +0100 Subject: [PATCH] Extend `getGlyphMapForStandardFonts` with some Cyrillic entries (issue 19550) --- src/core/standard_fonts.js | 31 +++++++++++++++++++++++++++++++ test/pdfs/.gitignore | 1 + test/pdfs/issue19550.pdf | Bin 0 -> 15559 bytes test/test_manifest.json | 7 +++++++ 4 files changed, 39 insertions(+) create mode 100644 test/pdfs/issue19550.pdf diff --git a/src/core/standard_fonts.js b/src/core/standard_fonts.js index 9e7cea5091b9b..59cc5865df1b6 100644 --- a/src/core/standard_fonts.js +++ b/src/core/standard_fonts.js @@ -543,6 +543,37 @@ const getGlyphMapForStandardFonts = getLookupTableFactory(function (t) { t[337] = 9552; t[493] = 1039; t[494] = 1040; + t[570] = 1040; + t[571] = 1041; + t[572] = 1042; + t[573] = 1043; + t[574] = 1044; + t[575] = 1045; + t[576] = 1046; + t[577] = 1047; + t[578] = 1048; + t[579] = 1049; + t[580] = 1050; + t[581] = 1051; + t[582] = 1052; + t[583] = 1053; + t[584] = 1054; + t[585] = 1055; + t[586] = 1056; + t[587] = 1057; + t[588] = 1058; + t[589] = 1059; + t[590] = 1060; + t[591] = 1061; + t[592] = 1062; + t[593] = 1063; + t[594] = 1064; + t[595] = 1065; + t[596] = 1066; + t[597] = 1067; + t[598] = 1068; + t[599] = 1069; + t[600] = 1070; t[672] = 1488; t[673] = 1489; t[674] = 1490; diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index 9d415b91c684e..6247849814c5c 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -661,6 +661,7 @@ !bug1868759.pdf !issue17730.pdf !bug1883609.pdf +!issue19550.pdf !issue17808.pdf !issue17871_bottom_right.pdf !issue17871_top_right.pdf diff --git a/test/pdfs/issue19550.pdf b/test/pdfs/issue19550.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a52d052f01b2f676cd5721d66c263f40fe5fd44f GIT binary patch literal 15559 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 am;9Lb@o@cch~P-ieY5-Gi|_vO;(q}F3)P$e literal 0 HcmV?d00001 diff --git a/test/test_manifest.json b/test/test_manifest.json index 28506e4c80fda..c42928757278e 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -3906,6 +3906,13 @@ "7R": false } }, + { + "id": "issue19550", + "file": "pdfs/issue19550.pdf", + "md5": "4c978bd99348789e05dad1d2a919ddf0", + "rounds": 1, + "type": "eq" + }, { "id": "issue1127-text", "file": "pdfs/issue1127.pdf",