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 2018/09/24 15:26:02 UTC
svn commit: r1841866 -
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java
Author: tilman
Date: Mon Sep 24 15:26:01 2018
New Revision: 1841866
URL: http://svn.apache.org/viewvc?rev=1841866&view=rev
Log:
PDFBOX-4322: treat identity ToUnicode streams that are empty as identity
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java?rev=1841866&r1=1841865&r2=1841866&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java Mon Sep 24 15:26:01 2018
@@ -445,13 +445,16 @@ public abstract class PDFont implements
// if the font dictionary containsName a ToUnicode CMap, use that CMap
if (toUnicodeCMap != null)
{
- if (toUnicodeCMap.getName() != null && toUnicodeCMap.getName().startsWith("Identity-") &&
- dict.getDictionaryObject(COSName.TO_UNICODE) instanceof COSName)
+ if (toUnicodeCMap.getName() != null &&
+ toUnicodeCMap.getName().startsWith("Identity-") &&
+ (dict.getDictionaryObject(COSName.TO_UNICODE) instanceof COSName ||
+ !toUnicodeCMap.hasUnicodeMappings()))
{
// handle the undocumented case of using Identity-H/V as a ToUnicode CMap, this
// isn't actually valid as the Identity-x CMaps are code->CID maps, not
// code->Unicode maps. See sample_fonts_solidconvertor.pdf for an example.
// PDFBOX-3123: do this only if the /ToUnicode entry is a name
+ // PDFBOX-4322: identity streams are OK too
return new String(new char[] { (char) code });
}
else