You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2021/03/07 11:22:01 UTC
svn commit: r1887292 - in /pdfbox/trunk/pdfbox/src:
main/java/org/apache/pdfbox/pdmodel/font/PDSimpleFont.java
main/java/org/apache/pdfbox/pdmodel/font/PDType1CFont.java
test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java
Author: tilman
Date: Sun Mar 7 11:22:00 2021
New Revision: 1887292
URL: http://svn.apache.org/viewvc?rev=1887292&view=rev
Log:
PDFBOX-5115: more support of soft hyphen
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDSimpleFont.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1CFont.java
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDSimpleFont.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDSimpleFont.java?rev=1887292&r1=1887291&r2=1887292&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDSimpleFont.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDSimpleFont.java Sun Mar 7 11:22:00 2021
@@ -327,9 +327,15 @@ public abstract class PDSimpleFont exten
if ("nbspace".equals(nameInAFM))
{
// PDFBOX-4944: nbspace is missing in AFM files,
- // but PDF specification tells "it is typographically the same as SPACE"
+ // but PDF specification tells "it shall be typographically the same as SPACE"
nameInAFM = "space";
}
+ else if ("sfthyphen".equals(nameInAFM))
+ {
+ // PDFBOX-5115: sfthyphen is missing in AFM files,
+ // but PDF specification tells "it shall be typographically the same as hyphen"
+ nameInAFM = "hyphen";
+ }
// the Adobe AFMs don't include .notdef, but Acrobat uses 250, test with PDFBOX-2334
if (".notdef".equals(nameInAFM))
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1CFont.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1CFont.java?rev=1887292&r1=1887291&r2=1887292&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1CFont.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1CFont.java Sun Mar 7 11:22:00 2021
@@ -153,7 +153,15 @@ public class PDType1CFont extends PDSimp
{
return new GeneralPath();
}
- return "nbspace".equals(name) ? genericFont.getPath("space") : genericFont.getPath(name);
+ if ("sfthyphen".equals(name))
+ {
+ return genericFont.getPath("hyphen");
+ }
+ if ("nbspace".equals(name))
+ {
+ return genericFont.getPath("space");
+ }
+ return genericFont.getPath(name);
}
@Override
@@ -161,7 +169,15 @@ public class PDType1CFont extends PDSimp
{
String name = getEncoding().getName(code);
name = getNameInFont(name);
- return "nbspace".equals(name) ? hasGlyph("space") : hasGlyph(name);
+ if ("sfthyphen".equals(name))
+ {
+ return hasGlyph("hyphen");
+ }
+ if ("nbspace".equals(name))
+ {
+ return hasGlyph("space");
+ }
+ return hasGlyph(name);
}
@Override
@@ -169,7 +185,15 @@ public class PDType1CFont extends PDSimp
{
String name = getEncoding().getName(code);
name = getNameInFont(name);
- return "nbspace".equals(name) ? getPath("space") : getPath(name);
+ if ("sfthyphen".equals(name))
+ {
+ return getPath("hyphen");
+ }
+ if ("nbspace".equals(name))
+ {
+ return getPath("space");
+ }
+ return getPath(name);
}
@Override
@@ -181,6 +205,10 @@ public class PDType1CFont extends PDSimp
{
name = "space";
}
+ else if ("sfthyphen".equals(name))
+ {
+ name = "hyphen";
+ }
GeneralPath path = getPath(name);
if (path == null)
{
Modified: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java?rev=1887292&r1=1887291&r2=1887292&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java (original)
+++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java Sun Mar 7 11:22:00 2021
@@ -399,6 +399,10 @@ class PDFontTest
PDFont font1 = PDType1Font.HELVETICA;
PDFont font2 = PDType0Font.load(doc, PDFontTest.class.getResourceAsStream(
"/org/apache/pdfbox/resources/ttf/LiberationSans-Regular.ttf"));
+
+ assertEquals(font1.getStringWidth("-"), font1.getStringWidth("\u00AD"));
+ assertEquals(font2.getStringWidth("-"), font2.getStringWidth("\u00AD"));
+
try (PDPageContentStream cs = new PDPageContentStream(doc, page))
{
cs.beginText();