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 2012/03/17 11:24:08 UTC
svn commit: r1301909 - in
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font:
PDFont.java PDType0Font.java PDType1CFont.java PDType1Font.java
Author: leleueri
Date: Sat Mar 17 10:24:08 2012
New Revision: 1301909
URL: http://svn.apache.org/viewvc?rev=1301909&view=rev
Log:
[PDFBOX-1253] encodeToCid uses the encode method to know if the character has been found.
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1CFont.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Font.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=1301909&r1=1301908&r2=1301909&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 Sat Mar 17 10:24:08 2012
@@ -529,6 +529,15 @@ public abstract class PDFont implements
return retval;
}
+ public int encodeToCID( byte[] c, int offset, int length ) throws IOException
+ {
+ int code = -1;
+ if (encode(c, offset, length) != null) {
+ code = getCodeFromArray( c, offset, length );
+ }
+ return code;
+ }
+
private static final String[] SINGLE_CHAR_STRING = new String[256];
private static final String[][] DOUBLE_CHAR_STRING = new String[256][256];
static
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java?rev=1301909&r1=1301908&r2=1301909&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java Sat Mar 17 10:24:08 2012
@@ -175,21 +175,23 @@ public class PDType0Font extends PDSimpl
@Override
public String encode(byte[] c, int offset, int length) throws IOException
{
+ String retval = null;
if (hasToUnicode())
{
- return super.encode(c, offset, length);
+ retval = super.encode(c, offset, length);
}
- else
+
+ if (retval == null)
{
int result = cmap.lookupCID(c, offset, length);
if (result != -1)
{
- return descendantFont.cmapEncoding(result, 2, true, cmap);
+ retval = descendantFont.cmapEncoding(result, 2, true, cmap);
}
- return null;
}
+ return retval;
}
-
+
/**
*
* Provides the descendant font.
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=1301909&r1=1301908&r2=1301909&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 Sat Mar 17 10:24:08 2012
@@ -118,17 +118,26 @@ public class PDType1CFont extends PDSimp
return character;
}
-
+
+ public int encodeToCID( byte[] bytes, int offset, int length )
+ {
+ if (length > 2)
+ {
+ return -1;
+ }
+ int code = bytes[offset] & 0xff;
+ if (length == 2)
+ {
+ code = code * 256 + bytes[offset+1] & 0xff;
+ }
+ return code;
+ }
+
private String getCharacter( byte[] bytes, int offset, int length )
{
- if (length > 2)
- {
- return null;
- }
- int code = bytes[offset] & 0xff;
- if (length == 2)
- {
- code = code * 256 + bytes[offset+1] & 0xff;
+ int code = encodeToCID(bytes, offset, length);
+ if (code == -1) {
+ return null;
}
return (String)this.codeToCharacter.get(code);
}
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Font.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Font.java?rev=1301909&r1=1301908&r2=1301909&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Font.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Font.java Sat Mar 17 10:24:08 2012
@@ -414,6 +414,16 @@ public class PDType1Font extends PDSimpl
}
}
+ public int encodeToCID( byte[] c, int offset, int length ) throws IOException {
+ if (type1CFont != null && getFontEncoding() == null)
+ {
+ return type1CFont.encodeToCID(c, offset, length);
+ }
+ else
+ {
+ return super.encodeToCID(c, offset, length);
+ }
+ }
/**
* {@inheritDoc}
*/