From 9ae9925651499d9603240324e456a7c1dcae8942 Mon Sep 17 00:00:00 2001 From: bhuang08 Date: Thu, 5 Feb 2026 14:16:41 +0000 Subject: [PATCH 1/2] Issue #10: add Arial afm files and modify fontmetrics.h to read it. --- DESCRIPTION | 15 +- NEWS | 4 + inst/afm/Arial-Bold-ucs.afm.gz | Bin 0 -> 16223 bytes inst/afm/Arial-BoldOblique-ucs.afm.gz | Bin 0 -> 13316 bytes inst/afm/Arial-Oblique-ucs.afm.gz | Bin 0 -> 13510 bytes inst/afm/Arial-ucs.afm.gz | Bin 0 -> 16245 bytes src/fontmetrics.h | 224 +++++++++++++++----------- 7 files changed, 142 insertions(+), 101 deletions(-) create mode 100755 inst/afm/Arial-Bold-ucs.afm.gz create mode 100755 inst/afm/Arial-BoldOblique-ucs.afm.gz create mode 100755 inst/afm/Arial-Oblique-ucs.afm.gz create mode 100755 inst/afm/Arial-ucs.afm.gz diff --git a/DESCRIPTION b/DESCRIPTION index e16de19..0279680 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,13 +1,16 @@ Package: devEMF Type: Package Title: EMF Graphics Output Device -Version: 4.5-1 +Version: 4.5-2 Date: 2025-03-24 -Authors@R: person(given = "Philip", - family = "Johnson", - role = c("aut", "cre"), - email = "plfj@umd.edu", - comment = c(ORCID = "0000-0001-6087-7064")) +Authors@R: c( + person(given = "Philip", + family = "Johnson", + role = c("aut", "cre"), + email = "plfj@umd.edu", + comment = c(ORCID = "0000-0001-6087-7064")), + person("Bill", "Huang", email = "Bill.Huang@Toastmasters.org.tw", role = c("ctb")) +) Depends: R (>= 2.10.1) SystemRequirements: fontconfig or zlib (only needed for platforms other than modern OSX and Windows) Description: Output graphics to EMF+/EMF. diff --git a/NEWS b/NEWS index 3731a60..67a0733 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,7 @@ +v4.5-2 -- 05 Feb 2026 + -add Arial afm files in inst/afm/ and modify fontmetrics for reading Arial + in decimal when Fontconfig doesn't contain the font + v4.5-1 -- 24 Mar 2025 -swap use of "==" for "=" in configure.ac (and configure) diff --git a/inst/afm/Arial-Bold-ucs.afm.gz b/inst/afm/Arial-Bold-ucs.afm.gz new file mode 100755 index 0000000000000000000000000000000000000000..f8316e4ca07a1e15284a42023df898235ecd6a13 GIT binary patch literal 16223 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
qbexaNEX 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 A1poj5 literal 0 HcmV?d00001 diff --git a/inst/afm/Arial-ucs.afm.gz b/inst/afm/Arial-ucs.afm.gz new file mode 100755 index 0000000000000000000000000000000000000000..1783ffc9b6dee3d9493431b18c15ecbb7d710dd7 GIT binary patch literal 16245 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 literal 0 HcmV?d00001 diff --git a/src/fontmetrics.h b/src/fontmetrics.h index 9ce3103..637a694 100644 --- a/src/fontmetrics.h +++ b/src/fontmetrics.h @@ -214,6 +214,11 @@ struct SSysFontInfo { afmPathDB["Symbol"].push_back("Symbol-ucs.afm"); afmPathDB["Symbol"].push_back("Symbol-ucs.afm"); afmPathDB["Symbol"].push_back("Symbol-ucs.afm"); + afmPathDB["Arial"].push_back("Arial-ucs.afm"); + afmPathDB["Arial"].push_back("Arial-Bold-ucs.afm"); + afmPathDB["Arial"].push_back("Arial-Oblique-ucs.afm"); + afmPathDB["Arial"].push_back("Arial-BoldOblique-ucs.afm"); + //find full path to package using R "findPackage" function SEXP findPackage, call; @@ -231,52 +236,63 @@ struct SSysFontInfo { packagePath = CHAR(STRING_ELT(res, 0)); } #endif -#ifdef HAVE_FONTCONFIG - m_FontInfo = NULL; - - FcPattern *pattern = FcPatternBuild - (NULL, - FC_FAMILY, FcTypeString, m_Spec.m_Family.c_str(), - FC_PIXEL_SIZE, FcTypeInteger, m_Spec.m_Size, - FC_SLANT, FcTypeInteger, (m_Spec.m_Face == 3 || - m_Spec.m_Face == 4 ? - FC_SLANT_ITALIC : - FC_SLANT_ROMAN), - FC_WEIGHT, FcTypeInteger, (m_Spec.m_Face == 2 || - m_Spec.m_Face == 4 ? - FC_WEIGHT_BOLD : - FC_WEIGHT_MEDIUM), - NULL); - FcConfigSubstitute(m_Fontconfig.m_FCconfig, pattern, FcMatchPattern); - FcDefaultSubstitute(pattern); - FcResult res; - FcPattern *font = FcFontMatch(m_Fontconfig.m_FCconfig, pattern, &res); - if (res == FcResultMatch) { - char *family; - FcPatternGetString(font, FC_FAMILY, 0, (FcChar8**)&family); - if (m_Spec.m_Family != family) { - Rf_warning("devEMF: your system substituted font family '%s' when you requested '%s'", - family, m_Spec.m_Family.c_str()); - } - //load actual font face - char* filename; - int index; - bool fontLoaded = (FcPatternGetString(font, FC_FILE, 0, (FcChar8**)&filename) == FcResultMatch && - FcPatternGetInteger(font, FC_INDEX, 0, &index) == FcResultMatch && - FT_New_Face(m_Fontconfig.m_FTlibrary, filename, index, &m_FontInfo) == 0); - FcPatternDestroy(pattern); - FcPatternDestroy(font); - if (fontLoaded) { - FT_Matrix transform; //flip glyph y axis to match emf's coord system - transform.xx = 65536; transform.xy = 0; - transform.yx = 0; transform.yy = -65536; - FT_Set_Transform(m_FontInfo, &transform, NULL); - FT_Set_Pixel_Sizes(m_FontInfo, m_Spec.m_Size, 0); - return; - } +#ifdef HAVE_FONTCONFIG + m_FontInfo = NULL; + + // 20260205: If Fontconfig doesn't have the font, jump to AFM + bool useFontconfig = true; + if (afmPathDB.find(m_Spec.m_Family) != afmPathDB.end() && + afmPathDB[m_Spec.m_Family].size() >= m_Spec.m_Face) { + useFontconfig = false; + } + + if (useFontconfig) { + FcPattern *pattern = FcPatternBuild + (NULL, + FC_FAMILY, FcTypeString, m_Spec.m_Family.c_str(), + FC_PIXEL_SIZE, FcTypeInteger, m_Spec.m_Size, + FC_SLANT, FcTypeInteger, (m_Spec.m_Face == 3 || + m_Spec.m_Face == 4 ? + FC_SLANT_ITALIC : + FC_SLANT_ROMAN), + FC_WEIGHT, FcTypeInteger, (m_Spec.m_Face == 2 || + m_Spec.m_Face == 4 ? + FC_WEIGHT_BOLD : + FC_WEIGHT_MEDIUM), + NULL); + FcConfigSubstitute(m_Fontconfig.m_FCconfig, pattern, FcMatchPattern); + FcDefaultSubstitute(pattern); + FcResult res; + FcPattern *font = FcFontMatch(m_Fontconfig.m_FCconfig, pattern, &res); + if (res == FcResultMatch) { + char *family; + FcPatternGetString(font, FC_FAMILY, 0, (FcChar8**)&family); + if (m_Spec.m_Family != family) { + Rf_warning("devEMF: your system substituted font family '%s' when you requested '%s'", + family, m_Spec.m_Family.c_str()); } + + //load actual font face + char* filename; + int index; + bool fontLoaded = (FcPatternGetString(font, FC_FILE, 0, (FcChar8**)&filename) == FcResultMatch && + FcPatternGetInteger(font, FC_INDEX, 0, &index) == FcResultMatch && + FT_New_Face(m_Fontconfig.m_FTlibrary, filename, index, &m_FontInfo) == 0); + FcPatternDestroy(pattern); + FcPatternDestroy(font); + if (fontLoaded) { + FT_Matrix transform; //flip glyph y axis to match emf's coord system + transform.xx = 65536; transform.xy = 0; + transform.yx = 0; transform.yy = -65536; + FT_Set_Transform(m_FontInfo, &transform, NULL); + FT_Set_Pixel_Sizes(m_FontInfo, m_Spec.m_Size, 0); + return; + } + } + } #endif + #ifdef HAVE_ZLIB if (afmPathDB.find(m_Spec.m_Family) == afmPathDB.end() || afmPathDB[m_Spec.m_Family].size() < m_Spec.m_Face) { @@ -293,6 +309,7 @@ struct SSysFontInfo { afmPathDB["Helvetica"][m_Spec.m_Face-1] + ".gz"). c_str(), m_Spec.m_Size, true); } else { + //Rf_warning("Testing message: local loading AFM is '%s'", m_Spec.m_Family.c_str()); LoadAFM((packagePath+"/afm/" + afmPathDB[m_Spec.m_Family][m_Spec.m_Face-1] + ".gz"). c_str(), m_Spec.m_Size, true); @@ -320,59 +337,76 @@ struct SSysFontInfo { #ifdef HAVE_ZLIB void LoadAFM(const std::string &filename, int size, bool loadFontBBox) { - typedef std::map TName2Code; - TName2Code name2code; - const unsigned int buffsize = 512; - char buff[buffsize]; - gzFile afm = gzopen(filename.c_str(), "rb"); - while (gzgets(afm, buff, buffsize)) { - std::stringstream iss(buff); - std::string key; - iss >> key; - if (key == "FontBBox" && loadFontBBox) { - iss >> m_AFMFontBBox.llx >> m_AFMFontBBox.lly - >> m_AFMFontBBox.urx >> m_AFMFontBBox.ury; - m_AFMFontBBox.ascent = m_AFMFontBBox.ury * 0.001 * size; - m_AFMFontBBox.descent = -m_AFMFontBBox.lly * 0.001 * size; - m_AFMFontBBox.width = (m_AFMFontBBox.urx-m_AFMFontBBox.llx) - * 0.001 * size; - } else if (key == "C") { - SCharMetric cMetric; - iss >> std::hex >> cMetric.code >> std::dec >> key; - while (iss.good()) { - if (key == "WX") { - iss >> cMetric.wx; - cMetric.advance = cMetric.wx * 0.001 * size; - } else if (key == "N") { - iss >> cMetric.name; - } else if (key == "B") { - iss >> cMetric.llx >> cMetric.lly - >> cMetric.urx >> cMetric.ury; - cMetric.ascent = cMetric.ury * 0.001 * size; - cMetric.descent = -cMetric.lly * 0.001 * size; - cMetric.width = (cMetric.urx-cMetric.llx) * 0.001 * size; - } - iss >> key; - } - if (m_AFMCharMetrics.find(cMetric.code) == - m_AFMCharMetrics.end()) { - m_AFMCharMetrics[cMetric.code] = cMetric; - name2code[cMetric.name] = cMetric.code; - } - } else if (key == "KPX") { - std::string name1, name2; - iss >> name1 >> name2; - TName2Code::const_iterator ch1 = name2code.find(name1); - TName2Code::const_iterator ch2 = name2code.find(name2); - if (ch1 != name2code.end() && - ch2 != name2code.end()) { - int kern; - iss >> kern; - m_AFMKerningTable[SCharPair(ch1->second, ch2->second)] = kern * 0.001 * size; - } + typedef std::map TName2Code; + TName2Code name2code; + const unsigned int buffsize = 512; + char buff[buffsize]; + gzFile afm = gzopen(filename.c_str(), "rb"); + + while (gzgets(afm, buff, buffsize)) { + std::stringstream iss(buff); + std::string key; + iss >> key; + + if (key == "FontBBox" && loadFontBBox) { + iss >> m_AFMFontBBox.llx >> m_AFMFontBBox.lly + >> m_AFMFontBBox.urx >> m_AFMFontBBox.ury; + m_AFMFontBBox.ascent = m_AFMFontBBox.ury * 0.001 * size; + m_AFMFontBBox.descent = -m_AFMFontBBox.lly * 0.001 * size; + m_AFMFontBBox.width = (m_AFMFontBBox.urx-m_AFMFontBBox.llx)* 0.001 * size; + } else if (key == "C") { + SCharMetric cMetric; + // 20260205 Update for reading in decimal for Arial + // Read character code strings and automatically determine + std::string codeStr; + iss >> codeStr; + + // Determine whether the number is hexadecimal (with leading zeros) or decimal. + if (codeStr.length() > 1 && codeStr[0] == '0' && + (codeStr[1] >= '0' && codeStr[1] <= '9')) { + // Hexadecimal format (e.g., 0020, 002A) + std::stringstream(codeStr) >> std::hex >> cMetric.code; + } else { + // Decimal format (e.g., 32, 42) + std::stringstream(codeStr) >> std::dec >> cMetric.code; + } + + iss >> key; // Read ";" + + while (iss >> key) { + if (key == "WX") { + iss >> cMetric.wx; + cMetric.advance = cMetric.wx * 0.001 * size; + } else if (key == "N") { + iss >> cMetric.name; + } else if (key == "B") { + iss >> cMetric.llx >> cMetric.lly + >> cMetric.urx >> cMetric.ury; + cMetric.ascent = cMetric.ury * 0.001 * size; + cMetric.descent = -cMetric.lly * 0.001 * size; + cMetric.width = (cMetric.urx-cMetric.llx) * 0.001 * size; } - } - gzclose(afm); + } + + if (m_AFMCharMetrics.find(cMetric.code) == + m_AFMCharMetrics.end()) { + m_AFMCharMetrics[cMetric.code] = cMetric; + name2code[cMetric.name] = cMetric.code; + } + } else if (key == "KPX") { + std::string name1, name2; + iss >> name1 >> name2; + TName2Code::const_iterator ch1 = name2code.find(name1); + TName2Code::const_iterator ch2 = name2code.find(name2); + if (ch1 != name2code.end() && + ch2 != name2code.end()) { + int kern; + iss >> kern; + m_AFMKerningTable[SCharPair(ch1->second, ch2->second)] = kern * 0.001 * size; + } + } + } + gzclose(afm); } #endif From 2f181a671bffefeab2593ce94586a718b74ceab3 Mon Sep 17 00:00:00 2001 From: bhuang08 Date: Thu, 5 Feb 2026 14:35:42 +0000 Subject: [PATCH 2/2] Update DESCRIPTION and remove comment --- DESCRIPTION | 14 +++++++------- src/fontmetrics.h | 1 - 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 0279680..d353845 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -4,13 +4,13 @@ Title: EMF Graphics Output Device Version: 4.5-2 Date: 2025-03-24 Authors@R: c( - person(given = "Philip", - family = "Johnson", - role = c("aut", "cre"), - email = "plfj@umd.edu", - comment = c(ORCID = "0000-0001-6087-7064")), - person("Bill", "Huang", email = "Bill.Huang@Toastmasters.org.tw", role = c("ctb")) -) + person(given = "Philip", + family = "Johnson", + role = c("aut", "cre"), + email = "plfj@umd.edu", + comment = c(ORCID = "0000-0001-6087-7064")), + person("Bill", "Huang", email = "bhuang08@agmen.com", role = c("aut")) + ) Depends: R (>= 2.10.1) SystemRequirements: fontconfig or zlib (only needed for platforms other than modern OSX and Windows) Description: Output graphics to EMF+/EMF. diff --git a/src/fontmetrics.h b/src/fontmetrics.h index 637a694..fb44891 100644 --- a/src/fontmetrics.h +++ b/src/fontmetrics.h @@ -309,7 +309,6 @@ struct SSysFontInfo { afmPathDB["Helvetica"][m_Spec.m_Face-1] + ".gz"). c_str(), m_Spec.m_Size, true); } else { - //Rf_warning("Testing message: local loading AFM is '%s'", m_Spec.m_Family.c_str()); LoadAFM((packagePath+"/afm/" + afmPathDB[m_Spec.m_Family][m_Spec.m_Face-1] + ".gz"). c_str(), m_Spec.m_Size, true);