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:05 UTC
svn commit: r1887293 - in /pdfbox/branches/2.0/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:05 2021
New Revision: 1887293
URL: http://svn.apache.org/viewvc?rev=1887293&view=rev
Log:
PDFBOX-5115: more support of soft hyphen
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDSimpleFont.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1CFont.java
pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java
Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDSimpleFont.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDSimpleFont.java?rev=1887293&r1=1887292&r2=1887293&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDSimpleFont.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDSimpleFont.java Sun Mar 7 11:22:05 2021
@@ -326,14 +326,14 @@ 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";
}
-
- // the Adobe AFMs don't include .notdef, but Acrobat uses 250, test with PDFBOX-2334
- if (".notdef".equals(nameInAFM))
+ else if ("sfthyphen".equals(nameInAFM))
{
- return 250f;
+ // PDFBOX-5115: sfthyphen is missing in AFM files,
+ // but PDF specification tells "it shall be typographically the same as hyphen"
+ nameInAFM = "hyphen";
}
return getStandard14AFM().getCharacterWidth(nameInAFM);
Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1CFont.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1CFont.java?rev=1887293&r1=1887292&r2=1887293&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1CFont.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1CFont.java Sun Mar 7 11:22:05 2021
@@ -163,7 +163,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
Modified: pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java?rev=1887293&r1=1887292&r2=1887293&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java Sun Mar 7 11:22:05 2021
@@ -425,6 +425,9 @@ public class PDFontTest
PDFont font2 = PDType0Font.load(doc, PDFontTest.class.getResourceAsStream(
"/org/apache/pdfbox/resources/ttf/LiberationSans-Regular.ttf"));
+ Assert.assertEquals(font1.getStringWidth("-"), font1.getStringWidth("\u00AD"), 0);
+ Assert.assertEquals(font2.getStringWidth("-"), font2.getStringWidth("\u00AD"), 0);
+
PDPageContentStream cs = new PDPageContentStream(doc, page);
cs.beginText();
cs.newLineAtOffset(100, 500);