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 2010/06/15 21:14:13 UTC
svn commit: r955007 -
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1CFont.java
Author: lehmi
Date: Tue Jun 15 19:14:13 2010
New Revision: 955007
URL: http://svn.apache.org/viewvc?rev=955007&view=rev
Log:
PDFBOX-725: added support for 2-byte encodings
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1CFont.java
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=955007&r1=955006&r2=955007&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 Tue Jun 15 19:14:13 2010
@@ -140,13 +140,15 @@ public class PDType1CFont extends PDSimp
private String getCharacter( byte[] bytes, int offset, int length )
{
- if( length != 1)
+ if (length > 2)
{
return null;
}
-
- Integer code = Integer.valueOf(bytes[offset] & 0xff);
-
+ int code = bytes[offset] & 0xff;
+ if (length == 2)
+ {
+ code = code * 256 + bytes[offset+1] & 0xff;
+ }
return (String)this.codeToCharacter.get(code);
}
@@ -198,12 +200,16 @@ public class PDType1CFont extends PDSimp
private String getName( byte[] bytes, int offset, int length )
{
- if( length != 1 )
+ if (length > 2)
{
return null;
}
-
- Integer code = Integer.valueOf(bytes[offset] & 0xff);
+
+ int code = bytes[offset] & 0xff;
+ if (length == 2)
+ {
+ code = code * 256 + bytes[offset+1] & 0xff;
+ }
return (String)this.codeToName.get(code);
}
@@ -574,12 +580,14 @@ public class PDType1CFont extends PDSimp
*/
private static class PDFEncoding extends CFFEncoding
{
- // TODO unused??
- private CFFEncoding parentEncoding = null;
private PDFEncoding( CFFEncoding parent )
{
- parentEncoding = parent;
+ Iterator<Entry> parentEntries = parent.getEntries().iterator();
+ while(parentEntries.hasNext())
+ {
+ addEntry(parentEntries.next());
+ }
}
public boolean isFontSpecific()
@@ -587,10 +595,6 @@ public class PDType1CFont extends PDSimp
return true;
}
- public void register( int code, int sid )
- {
- super.register(code, sid);
- }
}
/**
@@ -599,12 +603,13 @@ public class PDType1CFont extends PDSimp
*/
private static class PDFCharset extends CFFCharset
{
- // TODO unused??
- private CFFCharset parentCharset = null;
-
private PDFCharset( CFFCharset parent )
{
- parentCharset = parent;
+ Iterator<Entry> parentEntries = parent.getEntries().iterator();
+ while(parentEntries.hasNext())
+ {
+ addEntry(parentEntries.next());
+ }
}
public boolean isFontSpecific()
@@ -612,10 +617,6 @@ public class PDType1CFont extends PDSimp
return true;
}
- public void register( int sid, String name )
- {
- super.register(sid, name);
- }
}
}