You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2023/07/02 08:49:00 UTC
svn commit: r1910739 - in /pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf: OpenTypeFont.java TTFParser.java
Author: lehmi
Date: Sun Jul 2 08:48:59 2023
New Revision: 1910739
URL: http://svn.apache.org/viewvc?rev=1910739&view=rev
Log:
PDFBOX-5632: improve code handling loca-tables for fonts using CFF outlines
Modified:
pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/OpenTypeFont.java
pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/TTFParser.java
Modified: pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/OpenTypeFont.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/OpenTypeFont.java?rev=1910739&r1=1910738&r2=1910739&view=diff
==============================================================================
--- pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/OpenTypeFont.java (original)
+++ pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/OpenTypeFont.java Sun Jul 2 08:48:59 2023
@@ -80,7 +80,7 @@ public class OpenTypeFont extends TrueTy
*/
public boolean isPostScript()
{
- return tables.containsKey(CFFTable.TAG);
+ return isPostScript || tables.containsKey(CFFTable.TAG) || tables.containsKey("CFF2");
}
/**
Modified: pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/TTFParser.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/TTFParser.java?rev=1910739&r1=1910738&r2=1910739&view=diff
==============================================================================
--- pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/TTFParser.java (original)
+++ pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/TTFParser.java Sun Jul 2 08:48:59 2023
@@ -190,7 +190,8 @@ public class TTFParser
}
boolean hasCFF = font.tables.containsKey(CFFTable.TAG);
- boolean isPostScript = allowCFF() && hasCFF;
+ boolean isOTF = font instanceof OpenTypeFont;
+ boolean isPostScript = isOTF ? ((OpenTypeFont) font).isPostScript() : hasCFF;
HeaderTable head = font.getHeader();
if (head == null)
@@ -219,20 +220,13 @@ public class TTFParser
if (!isPostScript)
{
- String messageSuffix = "";
- if (hasCFF)
+ if (font.getIndexToLocation() == null)
{
- messageSuffix = "; this an OpenType CFF font, but we expected a TrueType font here";
+ throw new IOException("'loca' table is mandatory");
}
- IndexToLocationTable loc = font.getIndexToLocation();
- if (loc == null)
- {
- throw new IOException("'loca' table is mandatory" + messageSuffix);
- }
-
if (font.getGlyph() == null)
{
- throw new IOException("'glyf' table is mandatory" + messageSuffix);
+ throw new IOException("'glyf' table is mandatory");
}
}