You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ja...@apache.org on 2014/08/17 22:02:20 UTC
svn commit: r1618516 [1/6] - in /pdfbox/no-awt:
examples/src/main/java/org/apache/pdfbox/examples/pdmodel/
fontbox/src/main/java/org/apache/fontbox/afm/
fontbox/src/main/java/org/apache/fontbox/cff/
fontbox/src/main/java/org/apache/fontbox/cff/charset/...
Author: jahewson
Date: Sun Aug 17 20:02:18 2014
New Revision: 1618516
URL: http://svn.apache.org/r1618516
Log:
PDFBOX-2262: Removed AWT font rendering
- split CFFFont into CFFType1Font (Type 1) and CFFCIDFont (CID-Keyed)
- Fixed major parsing/conceptual errors in CFFEncoding and CFFCharset
- Moved Type1 and Type1C handling code into seperate classes
- Replaced SystemFontManager with pluggable FileSystemFontProvider
- Replaced PDFFontManager with ExternalFonts
- Added Type1Equivalent interface for Type 1 fonts which may be substituted, e.g. standard 14.
- Moved all code for embedding fonts into new PDxxxFontEmbedder classes
Added:
pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/afm/FontMetrics.java
- copied, changed from r1615712, pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/afm/FontMetric.java
pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/CFFCIDFont.java
- copied, changed from r1615712, pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFFontROS.java
pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/CFFCharset.java
- copied, changed from r1615712, pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/charset/CFFCharset.java
pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/CFFEncoding.java
- copied, changed from r1615712, pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/encoding/CFFEncoding.java
pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/CFFExpertCharset.java
- copied, changed from r1615712, pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/charset/CFFExpertCharset.java
pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/CFFExpertEncoding.java
- copied, changed from r1615712, pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/encoding/CFFExpertEncoding.java
pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/CFFExpertSubsetCharset.java
- copied, changed from r1615712, pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/charset/CFFExpertSubsetCharset.java
pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/CFFISOAdobeCharset.java
- copied, changed from r1615712, pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/charset/CFFISOAdobeCharset.java
pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/CFFStandardEncoding.java
- copied, changed from r1615712, pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/encoding/CFFStandardEncoding.java
pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/CFFType1Font.java
pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/CIDKeyedType2CharString.java
pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/ttf/TTFSubsetter.java
- copied, changed from r1615712, pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/TTFSubFont.java
pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/ttf/Type1Equivalent.java
pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/ttf/WGL4Names.java
pdfbox/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/ExternalFonts.java
pdfbox/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FileSystemFontProvider.java
pdfbox/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FontProvider.java
pdfbox/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType0.java
- copied, changed from r1615712, pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType0Font.java
pdfbox/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java
- copied, changed from r1615712, pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2Font.java
pdfbox/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFontEmbedder.java
pdfbox/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Equivalent.java
pdfbox/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1FontEmbedder.java
pdfbox/no-awt/pdfbox/src/main/java/org/apache/pdfbox/rendering/font/CIDGlyph2D.java
Removed:
pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/afm/FontMetric.java
pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/CFFFontROS.java
pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/Type1CharStringFormatter.java
pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/Type1FontFormatter.java
pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/charset/
pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/encoding/
pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/ttf/TTFSubFont.java
pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/type1/Type1Mapping.java
pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/util/SystemFontManager.java
pdfbox/no-awt/fontbox/src/test/java/org/apache/fontbox/cff/Type1CharStringTest.java
pdfbox/no-awt/pdfbox/src/main/java/org/apache/pdfbox/encoding/AFMEncoding.java
pdfbox/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType0Font.java
pdfbox/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2Font.java
pdfbox/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFFontManager.java
pdfbox/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1AfmPfbFont.java
pdfbox/no-awt/pdfbox/src/main/resources/org/apache/pdfbox/resources/FontMapping.properties
Modified:
pdfbox/no-awt/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/ExtractTTFFonts.java
pdfbox/no-awt/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/HelloWorldType1AfmPfb.java
pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/afm/AFMParser.java
pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/CFFFont.java
pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/CFFParser.java
pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/CIDKeyedFDSelect.java
pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/Type1CharString.java
pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharString.java
pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java
pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cmap/CMapParser.java
pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/encoding/Encoding.java
pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/ttf/NameRecord.java
pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/ttf/NamingTable.java
pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/ttf/PostScriptTable.java
pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/ttf/TrueTypeFont.java
pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/type1/Type1Font.java
pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/util/autodetect/FontDirFinder.java
pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/util/autodetect/FontFileFinder.java
pdfbox/no-awt/pdfbox/src/main/java/org/apache/pdfbox/encoding/DictionaryEncoding.java
pdfbox/no-awt/pdfbox/src/main/java/org/apache/pdfbox/encoding/Encoding.java
pdfbox/no-awt/pdfbox/src/main/java/org/apache/pdfbox/encoding/Type1Encoding.java
pdfbox/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFont.java
pdfbox/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java
pdfbox/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFontDescriptorAFM.java
pdfbox/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFontDescriptorDictionary.java
pdfbox/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFontFactory.java
pdfbox/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDMMType1Font.java
pdfbox/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java
pdfbox/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java
pdfbox/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1CFont.java
pdfbox/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Font.java
pdfbox/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType3Font.java
pdfbox/no-awt/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java
pdfbox/no-awt/pdfbox/src/main/java/org/apache/pdfbox/rendering/font/TTFGlyph2D.java
pdfbox/no-awt/pdfbox/src/main/java/org/apache/pdfbox/rendering/font/Type1Glyph2D.java
pdfbox/no-awt/pdfbox/src/main/java/org/apache/pdfbox/util/PDFStreamEngine.java
pdfbox/no-awt/pdfbox/src/main/java/org/apache/pdfbox/util/PDFTextStreamEngine.java
pdfbox/no-awt/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/TestTTFParser.java
pdfbox/no-awt/pdfbox/src/test/java/org/apache/pdfbox/util/TestTextStripper.java
pdfbox/no-awt/preflight/src/main/java/org/apache/pdfbox/preflight/content/PreflightContentStream.java
pdfbox/no-awt/preflight/src/main/java/org/apache/pdfbox/preflight/font/Type0FontValidator.java
pdfbox/no-awt/preflight/src/main/java/org/apache/pdfbox/preflight/font/Type3FontValidator.java
pdfbox/no-awt/preflight/src/main/java/org/apache/pdfbox/preflight/font/container/CIDType0Container.java
pdfbox/no-awt/preflight/src/main/java/org/apache/pdfbox/preflight/font/container/FontContainer.java
pdfbox/no-awt/preflight/src/main/java/org/apache/pdfbox/preflight/font/container/Type1Container.java
pdfbox/no-awt/preflight/src/main/java/org/apache/pdfbox/preflight/font/util/Type1.java
pdfbox/no-awt/tools/src/main/java/org/apache/pdfbox/tools/TextToPDF.java
Modified: pdfbox/no-awt/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/ExtractTTFFonts.java
URL: http://svn.apache.org/viewvc/pdfbox/no-awt/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/ExtractTTFFonts.java?rev=1618516&r1=1618515&r2=1618516&view=diff
==============================================================================
--- pdfbox/no-awt/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/ExtractTTFFonts.java (original)
+++ pdfbox/no-awt/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/ExtractTTFFonts.java Sun Aug 17 20:02:18 2014
@@ -28,7 +28,7 @@ import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDResources;
import org.apache.pdfbox.pdmodel.common.PDStream;
import org.apache.pdfbox.pdmodel.encryption.StandardDecryptionMaterial;
-import org.apache.pdfbox.pdmodel.font.PDCIDFontType2Font;
+import org.apache.pdfbox.pdmodel.font.PDCIDFontType2;
import org.apache.pdfbox.pdmodel.font.PDFont;
import org.apache.pdfbox.pdmodel.font.PDFontDescriptorDictionary;
import org.apache.pdfbox.pdmodel.font.PDTrueTypeFont;
@@ -182,7 +182,7 @@ public class ExtractTTFFonts
else if (font instanceof PDType0Font)
{
PDFont descendantFont = ((PDType0Font) font).getDescendantFont();
- if (descendantFont instanceof PDCIDFontType2Font)
+ if (descendantFont instanceof PDCIDFontType2)
{
String name = null;
if (addKey)
Modified: pdfbox/no-awt/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/HelloWorldType1AfmPfb.java
URL: http://svn.apache.org/viewvc/pdfbox/no-awt/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/HelloWorldType1AfmPfb.java?rev=1618516&r1=1618515&r2=1618516&view=diff
==============================================================================
--- pdfbox/no-awt/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/HelloWorldType1AfmPfb.java (original)
+++ pdfbox/no-awt/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/HelloWorldType1AfmPfb.java Sun Aug 17 20:02:18 2014
@@ -17,13 +17,15 @@
package org.apache.pdfbox.examples.pdmodel;
+import java.io.BufferedInputStream;
+import java.io.FileInputStream;
import java.io.IOException;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.edit.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDFont;
-import org.apache.pdfbox.pdmodel.font.PDType1AfmPfbFont;
+import org.apache.pdfbox.pdmodel.font.PDType1Font;
/**
* This is an example that creates a simple document
@@ -56,7 +58,7 @@ public class HelloWorldType1AfmPfb
PDPage page = new PDPage();
doc.addPage(page);
- PDFont font = new PDType1AfmPfbFont(doc,fontfile);
+ PDFont font = createPDType1AfmPfbFont(doc, fontfile);
PDPageContentStream contentStream = new PDPageContentStream(doc,
page);
@@ -78,6 +80,14 @@ public class HelloWorldType1AfmPfb
}
}
+ private PDType1Font createPDType1AfmPfbFont(PDDocument doc, String afmName) throws IOException
+ {
+ return new PDType1Font(doc,
+ new BufferedInputStream(new FileInputStream(afmName)),
+ new BufferedInputStream(new FileInputStream(afmName.replaceAll(".AFM", "").
+ replaceAll(".afm", "") + ".pfb")));
+ }
+
/**
* This will create a hello world PDF document
* with a ttf-font.
Modified: pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/afm/AFMParser.java
URL: http://svn.apache.org/viewvc/pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/afm/AFMParser.java?rev=1618516&r1=1618515&r2=1618516&view=diff
==============================================================================
--- pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/afm/AFMParser.java (original)
+++ pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/afm/AFMParser.java Sun Aug 17 20:02:18 2014
@@ -334,7 +334,7 @@ public class AFMParser
*
* @throws IOException If there is an IO error reading the document.
*/
- public FontMetric parse() throws IOException
+ public FontMetrics parse() throws IOException
{
return parseFontMetric();
}
@@ -346,9 +346,9 @@ public class AFMParser
*
* @throws IOException If there is an error reading the AFM file.
*/
- private FontMetric parseFontMetric() throws IOException
+ private FontMetrics parseFontMetric() throws IOException
{
- FontMetric fontMetrics = new FontMetric();
+ FontMetrics fontMetrics = new FontMetrics();
String startFontMetrics = readString();
if( !START_FONT_METRICS.equals( startFontMetrics ) )
{
@@ -527,7 +527,7 @@ public class AFMParser
*
* @throws IOException If there is an error parsing the data.
*/
- private void parseKernData( FontMetric fontMetrics ) throws IOException
+ private void parseKernData( FontMetrics fontMetrics ) throws IOException
{
String nextCommand;
while( !(nextCommand = readString()).equals( END_KERN_DATA ) )
Copied: pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/afm/FontMetrics.java (from r1615712, pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/afm/FontMetric.java)
URL: http://svn.apache.org/viewvc/pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/afm/FontMetrics.java?p2=pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/afm/FontMetrics.java&p1=pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/afm/FontMetric.java&r1=1615712&r2=1618516&rev=1618516&view=diff
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/afm/FontMetric.java (original)
+++ pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/afm/FontMetrics.java Sun Aug 17 20:02:18 2014
@@ -27,13 +27,11 @@ import java.util.Map;
import org.apache.fontbox.util.BoundingBox;
/**
- * This is the outermost AFM type. This can be created by the afmparser with a valid
- * AFM document.
+ * This is the outermost AFM type. This can be created by the afmparser with a valid AFM document.
*
- * @author Ben Litchfield (ben@benlitchfield.com)
- * @version $Revision: 1.3 $
+ * @author Ben Litchfield
*/
-public class FontMetric
+public class FontMetrics
{
/**
* This is the version of the FontMetrics.
@@ -80,7 +78,7 @@ public class FontMetric
/**
* Constructor.
*/
- public FontMetric()
+ public FontMetrics()
{
}
@@ -90,10 +88,8 @@ public class FontMetric
* @param name The character to get the width for.
*
* @return The width of the character.
- *
- * @throws IOException If this AFM file does not handle the character.
*/
- public float getCharacterWidth( String name ) throws IOException
+ public float getCharacterWidth( String name )
{
float result = 0;
CharMetric metric = charMetricsMap.get( name );
@@ -114,12 +110,9 @@ public class FontMetric
* This will get the width of a character.
*
* @param name The character to get the width for.
- *
* @return The width of the character.
- *
- * @throws IOException If this AFM file does not handle the character.
*/
- public float getCharacterHeight( String name ) throws IOException
+ public float getCharacterHeight( String name )
{
float result = 0;
CharMetric metric = charMetricsMap.get( name );
@@ -151,7 +144,7 @@ public class FontMetric
*
* @throws IOException If this AFM file does not handle the character.
*/
- public float getAverageCharacterWidth() throws IOException
+ public float getAverageCharacterWidth()
{
float average = 0;
float totalWidths = 0;
Copied: pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/CFFCIDFont.java (from r1615712, pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFFontROS.java)
URL: http://svn.apache.org/viewvc/pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/CFFCIDFont.java?p2=pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/CFFCIDFont.java&p1=pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFFontROS.java&r1=1615712&r2=1618516&rev=1618516&view=diff
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFFontROS.java (original)
+++ pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/CFFCIDFont.java Sun Aug 17 20:02:18 2014
@@ -17,18 +17,21 @@
package org.apache.fontbox.cff;
+import org.apache.fontbox.type1.Type1CharStringReader;
+
import java.io.IOException;
+import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
/**
- * This class represents a CID-Keyed CFF/Type2 Font.
+ * A Type 0 CIDFont represented in a CFF file.
*
* @author Villu Ruusmann
* @author John Hewson
*/
-public class CFFFontROS extends CFFFont
+public class CFFCIDFont extends CFFFont
{
private String registry;
private String ordering;
@@ -36,7 +39,12 @@ public class CFFFontROS extends CFFFont
private List<Map<String, Object>> fontDictionaries = new LinkedList<Map<String,Object>>();
private List<Map<String, Object>> privateDictionaries = new LinkedList<Map<String,Object>>();
- private CIDKeyedFDSelect fdSelect = null;
+ private CIDKeyedFDSelect fdSelect;
+
+ private final Map<Integer, CIDKeyedType2CharString> charStringCache =
+ new HashMap<Integer, CIDKeyedType2CharString>();
+
+ private final PrivateType1CharStringReader reader = new PrivateType1CharStringReader();
/**
* Returns the registry value.
@@ -52,7 +60,7 @@ public class CFFFontROS extends CFFFont
*
* @param registry the registry to set
*/
- public void setRegistry(String registry)
+ void setRegistry(String registry)
{
this.registry = registry;
}
@@ -72,7 +80,7 @@ public class CFFFontROS extends CFFFont
*
* @param ordering the ordering to set
*/
- public void setOrdering(String ordering)
+ void setOrdering(String ordering)
{
this.ordering = ordering;
}
@@ -92,7 +100,7 @@ public class CFFFontROS extends CFFFont
*
* @param supplement the supplement to set
*/
- public void setSupplement(int supplement)
+ void setSupplement(int supplement)
{
this.supplement = supplement;
}
@@ -112,7 +120,7 @@ public class CFFFontROS extends CFFFont
*
* @param fontDict the fontDict to set
*/
- public void setFontDict(List<Map<String, Object>> fontDict)
+ void setFontDict(List<Map<String, Object>> fontDict)
{
this.fontDictionaries = fontDict;
}
@@ -132,7 +140,7 @@ public class CFFFontROS extends CFFFont
*
* @param privDict the privDict to set
*/
- public void setPrivDict(List<Map<String, Object>> privDict)
+ void setPrivDict(List<Map<String, Object>> privDict)
{
this.privateDictionaries = privDict;
}
@@ -152,68 +160,18 @@ public class CFFFontROS extends CFFFont
*
* @param fdSelect the fdSelect to set
*/
- public void setFdSelect(CIDKeyedFDSelect fdSelect)
+ void setFdSelect(CIDKeyedFDSelect fdSelect)
{
this.fdSelect = fdSelect;
}
/**
- * {@inheritDoc}
- */
- protected Mapping createMapping(int code, int sid, String name, byte[] bytes)
- {
- Mapping mapping = new Mapping();
- mapping.setCode(sid); // code = sid
- mapping.setSID(sid);
- mapping.setName(name);
- mapping.setBytes(bytes);
- return mapping;
- }
-
- /**
- * Returns the Width value of the given Glyph identifier
- *
- * @param cid CID
- * @return -1 if the CID is missing from the Font.
- * @throws IOException
- */
- public int getWidth(int cid) throws IOException
- {
- // search the right FDArray index in the FDSelect according to the Character identifier
- // this index will be used to access the private dictionary which contains useful values
- // to compute width.
- int fdArrayIndex = this.fdSelect.getFd(cid);
- if (fdArrayIndex == -1 && cid == 0 ) // notdef char
- {
- return super.getWidth(cid);
- }
- else if (fdArrayIndex == -1)
- {
- return 1000;
- }
-
- for (Mapping m : getMappings())
- {
- if (m.getSID() == cid)
- {
- Type1CharString charstring = m.getType1CharString();
- return charstring.getWidth();
- }
- }
-
- // CID not found, return the notdef width
- int nominalWidth = getNominalWidthX(cid);
- int defaultWidth = getDefaultWidthX(cid);
- return getNotDefWidth(defaultWidth, nominalWidth);
- }
-
- /**
* Returns the defaultWidthX for the given CID.
*
* @param cid CID
* @return defaultWidthX
*/
- protected int getDefaultWidthX(int cid)
+ private int getDefaultWidthX(int cid)
{
int fdArrayIndex = this.fdSelect.getFd(cid);
if (fdArrayIndex == -1)
@@ -230,7 +188,7 @@ public class CFFFontROS extends CFFFont
* @param cid CID
* @return defaultWidthX
*/
- protected int getNominalWidthX(int cid)
+ private int getNominalWidthX(int cid)
{
int fdArrayIndex = this.fdSelect.getFd(cid);
if (fdArrayIndex == -1)
@@ -241,8 +199,7 @@ public class CFFFontROS extends CFFFont
return privDict.containsKey("nominalWidthX") ? ((Number)privDict.get("nominalWidthX")).intValue() : 0;
}
- @Override
- protected IndexData getLocalSubrIndex(int cid)
+ private IndexData getLocalSubrIndex(int cid)
{
int fdArrayIndex = this.fdSelect.getFd(cid);
if (fdArrayIndex == -1)
@@ -252,4 +209,43 @@ public class CFFFontROS extends CFFFont
Map<String, Object> privDict = this.privateDictionaries.get(fdArrayIndex);
return (IndexData)privDict.get("Subrs");
}
+
+ /**
+ * Returns the Type 2 charstring for the given CID.
+ *
+ * @param cid CID
+ * @throws IOException if the charstring could not be read
+ */
+ public CIDKeyedType2CharString getType2CharString(int cid) throws IOException
+ {
+ CIDKeyedType2CharString type2 = charStringCache.get(cid);
+ if (type2 == null)
+ {
+ int gid = charset.getGIDForCID(cid);
+
+ byte[] bytes = charStrings.get(gid);
+ if (bytes == null)
+ {
+ bytes = charStrings.get(0); // .notdef
+ }
+ Type2CharStringParser parser = new Type2CharStringParser(fontName, cid);
+ List<Object> type2seq = parser.parse(bytes, globalSubrIndex, getLocalSubrIndex(cid));
+ type2 = new CIDKeyedType2CharString(reader, fontName, cid, gid, type2seq, getDefaultWidthX(cid), getNominalWidthX(cid));
+ charStringCache.put(cid, type2);
+ }
+ return type2;
+ }
+
+ /**
+ * Private implementation of Type1CharStringReader, because only CFFType1Font can
+ * expose this publicly, as CIDFonts only support this for legacy 'seac' commands.
+ */
+ private class PrivateType1CharStringReader implements Type1CharStringReader
+ {
+ @Override
+ public Type1CharString getType1CharString(String name) throws IOException
+ {
+ return CFFCIDFont.this.getType2CharString(0); // .notdef
+ }
+ }
}
Copied: pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/CFFCharset.java (from r1615712, pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/charset/CFFCharset.java)
URL: http://svn.apache.org/viewvc/pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/CFFCharset.java?p2=pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/CFFCharset.java&p1=pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/charset/CFFCharset.java&r1=1615712&r2=1618516&rev=1618516&view=diff
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/charset/CFFCharset.java (original)
+++ pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/CFFCharset.java Sun Aug 17 20:02:18 2014
@@ -14,136 +14,145 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.fontbox.cff.charset;
+package org.apache.fontbox.cff;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.HashMap;
+import java.util.Map;
/**
- * This is the superclass for all CFFFont charsets.
- *
- * @author Villu Ruusmann
- * @version $Revision$
+ * A CFF charset. A charset is an array of SIDs/CIDs for all glyphs in the font.
+ *
+ * todo: split this into two? CFFCharsetType1 and CFFCharsetCID ?
+ *
+ * @author John Hewson
*/
public abstract class CFFCharset
{
- private List<Entry> entries = new ArrayList<Entry>();
+ private final boolean isCIDFont;
+ private final Map<Integer, Integer> sidOrCidToGid = new HashMap<Integer, Integer>();
+ private final Map<Integer, Integer> gidToSid = new HashMap<Integer, Integer>();
+ private final Map<String, Integer> nameToSid = new HashMap<String, Integer>();
/**
- * Determines if the charset is font specific or not.
- * @return if the charset is font specific
+ * Package-private constructor for use by subclasses.
+ *
+ * @param isCIDFont true if the parent font is a CIDFont
*/
- public boolean isFontSpecific()
+ CFFCharset(boolean isCIDFont)
{
- return false;
+ this.isCIDFont = isCIDFont;
}
/**
- * Returns the SID corresponding to the given name.
- * @param name the given SID
- * @return the corresponding SID
+ * Adds a new GID/SID/name combination to the charset.
+ *
+ * @param gid GID
+ * @param sid SID
*/
- public int getSID(String name)
+ public void addSID(int gid, int sid, String name)
{
- for(Entry entry : this.entries)
+ if (isCIDFont)
{
- if((entry.entryName).equals(name))
- {
- return entry.entrySID;
- }
+ throw new IllegalStateException("Not a Type 1-equivalent font");
}
- return -1;
+ sidOrCidToGid.put(sid, gid);
+ gidToSid.put(gid, sid);
+ nameToSid.put(name, sid);
}
/**
- * Returns the name corresponding to the given SID.
- * @param sid the given SID
- * @return the corresponding name
+ * Adds a new GID/CID combination to the charset.
+ *
+ * @param gid GID
+ * @param cid CID
*/
- public String getName(int sid)
+ public void addCID(int gid, int cid)
{
- for(Entry entry : this.entries)
+ if (!isCIDFont)
{
- if(entry.entrySID == sid)
- {
- return entry.entryName;
- }
+ throw new IllegalStateException("Not a CIDFont");
}
- return null;
+ sidOrCidToGid.put(cid, gid);
}
/**
- * Adds a new SID/name combination to the charset.
- * @param sid the given SID
- * @param name the given name
- */
- public void register(int sid, String name)
- {
- entries.add(new Entry(sid,name));
- }
-
- /**
- * Add a single entry.
- * @param entry the entry to be added
+ * Returns the SID for a given GID. SIDs are internal to the font and are not public.
+ *
+ * @param sid SID
+ * @return GID
*/
- public void addEntry(Entry entry)
+ int getSIDForGID(int sid)
{
- entries.add(entry);
+ if (isCIDFont)
+ {
+ throw new IllegalStateException("Not a Type 1-equivalent font");
+ }
+ Integer gid = gidToSid.get(sid);
+ if (gid == null)
+ {
+ return 0;
+ }
+ return gid;
}
/**
- * A list of all entries within this charset.
- * @return a list of all entries
+ * Returns the GID for the given SID. SIDs are internal to the font and are not public.
+ *
+ * @param sid SID
+ * @return GID
*/
- public List<Entry> getEntries()
+ int getGIDForSID(int sid)
{
- return entries;
+ if (isCIDFont)
+ {
+ throw new IllegalStateException("Not a Type 1-equivalent font");
+ }
+ Integer gid = sidOrCidToGid.get(sid);
+ if (gid == null)
+ {
+ return 0;
+ }
+ return gid;
}
/**
- * This class represents a single SID/name mapping of the charset.
+ * Returns the GID for a given CID. Returns 0 if the CID is missing.
*
+ * @param cid CID
+ * @return GID
*/
- public static class Entry
+ public int getGIDForCID(int cid)
{
- private int entrySID;
- private String entryName;
-
- /**
- * Create a new instance of Entry with the given values.
- * @param sid the SID
- * @param name the Name
- */
- protected Entry(int sid, String name)
+ if (!isCIDFont)
{
- this.entrySID = sid;
- this.entryName = name;
+ throw new IllegalStateException("Not a CIDFont");
}
-
- /**
- * The SID of this entry.
- * @return the SID
- */
- public int getSID()
+ Integer gid = sidOrCidToGid.get(cid);
+ if (gid == null)
{
- return entrySID;
+ return 0;
}
+ return gid;
+ }
- /**
- * The Name of this entry.
- * @return the name
- */
- public String getName()
+ /**
+ * Returns the SID for a given PostScript name, you would think this is not needed,
+ * but some fonts have glyphs beyond their encoding with charset SID names.
+ *
+ * @param name PostScript glyph name
+ * @return SID
+ */
+ int getSID(String name)
+ {
+ if (isCIDFont)
{
- return entryName;
+ throw new IllegalStateException("Not a Type 1-equivalent font");
}
-
- /**
- * {@inheritDoc}
- */
- public String toString()
+ Integer sid = nameToSid.get(name);
+ if (sid == null)
{
- return "[sid=" + entrySID + ", name=" + entryName + "]";
+ return 0;
}
+ return sid;
}
-}
\ No newline at end of file
+}
Copied: pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/CFFEncoding.java (from r1615712, pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/encoding/CFFEncoding.java)
URL: http://svn.apache.org/viewvc/pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/CFFEncoding.java?p2=pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/CFFEncoding.java&p1=pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/encoding/CFFEncoding.java&r1=1615712&r2=1618516&rev=1618516&view=diff
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/encoding/CFFEncoding.java (original)
+++ pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/CFFEncoding.java Sun Aug 17 20:02:18 2014
@@ -14,63 +14,44 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.fontbox.cff.encoding;
+package org.apache.fontbox.cff;
-import java.util.ArrayList;
-import java.util.List;
+import org.apache.fontbox.encoding.Encoding;
+
+import java.util.HashMap;
+import java.util.Map;
/**
- * This is the superclass for all CFFFont encodings.
- *
- * @author Villu Ruusmann
- * @version $Revision$
+ * A CFF Type 1-equivalent Encoding. An encoding is an array of codes associated with some or all
+ * glyphs in a font
+ *
+ * @author John Hewson
*/
-public abstract class CFFEncoding
+public abstract class CFFEncoding extends Encoding
{
-
- private List<Entry> entries = new ArrayList<Entry>();
+ private final Map<Integer, String> codeToName = new HashMap<Integer, String>();
/**
- * Determines if the encoding is font specific or not.
- * @return if the encoding is font specific
+ * Package-private constructor for subclasses.
*/
- public boolean isFontSpecific()
+ CFFEncoding()
{
- return false;
- }
-
- /**
- * Returns the code corresponding to the given SID.
- * @param sid the given SID
- * @return the corresponding code
- */
- public int getCode(int sid)
- {
- for(Entry entry : entries)
- {
- if(entry.entrySID == sid)
- {
- return entry.entryCode;
- }
- }
- return -1;
}
/**
- * Returns the SID corresponding to the given code.
- * @param code the given code
- * @return the corresponding SID
+ * Returns the name of the glyph for the given character code.
+ *
+ * @param code character code
+ * @return PostScript glyph name
*/
- public int getSID(int code)
+ public String getName(int code)
{
- for(Entry entry : entries)
+ String name = codeToName.get(code);
+ if (name == null)
{
- if(entry.entryCode == code)
- {
- return entry.entrySID;
- }
+ return ".notdef";
}
- return -1;
+ return name;
}
/**
@@ -78,73 +59,19 @@ public abstract class CFFEncoding
* @param code the given code
* @param sid the given SID
*/
- public void register(int code, int sid)
+ public void add(int code, int sid, String name)
{
- entries.add(new Entry(code, sid));
+ codeToName.put(code, name);
+ addCharacterEncoding(code, name);
}
/**
- * Add a single entry.
- * @param entry the entry to be added
+ * For use by subclasses only.
*/
- public void addEntry(Entry entry)
+ protected void add(int code, int sid)
{
- entries.add(entry);
- }
-
- /**
- * A list of all entries within this encoding.
- * @return a list of all entries
- */
- public List<Entry> getEntries()
- {
- return entries;
- }
-
- /**
- * This class represents a single code/SID mapping of the encoding.
- *
- */
- public static class Entry
- {
- private int entryCode;
- private int entrySID;
-
- /**
- * Create a new instance of Entry with the given values.
- * @param code the code
- * @param sid the SID
- */
- protected Entry(int code, int sid)
- {
- this.entryCode = code;
- this.entrySID = sid;
- }
-
- /**
- * The code of the entry.
- * @return the code
- */
- public int getCode()
- {
- return this.entryCode;
- }
-
- /**
- * The SID of the entry.
- * @return the SID
- */
- public int getSID()
- {
- return this.entrySID;
- }
-
- /**
- * {@inheritDoc}
- */
- public String toString()
- {
- return "[code=" + entryCode + ", sid=" + entrySID + "]";
- }
+ String name = CFFStandardString.getName(sid);
+ codeToName.put(code, name);
+ addCharacterEncoding(code, name);
}
-}
\ No newline at end of file
+}
Copied: pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/CFFExpertCharset.java (from r1615712, pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/charset/CFFExpertCharset.java)
URL: http://svn.apache.org/viewvc/pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/CFFExpertCharset.java?p2=pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/CFFExpertCharset.java&p1=pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/charset/CFFExpertCharset.java&r1=1615712&r2=1618516&rev=1618516&view=diff
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/charset/CFFExpertCharset.java (original)
+++ pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/CFFExpertCharset.java Sun Aug 17 20:02:18 2014
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.fontbox.cff.charset;
+package org.apache.fontbox.cff;
/**
* This is specialized CFFCharset. It's used if the CharsetId of a font is set to 1.
@@ -27,6 +27,7 @@ public class CFFExpertCharset extends CF
private CFFExpertCharset()
{
+ super(false);
}
/**
@@ -42,170 +43,172 @@ public class CFFExpertCharset extends CF
static
{
- INSTANCE.register(1, "space");
- INSTANCE.register(13, "comma");
- INSTANCE.register(14, "hyphen");
- INSTANCE.register(15, "period");
- INSTANCE.register(27, "colon");
- INSTANCE.register(28, "semicolon");
- INSTANCE.register(99, "fraction");
- INSTANCE.register(109, "fi");
- INSTANCE.register(110, "fl");
- INSTANCE.register(150, "onesuperior");
- INSTANCE.register(155, "onehalf");
- INSTANCE.register(158, "onequarter");
- INSTANCE.register(163, "threequarters");
- INSTANCE.register(164, "twosuperior");
- INSTANCE.register(169, "threesuperior");
- INSTANCE.register(229, "exclamsmall");
- INSTANCE.register(230, "Hungarumlautsmall");
- INSTANCE.register(231, "dollaroldstyle");
- INSTANCE.register(232, "dollarsuperior");
- INSTANCE.register(233, "ampersandsmall");
- INSTANCE.register(234, "Acutesmall");
- INSTANCE.register(235, "parenleftsuperior");
- INSTANCE.register(236, "parenrightsuperior");
- INSTANCE.register(237, "twodotenleader");
- INSTANCE.register(238, "onedotenleader");
- INSTANCE.register(239, "zerooldstyle");
- INSTANCE.register(240, "oneoldstyle");
- INSTANCE.register(241, "twooldstyle");
- INSTANCE.register(242, "threeoldstyle");
- INSTANCE.register(243, "fouroldstyle");
- INSTANCE.register(244, "fiveoldstyle");
- INSTANCE.register(245, "sixoldstyle");
- INSTANCE.register(246, "sevenoldstyle");
- INSTANCE.register(247, "eightoldstyle");
- INSTANCE.register(248, "nineoldstyle");
- INSTANCE.register(249, "commasuperior");
- INSTANCE.register(250, "threequartersemdash");
- INSTANCE.register(251, "periodsuperior");
- INSTANCE.register(252, "questionsmall");
- INSTANCE.register(253, "asuperior");
- INSTANCE.register(254, "bsuperior");
- INSTANCE.register(255, "centsuperior");
- INSTANCE.register(256, "dsuperior");
- INSTANCE.register(257, "esuperior");
- INSTANCE.register(258, "isuperior");
- INSTANCE.register(259, "lsuperior");
- INSTANCE.register(260, "msuperior");
- INSTANCE.register(261, "nsuperior");
- INSTANCE.register(262, "osuperior");
- INSTANCE.register(263, "rsuperior");
- INSTANCE.register(264, "ssuperior");
- INSTANCE.register(265, "tsuperior");
- INSTANCE.register(266, "ff");
- INSTANCE.register(267, "ffi");
- INSTANCE.register(268, "ffl");
- INSTANCE.register(269, "parenleftinferior");
- INSTANCE.register(270, "parenrightinferior");
- INSTANCE.register(271, "Circumflexsmall");
- INSTANCE.register(272, "hyphensuperior");
- INSTANCE.register(273, "Gravesmall");
- INSTANCE.register(274, "Asmall");
- INSTANCE.register(275, "Bsmall");
- INSTANCE.register(276, "Csmall");
- INSTANCE.register(277, "Dsmall");
- INSTANCE.register(278, "Esmall");
- INSTANCE.register(279, "Fsmall");
- INSTANCE.register(280, "Gsmall");
- INSTANCE.register(281, "Hsmall");
- INSTANCE.register(282, "Ismall");
- INSTANCE.register(283, "Jsmall");
- INSTANCE.register(284, "Ksmall");
- INSTANCE.register(285, "Lsmall");
- INSTANCE.register(286, "Msmall");
- INSTANCE.register(287, "Nsmall");
- INSTANCE.register(288, "Osmall");
- INSTANCE.register(289, "Psmall");
- INSTANCE.register(290, "Qsmall");
- INSTANCE.register(291, "Rsmall");
- INSTANCE.register(292, "Ssmall");
- INSTANCE.register(293, "Tsmall");
- INSTANCE.register(294, "Usmall");
- INSTANCE.register(295, "Vsmall");
- INSTANCE.register(296, "Wsmall");
- INSTANCE.register(297, "Xsmall");
- INSTANCE.register(298, "Ysmall");
- INSTANCE.register(299, "Zsmall");
- INSTANCE.register(300, "colonmonetary");
- INSTANCE.register(301, "onefitted");
- INSTANCE.register(302, "rupiah");
- INSTANCE.register(303, "Tildesmall");
- INSTANCE.register(304, "exclamdownsmall");
- INSTANCE.register(305, "centoldstyle");
- INSTANCE.register(306, "Lslashsmall");
- INSTANCE.register(307, "Scaronsmall");
- INSTANCE.register(308, "Zcaronsmall");
- INSTANCE.register(309, "Dieresissmall");
- INSTANCE.register(310, "Brevesmall");
- INSTANCE.register(311, "Caronsmall");
- INSTANCE.register(312, "Dotaccentsmall");
- INSTANCE.register(313, "Macronsmall");
- INSTANCE.register(314, "figuredash");
- INSTANCE.register(315, "hypheninferior");
- INSTANCE.register(316, "Ogoneksmall");
- INSTANCE.register(317, "Ringsmall");
- INSTANCE.register(318, "Cedillasmall");
- INSTANCE.register(319, "questiondownsmall");
- INSTANCE.register(320, "oneeighth");
- INSTANCE.register(321, "threeeighths");
- INSTANCE.register(322, "fiveeighths");
- INSTANCE.register(323, "seveneighths");
- INSTANCE.register(324, "onethird");
- INSTANCE.register(325, "twothirds");
- INSTANCE.register(326, "zerosuperior");
- INSTANCE.register(327, "foursuperior");
- INSTANCE.register(328, "fivesuperior");
- INSTANCE.register(329, "sixsuperior");
- INSTANCE.register(330, "sevensuperior");
- INSTANCE.register(331, "eightsuperior");
- INSTANCE.register(332, "ninesuperior");
- INSTANCE.register(333, "zeroinferior");
- INSTANCE.register(334, "oneinferior");
- INSTANCE.register(335, "twoinferior");
- INSTANCE.register(336, "threeinferior");
- INSTANCE.register(337, "fourinferior");
- INSTANCE.register(338, "fiveinferior");
- INSTANCE.register(339, "sixinferior");
- INSTANCE.register(340, "seveninferior");
- INSTANCE.register(341, "eightinferior");
- INSTANCE.register(342, "nineinferior");
- INSTANCE.register(343, "centinferior");
- INSTANCE.register(344, "dollarinferior");
- INSTANCE.register(345, "periodinferior");
- INSTANCE.register(346, "commainferior");
- INSTANCE.register(347, "Agravesmall");
- INSTANCE.register(348, "Aacutesmall");
- INSTANCE.register(349, "Acircumflexsmall");
- INSTANCE.register(350, "Atildesmall");
- INSTANCE.register(351, "Adieresissmall");
- INSTANCE.register(352, "Aringsmall");
- INSTANCE.register(353, "AEsmall");
- INSTANCE.register(354, "Ccedillasmall");
- INSTANCE.register(355, "Egravesmall");
- INSTANCE.register(356, "Eacutesmall");
- INSTANCE.register(357, "Ecircumflexsmall");
- INSTANCE.register(358, "Edieresissmall");
- INSTANCE.register(359, "Igravesmall");
- INSTANCE.register(360, "Iacutesmall");
- INSTANCE.register(361, "Icircumflexsmall");
- INSTANCE.register(362, "Idieresissmall");
- INSTANCE.register(363, "Ethsmall");
- INSTANCE.register(364, "Ntildesmall");
- INSTANCE.register(365, "Ogravesmall");
- INSTANCE.register(366, "Oacutesmall");
- INSTANCE.register(367, "Ocircumflexsmall");
- INSTANCE.register(368, "Otildesmall");
- INSTANCE.register(369, "Odieresissmall");
- INSTANCE.register(370, "OEsmall");
- INSTANCE.register(371, "Oslashsmall");
- INSTANCE.register(372, "Ugravesmall");
- INSTANCE.register(373, "Uacutesmall");
- INSTANCE.register(374, "Ucircumflexsmall");
- INSTANCE.register(375, "Udieresissmall");
- INSTANCE.register(376, "Yacutesmall");
- INSTANCE.register(377, "Thornsmall");
- INSTANCE.register(378, "Ydieresissmall");
+ int gid = 0;
+ INSTANCE.addSID(gid++, 0, ".notdef");
+ INSTANCE.addSID(gid++, 1, "space");
+ INSTANCE.addSID(gid++, 229, "exclamsmall");
+ INSTANCE.addSID(gid++, 230, "Hungarumlautsmall");
+ INSTANCE.addSID(gid++, 231, "dollaroldstyle");
+ INSTANCE.addSID(gid++, 232, "dollarsuperior");
+ INSTANCE.addSID(gid++, 233, "ampersandsmall");
+ INSTANCE.addSID(gid++, 234, "Acutesmall");
+ INSTANCE.addSID(gid++, 235, "parenleftsuperior");
+ INSTANCE.addSID(gid++, 236, "parenrightsuperior");
+ INSTANCE.addSID(gid++, 237, "twodotenleader");
+ INSTANCE.addSID(gid++, 238, "onedotenleader");
+ INSTANCE.addSID(gid++, 13, "comma");
+ INSTANCE.addSID(gid++, 14, "hyphen");
+ INSTANCE.addSID(gid++, 15, "period");
+ INSTANCE.addSID(gid++, 99, "fraction");
+ INSTANCE.addSID(gid++, 239, "zerooldstyle");
+ INSTANCE.addSID(gid++, 240, "oneoldstyle");
+ INSTANCE.addSID(gid++, 241, "twooldstyle");
+ INSTANCE.addSID(gid++, 242, "threeoldstyle");
+ INSTANCE.addSID(gid++, 243, "fouroldstyle");
+ INSTANCE.addSID(gid++, 244, "fiveoldstyle");
+ INSTANCE.addSID(gid++, 245, "sixoldstyle");
+ INSTANCE.addSID(gid++, 246, "sevenoldstyle");
+ INSTANCE.addSID(gid++, 247, "eightoldstyle");
+ INSTANCE.addSID(gid++, 248, "nineoldstyle");
+ INSTANCE.addSID(gid++, 27, "colon");
+ INSTANCE.addSID(gid++, 28, "semicolon");
+ INSTANCE.addSID(gid++, 249, "commasuperior");
+ INSTANCE.addSID(gid++, 250, "threequartersemdash");
+ INSTANCE.addSID(gid++, 251, "periodsuperior");
+ INSTANCE.addSID(gid++, 252, "questionsmall");
+ INSTANCE.addSID(gid++, 253, "asuperior");
+ INSTANCE.addSID(gid++, 254, "bsuperior");
+ INSTANCE.addSID(gid++, 255, "centsuperior");
+ INSTANCE.addSID(gid++, 256, "dsuperior");
+ INSTANCE.addSID(gid++, 257, "esuperior");
+ INSTANCE.addSID(gid++, 258, "isuperior");
+ INSTANCE.addSID(gid++, 259, "lsuperior");
+ INSTANCE.addSID(gid++, 260, "msuperior");
+ INSTANCE.addSID(gid++, 261, "nsuperior");
+ INSTANCE.addSID(gid++, 262, "osuperior");
+ INSTANCE.addSID(gid++, 263, "rsuperior");
+ INSTANCE.addSID(gid++, 264, "ssuperior");
+ INSTANCE.addSID(gid++, 265, "tsuperior");
+ INSTANCE.addSID(gid++, 266, "ff");
+ INSTANCE.addSID(gid++, 109, "fi");
+ INSTANCE.addSID(gid++, 110, "fl");
+ INSTANCE.addSID(gid++, 267, "ffi");
+ INSTANCE.addSID(gid++, 268, "ffl");
+ INSTANCE.addSID(gid++, 269, "parenleftinferior");
+ INSTANCE.addSID(gid++, 270, "parenrightinferior");
+ INSTANCE.addSID(gid++, 271, "Circumflexsmall");
+ INSTANCE.addSID(gid++, 272, "hyphensuperior");
+ INSTANCE.addSID(gid++, 273, "Gravesmall");
+ INSTANCE.addSID(gid++, 274, "Asmall");
+ INSTANCE.addSID(gid++, 275, "Bsmall");
+ INSTANCE.addSID(gid++, 276, "Csmall");
+ INSTANCE.addSID(gid++, 277, "Dsmall");
+ INSTANCE.addSID(gid++, 278, "Esmall");
+ INSTANCE.addSID(gid++, 279, "Fsmall");
+ INSTANCE.addSID(gid++, 280, "Gsmall");
+ INSTANCE.addSID(gid++, 281, "Hsmall");
+ INSTANCE.addSID(gid++, 282, "Ismall");
+ INSTANCE.addSID(gid++, 283, "Jsmall");
+ INSTANCE.addSID(gid++, 284, "Ksmall");
+ INSTANCE.addSID(gid++, 285, "Lsmall");
+ INSTANCE.addSID(gid++, 286, "Msmall");
+ INSTANCE.addSID(gid++, 287, "Nsmall");
+ INSTANCE.addSID(gid++, 288, "Osmall");
+ INSTANCE.addSID(gid++, 289, "Psmall");
+ INSTANCE.addSID(gid++, 290, "Qsmall");
+ INSTANCE.addSID(gid++, 291, "Rsmall");
+ INSTANCE.addSID(gid++, 292, "Ssmall");
+ INSTANCE.addSID(gid++, 293, "Tsmall");
+ INSTANCE.addSID(gid++, 294, "Usmall");
+ INSTANCE.addSID(gid++, 295, "Vsmall");
+ INSTANCE.addSID(gid++, 296, "Wsmall");
+ INSTANCE.addSID(gid++, 297, "Xsmall");
+ INSTANCE.addSID(gid++, 298, "Ysmall");
+ INSTANCE.addSID(gid++, 299, "Zsmall");
+ INSTANCE.addSID(gid++, 300, "colonmonetary");
+ INSTANCE.addSID(gid++, 301, "onefitted");
+ INSTANCE.addSID(gid++, 302, "rupiah");
+ INSTANCE.addSID(gid++, 303, "Tildesmall");
+ INSTANCE.addSID(gid++, 304, "exclamdownsmall");
+ INSTANCE.addSID(gid++, 305, "centoldstyle");
+ INSTANCE.addSID(gid++, 306, "Lslashsmall");
+ INSTANCE.addSID(gid++, 307, "Scaronsmall");
+ INSTANCE.addSID(gid++, 308, "Zcaronsmall");
+ INSTANCE.addSID(gid++, 309, "Dieresissmall");
+ INSTANCE.addSID(gid++, 310, "Brevesmall");
+ INSTANCE.addSID(gid++, 311, "Caronsmall");
+ INSTANCE.addSID(gid++, 312, "Dotaccentsmall");
+ INSTANCE.addSID(gid++, 313, "Macronsmall");
+ INSTANCE.addSID(gid++, 314, "figuredash");
+ INSTANCE.addSID(gid++, 315, "hypheninferior");
+ INSTANCE.addSID(gid++, 316, "Ogoneksmall");
+ INSTANCE.addSID(gid++, 317, "Ringsmall");
+ INSTANCE.addSID(gid++, 318, "Cedillasmall");
+ INSTANCE.addSID(gid++, 158, "onequarter");
+ INSTANCE.addSID(gid++, 155, "onehalf");
+ INSTANCE.addSID(gid++, 163, "threequarters");
+ INSTANCE.addSID(gid++, 319, "questiondownsmall");
+ INSTANCE.addSID(gid++, 320, "oneeighth");
+ INSTANCE.addSID(gid++, 321, "threeeighths");
+ INSTANCE.addSID(gid++, 322, "fiveeighths");
+ INSTANCE.addSID(gid++, 323, "seveneighths");
+ INSTANCE.addSID(gid++, 324, "onethird");
+ INSTANCE.addSID(gid++, 325, "twothirds");
+ INSTANCE.addSID(gid++, 326, "zerosuperior");
+ INSTANCE.addSID(gid++, 150, "onesuperior");
+ INSTANCE.addSID(gid++, 164, "twosuperior");
+ INSTANCE.addSID(gid++, 169, "threesuperior");
+ INSTANCE.addSID(gid++, 327, "foursuperior");
+ INSTANCE.addSID(gid++, 328, "fivesuperior");
+ INSTANCE.addSID(gid++, 329, "sixsuperior");
+ INSTANCE.addSID(gid++, 330, "sevensuperior");
+ INSTANCE.addSID(gid++, 331, "eightsuperior");
+ INSTANCE.addSID(gid++, 332, "ninesuperior");
+ INSTANCE.addSID(gid++, 333, "zeroinferior");
+ INSTANCE.addSID(gid++, 334, "oneinferior");
+ INSTANCE.addSID(gid++, 335, "twoinferior");
+ INSTANCE.addSID(gid++, 336, "threeinferior");
+ INSTANCE.addSID(gid++, 337, "fourinferior");
+ INSTANCE.addSID(gid++, 338, "fiveinferior");
+ INSTANCE.addSID(gid++, 339, "sixinferior");
+ INSTANCE.addSID(gid++, 340, "seveninferior");
+ INSTANCE.addSID(gid++, 341, "eightinferior");
+ INSTANCE.addSID(gid++, 342, "nineinferior");
+ INSTANCE.addSID(gid++, 343, "centinferior");
+ INSTANCE.addSID(gid++, 344, "dollarinferior");
+ INSTANCE.addSID(gid++, 345, "periodinferior");
+ INSTANCE.addSID(gid++, 346, "commainferior");
+ INSTANCE.addSID(gid++, 347, "Agravesmall");
+ INSTANCE.addSID(gid++, 348, "Aacutesmall");
+ INSTANCE.addSID(gid++, 349, "Acircumflexsmall");
+ INSTANCE.addSID(gid++, 350, "Atildesmall");
+ INSTANCE.addSID(gid++, 351, "Adieresissmall");
+ INSTANCE.addSID(gid++, 352, "Aringsmall");
+ INSTANCE.addSID(gid++, 353, "AEsmall");
+ INSTANCE.addSID(gid++, 354, "Ccedillasmall");
+ INSTANCE.addSID(gid++, 355, "Egravesmall");
+ INSTANCE.addSID(gid++, 356, "Eacutesmall");
+ INSTANCE.addSID(gid++, 357, "Ecircumflexsmall");
+ INSTANCE.addSID(gid++, 358, "Edieresissmall");
+ INSTANCE.addSID(gid++, 359, "Igravesmall");
+ INSTANCE.addSID(gid++, 360, "Iacutesmall");
+ INSTANCE.addSID(gid++, 361, "Icircumflexsmall");
+ INSTANCE.addSID(gid++, 362, "Idieresissmall");
+ INSTANCE.addSID(gid++, 363, "Ethsmall");
+ INSTANCE.addSID(gid++, 364, "Ntildesmall");
+ INSTANCE.addSID(gid++, 365, "Ogravesmall");
+ INSTANCE.addSID(gid++, 366, "Oacutesmall");
+ INSTANCE.addSID(gid++, 367, "Ocircumflexsmall");
+ INSTANCE.addSID(gid++, 368, "Otildesmall");
+ INSTANCE.addSID(gid++, 369, "Odieresissmall");
+ INSTANCE.addSID(gid++, 370, "OEsmall");
+ INSTANCE.addSID(gid++, 371, "Oslashsmall");
+ INSTANCE.addSID(gid++, 372, "Ugravesmall");
+ INSTANCE.addSID(gid++, 373, "Uacutesmall");
+ INSTANCE.addSID(gid++, 374, "Ucircumflexsmall");
+ INSTANCE.addSID(gid++, 375, "Udieresissmall");
+ INSTANCE.addSID(gid++, 376, "Yacutesmall");
+ INSTANCE.addSID(gid++, 377, "Thornsmall");
+ INSTANCE.addSID(gid++, 378, "Ydieresissmall");
}
}
\ No newline at end of file
Copied: pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/CFFExpertEncoding.java (from r1615712, pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/encoding/CFFExpertEncoding.java)
URL: http://svn.apache.org/viewvc/pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/CFFExpertEncoding.java?p2=pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/CFFExpertEncoding.java&p1=pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/encoding/CFFExpertEncoding.java&r1=1615712&r2=1618516&rev=1618516&view=diff
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/encoding/CFFExpertEncoding.java (original)
+++ pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/CFFExpertEncoding.java Sun Aug 17 20:02:18 2014
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.fontbox.cff.encoding;
+package org.apache.fontbox.cff;
/**
* This is specialized CFFEncoding. It's used if the EncodingId of a font is set to 1.
@@ -42,261 +42,261 @@ public class CFFExpertEncoding extends C
static
{
- INSTANCE.register(0, 0);
- INSTANCE.register(1, 0);
- INSTANCE.register(2, 0);
- INSTANCE.register(3, 0);
- INSTANCE.register(4, 0);
- INSTANCE.register(5, 0);
- INSTANCE.register(6, 0);
- INSTANCE.register(7, 0);
- INSTANCE.register(8, 0);
- INSTANCE.register(9, 0);
- INSTANCE.register(10, 0);
- INSTANCE.register(11, 0);
- INSTANCE.register(12, 0);
- INSTANCE.register(13, 0);
- INSTANCE.register(14, 0);
- INSTANCE.register(15, 0);
- INSTANCE.register(16, 0);
- INSTANCE.register(17, 0);
- INSTANCE.register(18, 0);
- INSTANCE.register(19, 0);
- INSTANCE.register(20, 0);
- INSTANCE.register(21, 0);
- INSTANCE.register(22, 0);
- INSTANCE.register(23, 0);
- INSTANCE.register(24, 0);
- INSTANCE.register(25, 0);
- INSTANCE.register(26, 0);
- INSTANCE.register(27, 0);
- INSTANCE.register(28, 0);
- INSTANCE.register(29, 0);
- INSTANCE.register(30, 0);
- INSTANCE.register(31, 0);
- INSTANCE.register(32, 1);
- INSTANCE.register(33, 229);
- INSTANCE.register(34, 230);
- INSTANCE.register(35, 0);
- INSTANCE.register(36, 231);
- INSTANCE.register(37, 232);
- INSTANCE.register(38, 233);
- INSTANCE.register(39, 234);
- INSTANCE.register(40, 235);
- INSTANCE.register(41, 236);
- INSTANCE.register(42, 237);
- INSTANCE.register(43, 238);
- INSTANCE.register(44, 13);
- INSTANCE.register(45, 14);
- INSTANCE.register(46, 15);
- INSTANCE.register(47, 99);
- INSTANCE.register(48, 239);
- INSTANCE.register(49, 240);
- INSTANCE.register(50, 241);
- INSTANCE.register(51, 242);
- INSTANCE.register(52, 243);
- INSTANCE.register(53, 244);
- INSTANCE.register(54, 245);
- INSTANCE.register(55, 246);
- INSTANCE.register(56, 247);
- INSTANCE.register(57, 248);
- INSTANCE.register(58, 27);
- INSTANCE.register(59, 28);
- INSTANCE.register(60, 249);
- INSTANCE.register(61, 250);
- INSTANCE.register(62, 251);
- INSTANCE.register(63, 252);
- INSTANCE.register(64, 0);
- INSTANCE.register(65, 253);
- INSTANCE.register(66, 254);
- INSTANCE.register(67, 255);
- INSTANCE.register(68, 256);
- INSTANCE.register(69, 257);
- INSTANCE.register(70, 0);
- INSTANCE.register(71, 0);
- INSTANCE.register(72, 0);
- INSTANCE.register(73, 258);
- INSTANCE.register(74, 0);
- INSTANCE.register(75, 0);
- INSTANCE.register(76, 259);
- INSTANCE.register(77, 260);
- INSTANCE.register(78, 261);
- INSTANCE.register(79, 262);
- INSTANCE.register(80, 0);
- INSTANCE.register(81, 0);
- INSTANCE.register(82, 263);
- INSTANCE.register(83, 264);
- INSTANCE.register(84, 265);
- INSTANCE.register(85, 0);
- INSTANCE.register(86, 266);
- INSTANCE.register(87, 109);
- INSTANCE.register(88, 110);
- INSTANCE.register(89, 267);
- INSTANCE.register(90, 268);
- INSTANCE.register(91, 269);
- INSTANCE.register(92, 0);
- INSTANCE.register(93, 270);
- INSTANCE.register(94, 271);
- INSTANCE.register(95, 272);
- INSTANCE.register(96, 273);
- INSTANCE.register(97, 274);
- INSTANCE.register(98, 275);
- INSTANCE.register(99, 276);
- INSTANCE.register(100, 277);
- INSTANCE.register(101, 278);
- INSTANCE.register(102, 279);
- INSTANCE.register(103, 280);
- INSTANCE.register(104, 281);
- INSTANCE.register(105, 282);
- INSTANCE.register(106, 283);
- INSTANCE.register(107, 284);
- INSTANCE.register(108, 285);
- INSTANCE.register(109, 286);
- INSTANCE.register(110, 287);
- INSTANCE.register(111, 288);
- INSTANCE.register(112, 289);
- INSTANCE.register(113, 290);
- INSTANCE.register(114, 291);
- INSTANCE.register(115, 292);
- INSTANCE.register(116, 293);
- INSTANCE.register(117, 294);
- INSTANCE.register(118, 295);
- INSTANCE.register(119, 296);
- INSTANCE.register(120, 297);
- INSTANCE.register(121, 298);
- INSTANCE.register(122, 299);
- INSTANCE.register(123, 300);
- INSTANCE.register(124, 301);
- INSTANCE.register(125, 302);
- INSTANCE.register(126, 303);
- INSTANCE.register(127, 0);
- INSTANCE.register(128, 0);
- INSTANCE.register(129, 0);
- INSTANCE.register(130, 0);
- INSTANCE.register(131, 0);
- INSTANCE.register(132, 0);
- INSTANCE.register(133, 0);
- INSTANCE.register(134, 0);
- INSTANCE.register(135, 0);
- INSTANCE.register(136, 0);
- INSTANCE.register(137, 0);
- INSTANCE.register(138, 0);
- INSTANCE.register(139, 0);
- INSTANCE.register(140, 0);
- INSTANCE.register(141, 0);
- INSTANCE.register(142, 0);
- INSTANCE.register(143, 0);
- INSTANCE.register(144, 0);
- INSTANCE.register(145, 0);
- INSTANCE.register(146, 0);
- INSTANCE.register(147, 0);
- INSTANCE.register(148, 0);
- INSTANCE.register(149, 0);
- INSTANCE.register(150, 0);
- INSTANCE.register(151, 0);
- INSTANCE.register(152, 0);
- INSTANCE.register(153, 0);
- INSTANCE.register(154, 0);
- INSTANCE.register(155, 0);
- INSTANCE.register(156, 0);
- INSTANCE.register(157, 0);
- INSTANCE.register(158, 0);
- INSTANCE.register(159, 0);
- INSTANCE.register(160, 0);
- INSTANCE.register(161, 304);
- INSTANCE.register(162, 305);
- INSTANCE.register(163, 306);
- INSTANCE.register(164, 0);
- INSTANCE.register(165, 0);
- INSTANCE.register(166, 307);
- INSTANCE.register(167, 308);
- INSTANCE.register(168, 309);
- INSTANCE.register(169, 310);
- INSTANCE.register(170, 311);
- INSTANCE.register(171, 0);
- INSTANCE.register(172, 312);
- INSTANCE.register(173, 0);
- INSTANCE.register(174, 0);
- INSTANCE.register(175, 313);
- INSTANCE.register(176, 0);
- INSTANCE.register(177, 0);
- INSTANCE.register(178, 314);
- INSTANCE.register(179, 315);
- INSTANCE.register(180, 0);
- INSTANCE.register(181, 0);
- INSTANCE.register(182, 316);
- INSTANCE.register(183, 317);
- INSTANCE.register(184, 318);
- INSTANCE.register(185, 0);
- INSTANCE.register(186, 0);
- INSTANCE.register(187, 0);
- INSTANCE.register(188, 158);
- INSTANCE.register(189, 155);
- INSTANCE.register(190, 163);
- INSTANCE.register(191, 319);
- INSTANCE.register(192, 320);
- INSTANCE.register(193, 321);
- INSTANCE.register(194, 322);
- INSTANCE.register(195, 323);
- INSTANCE.register(196, 324);
- INSTANCE.register(197, 325);
- INSTANCE.register(198, 0);
- INSTANCE.register(199, 0);
- INSTANCE.register(200, 326);
- INSTANCE.register(201, 150);
- INSTANCE.register(202, 164);
- INSTANCE.register(203, 169);
- INSTANCE.register(204, 327);
- INSTANCE.register(205, 328);
- INSTANCE.register(206, 329);
- INSTANCE.register(207, 330);
- INSTANCE.register(208, 331);
- INSTANCE.register(209, 332);
- INSTANCE.register(210, 333);
- INSTANCE.register(211, 334);
- INSTANCE.register(212, 335);
- INSTANCE.register(213, 336);
- INSTANCE.register(214, 337);
- INSTANCE.register(215, 338);
- INSTANCE.register(216, 339);
- INSTANCE.register(217, 340);
- INSTANCE.register(218, 341);
- INSTANCE.register(219, 342);
- INSTANCE.register(220, 343);
- INSTANCE.register(221, 344);
- INSTANCE.register(222, 345);
- INSTANCE.register(223, 346);
- INSTANCE.register(224, 347);
- INSTANCE.register(225, 348);
- INSTANCE.register(226, 349);
- INSTANCE.register(227, 350);
- INSTANCE.register(228, 351);
- INSTANCE.register(229, 352);
- INSTANCE.register(230, 353);
- INSTANCE.register(231, 354);
- INSTANCE.register(232, 355);
- INSTANCE.register(233, 356);
- INSTANCE.register(234, 357);
- INSTANCE.register(235, 358);
- INSTANCE.register(236, 359);
- INSTANCE.register(237, 360);
- INSTANCE.register(238, 361);
- INSTANCE.register(239, 362);
- INSTANCE.register(240, 363);
- INSTANCE.register(241, 364);
- INSTANCE.register(242, 365);
- INSTANCE.register(243, 366);
- INSTANCE.register(244, 367);
- INSTANCE.register(245, 368);
- INSTANCE.register(246, 369);
- INSTANCE.register(247, 370);
- INSTANCE.register(248, 371);
- INSTANCE.register(249, 372);
- INSTANCE.register(250, 373);
- INSTANCE.register(251, 374);
- INSTANCE.register(252, 375);
- INSTANCE.register(253, 376);
- INSTANCE.register(254, 377);
- INSTANCE.register(255, 378);
+ INSTANCE.add(0, 0);
+ INSTANCE.add(1, 0);
+ INSTANCE.add(2, 0);
+ INSTANCE.add(3, 0);
+ INSTANCE.add(4, 0);
+ INSTANCE.add(5, 0);
+ INSTANCE.add(6, 0);
+ INSTANCE.add(7, 0);
+ INSTANCE.add(8, 0);
+ INSTANCE.add(9, 0);
+ INSTANCE.add(10, 0);
+ INSTANCE.add(11, 0);
+ INSTANCE.add(12, 0);
+ INSTANCE.add(13, 0);
+ INSTANCE.add(14, 0);
+ INSTANCE.add(15, 0);
+ INSTANCE.add(16, 0);
+ INSTANCE.add(17, 0);
+ INSTANCE.add(18, 0);
+ INSTANCE.add(19, 0);
+ INSTANCE.add(20, 0);
+ INSTANCE.add(21, 0);
+ INSTANCE.add(22, 0);
+ INSTANCE.add(23, 0);
+ INSTANCE.add(24, 0);
+ INSTANCE.add(25, 0);
+ INSTANCE.add(26, 0);
+ INSTANCE.add(27, 0);
+ INSTANCE.add(28, 0);
+ INSTANCE.add(29, 0);
+ INSTANCE.add(30, 0);
+ INSTANCE.add(31, 0);
+ INSTANCE.add(32, 1);
+ INSTANCE.add(33, 229);
+ INSTANCE.add(34, 230);
+ INSTANCE.add(35, 0);
+ INSTANCE.add(36, 231);
+ INSTANCE.add(37, 232);
+ INSTANCE.add(38, 233);
+ INSTANCE.add(39, 234);
+ INSTANCE.add(40, 235);
+ INSTANCE.add(41, 236);
+ INSTANCE.add(42, 237);
+ INSTANCE.add(43, 238);
+ INSTANCE.add(44, 13);
+ INSTANCE.add(45, 14);
+ INSTANCE.add(46, 15);
+ INSTANCE.add(47, 99);
+ INSTANCE.add(48, 239);
+ INSTANCE.add(49, 240);
+ INSTANCE.add(50, 241);
+ INSTANCE.add(51, 242);
+ INSTANCE.add(52, 243);
+ INSTANCE.add(53, 244);
+ INSTANCE.add(54, 245);
+ INSTANCE.add(55, 246);
+ INSTANCE.add(56, 247);
+ INSTANCE.add(57, 248);
+ INSTANCE.add(58, 27);
+ INSTANCE.add(59, 28);
+ INSTANCE.add(60, 249);
+ INSTANCE.add(61, 250);
+ INSTANCE.add(62, 251);
+ INSTANCE.add(63, 252);
+ INSTANCE.add(64, 0);
+ INSTANCE.add(65, 253);
+ INSTANCE.add(66, 254);
+ INSTANCE.add(67, 255);
+ INSTANCE.add(68, 256);
+ INSTANCE.add(69, 257);
+ INSTANCE.add(70, 0);
+ INSTANCE.add(71, 0);
+ INSTANCE.add(72, 0);
+ INSTANCE.add(73, 258);
+ INSTANCE.add(74, 0);
+ INSTANCE.add(75, 0);
+ INSTANCE.add(76, 259);
+ INSTANCE.add(77, 260);
+ INSTANCE.add(78, 261);
+ INSTANCE.add(79, 262);
+ INSTANCE.add(80, 0);
+ INSTANCE.add(81, 0);
+ INSTANCE.add(82, 263);
+ INSTANCE.add(83, 264);
+ INSTANCE.add(84, 265);
+ INSTANCE.add(85, 0);
+ INSTANCE.add(86, 266);
+ INSTANCE.add(87, 109);
+ INSTANCE.add(88, 110);
+ INSTANCE.add(89, 267);
+ INSTANCE.add(90, 268);
+ INSTANCE.add(91, 269);
+ INSTANCE.add(92, 0);
+ INSTANCE.add(93, 270);
+ INSTANCE.add(94, 271);
+ INSTANCE.add(95, 272);
+ INSTANCE.add(96, 273);
+ INSTANCE.add(97, 274);
+ INSTANCE.add(98, 275);
+ INSTANCE.add(99, 276);
+ INSTANCE.add(100, 277);
+ INSTANCE.add(101, 278);
+ INSTANCE.add(102, 279);
+ INSTANCE.add(103, 280);
+ INSTANCE.add(104, 281);
+ INSTANCE.add(105, 282);
+ INSTANCE.add(106, 283);
+ INSTANCE.add(107, 284);
+ INSTANCE.add(108, 285);
+ INSTANCE.add(109, 286);
+ INSTANCE.add(110, 287);
+ INSTANCE.add(111, 288);
+ INSTANCE.add(112, 289);
+ INSTANCE.add(113, 290);
+ INSTANCE.add(114, 291);
+ INSTANCE.add(115, 292);
+ INSTANCE.add(116, 293);
+ INSTANCE.add(117, 294);
+ INSTANCE.add(118, 295);
+ INSTANCE.add(119, 296);
+ INSTANCE.add(120, 297);
+ INSTANCE.add(121, 298);
+ INSTANCE.add(122, 299);
+ INSTANCE.add(123, 300);
+ INSTANCE.add(124, 301);
+ INSTANCE.add(125, 302);
+ INSTANCE.add(126, 303);
+ INSTANCE.add(127, 0);
+ INSTANCE.add(128, 0);
+ INSTANCE.add(129, 0);
+ INSTANCE.add(130, 0);
+ INSTANCE.add(131, 0);
+ INSTANCE.add(132, 0);
+ INSTANCE.add(133, 0);
+ INSTANCE.add(134, 0);
+ INSTANCE.add(135, 0);
+ INSTANCE.add(136, 0);
+ INSTANCE.add(137, 0);
+ INSTANCE.add(138, 0);
+ INSTANCE.add(139, 0);
+ INSTANCE.add(140, 0);
+ INSTANCE.add(141, 0);
+ INSTANCE.add(142, 0);
+ INSTANCE.add(143, 0);
+ INSTANCE.add(144, 0);
+ INSTANCE.add(145, 0);
+ INSTANCE.add(146, 0);
+ INSTANCE.add(147, 0);
+ INSTANCE.add(148, 0);
+ INSTANCE.add(149, 0);
+ INSTANCE.add(150, 0);
+ INSTANCE.add(151, 0);
+ INSTANCE.add(152, 0);
+ INSTANCE.add(153, 0);
+ INSTANCE.add(154, 0);
+ INSTANCE.add(155, 0);
+ INSTANCE.add(156, 0);
+ INSTANCE.add(157, 0);
+ INSTANCE.add(158, 0);
+ INSTANCE.add(159, 0);
+ INSTANCE.add(160, 0);
+ INSTANCE.add(161, 304);
+ INSTANCE.add(162, 305);
+ INSTANCE.add(163, 306);
+ INSTANCE.add(164, 0);
+ INSTANCE.add(165, 0);
+ INSTANCE.add(166, 307);
+ INSTANCE.add(167, 308);
+ INSTANCE.add(168, 309);
+ INSTANCE.add(169, 310);
+ INSTANCE.add(170, 311);
+ INSTANCE.add(171, 0);
+ INSTANCE.add(172, 312);
+ INSTANCE.add(173, 0);
+ INSTANCE.add(174, 0);
+ INSTANCE.add(175, 313);
+ INSTANCE.add(176, 0);
+ INSTANCE.add(177, 0);
+ INSTANCE.add(178, 314);
+ INSTANCE.add(179, 315);
+ INSTANCE.add(180, 0);
+ INSTANCE.add(181, 0);
+ INSTANCE.add(182, 316);
+ INSTANCE.add(183, 317);
+ INSTANCE.add(184, 318);
+ INSTANCE.add(185, 0);
+ INSTANCE.add(186, 0);
+ INSTANCE.add(187, 0);
+ INSTANCE.add(188, 158);
+ INSTANCE.add(189, 155);
+ INSTANCE.add(190, 163);
+ INSTANCE.add(191, 319);
+ INSTANCE.add(192, 320);
+ INSTANCE.add(193, 321);
+ INSTANCE.add(194, 322);
+ INSTANCE.add(195, 323);
+ INSTANCE.add(196, 324);
+ INSTANCE.add(197, 325);
+ INSTANCE.add(198, 0);
+ INSTANCE.add(199, 0);
+ INSTANCE.add(200, 326);
+ INSTANCE.add(201, 150);
+ INSTANCE.add(202, 164);
+ INSTANCE.add(203, 169);
+ INSTANCE.add(204, 327);
+ INSTANCE.add(205, 328);
+ INSTANCE.add(206, 329);
+ INSTANCE.add(207, 330);
+ INSTANCE.add(208, 331);
+ INSTANCE.add(209, 332);
+ INSTANCE.add(210, 333);
+ INSTANCE.add(211, 334);
+ INSTANCE.add(212, 335);
+ INSTANCE.add(213, 336);
+ INSTANCE.add(214, 337);
+ INSTANCE.add(215, 338);
+ INSTANCE.add(216, 339);
+ INSTANCE.add(217, 340);
+ INSTANCE.add(218, 341);
+ INSTANCE.add(219, 342);
+ INSTANCE.add(220, 343);
+ INSTANCE.add(221, 344);
+ INSTANCE.add(222, 345);
+ INSTANCE.add(223, 346);
+ INSTANCE.add(224, 347);
+ INSTANCE.add(225, 348);
+ INSTANCE.add(226, 349);
+ INSTANCE.add(227, 350);
+ INSTANCE.add(228, 351);
+ INSTANCE.add(229, 352);
+ INSTANCE.add(230, 353);
+ INSTANCE.add(231, 354);
+ INSTANCE.add(232, 355);
+ INSTANCE.add(233, 356);
+ INSTANCE.add(234, 357);
+ INSTANCE.add(235, 358);
+ INSTANCE.add(236, 359);
+ INSTANCE.add(237, 360);
+ INSTANCE.add(238, 361);
+ INSTANCE.add(239, 362);
+ INSTANCE.add(240, 363);
+ INSTANCE.add(241, 364);
+ INSTANCE.add(242, 365);
+ INSTANCE.add(243, 366);
+ INSTANCE.add(244, 367);
+ INSTANCE.add(245, 368);
+ INSTANCE.add(246, 369);
+ INSTANCE.add(247, 370);
+ INSTANCE.add(248, 371);
+ INSTANCE.add(249, 372);
+ INSTANCE.add(250, 373);
+ INSTANCE.add(251, 374);
+ INSTANCE.add(252, 375);
+ INSTANCE.add(253, 376);
+ INSTANCE.add(254, 377);
+ INSTANCE.add(255, 378);
}
}
\ No newline at end of file
Copied: pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/CFFExpertSubsetCharset.java (from r1615712, pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/charset/CFFExpertSubsetCharset.java)
URL: http://svn.apache.org/viewvc/pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/CFFExpertSubsetCharset.java?p2=pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/CFFExpertSubsetCharset.java&p1=pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/charset/CFFExpertSubsetCharset.java&r1=1615712&r2=1618516&rev=1618516&view=diff
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/charset/CFFExpertSubsetCharset.java (original)
+++ pdfbox/no-awt/fontbox/src/main/java/org/apache/fontbox/cff/CFFExpertSubsetCharset.java Sun Aug 17 20:02:18 2014
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.fontbox.cff.charset;
+package org.apache.fontbox.cff;
/**
@@ -28,6 +28,7 @@ public class CFFExpertSubsetCharset exte
private CFFExpertSubsetCharset()
{
+ super(false);
}
/**
@@ -43,91 +44,93 @@ public class CFFExpertSubsetCharset exte
static
{
- INSTANCE.register(1, "space");
- INSTANCE.register(13, "comma");
- INSTANCE.register(14, "hyphen");
- INSTANCE.register(15, "period");
- INSTANCE.register(27, "colon");
- INSTANCE.register(28, "semicolon");
- INSTANCE.register(99, "fraction");
- INSTANCE.register(109, "fi");
- INSTANCE.register(110, "fl");
- INSTANCE.register(150, "onesuperior");
- INSTANCE.register(155, "onehalf");
- INSTANCE.register(158, "onequarter");
- INSTANCE.register(163, "threequarters");
- INSTANCE.register(164, "twosuperior");
- INSTANCE.register(169, "threesuperior");
- INSTANCE.register(231, "dollaroldstyle");
- INSTANCE.register(232, "dollarsuperior");
- INSTANCE.register(235, "parenleftsuperior");
- INSTANCE.register(236, "parenrightsuperior");
- INSTANCE.register(237, "twodotenleader");
- INSTANCE.register(238, "onedotenleader");
- INSTANCE.register(239, "zerooldstyle");
- INSTANCE.register(240, "oneoldstyle");
- INSTANCE.register(241, "twooldstyle");
- INSTANCE.register(242, "threeoldstyle");
- INSTANCE.register(243, "fouroldstyle");
- INSTANCE.register(244, "fiveoldstyle");
- INSTANCE.register(245, "sixoldstyle");
- INSTANCE.register(246, "sevenoldstyle");
- INSTANCE.register(247, "eightoldstyle");
- INSTANCE.register(248, "nineoldstyle");
- INSTANCE.register(249, "commasuperior");
- INSTANCE.register(250, "threequartersemdash");
- INSTANCE.register(251, "periodsuperior");
- INSTANCE.register(253, "asuperior");
- INSTANCE.register(254, "bsuperior");
- INSTANCE.register(255, "centsuperior");
- INSTANCE.register(256, "dsuperior");
- INSTANCE.register(257, "esuperior");
- INSTANCE.register(258, "isuperior");
- INSTANCE.register(259, "lsuperior");
- INSTANCE.register(260, "msuperior");
- INSTANCE.register(261, "nsuperior");
- INSTANCE.register(262, "osuperior");
- INSTANCE.register(263, "rsuperior");
- INSTANCE.register(264, "ssuperior");
- INSTANCE.register(265, "tsuperior");
- INSTANCE.register(266, "ff");
- INSTANCE.register(267, "ffi");
- INSTANCE.register(268, "ffl");
- INSTANCE.register(269, "parenleftinferior");
- INSTANCE.register(270, "parenrightinferior");
- INSTANCE.register(272, "hyphensuperior");
- INSTANCE.register(300, "colonmonetary");
- INSTANCE.register(301, "onefitted");
- INSTANCE.register(302, "rupiah");
- INSTANCE.register(305, "centoldstyle");
- INSTANCE.register(314, "figuredash");
- INSTANCE.register(315, "hypheninferior");
- INSTANCE.register(320, "oneeighth");
- INSTANCE.register(321, "threeeighths");
- INSTANCE.register(322, "fiveeighths");
- INSTANCE.register(323, "seveneighths");
- INSTANCE.register(324, "onethird");
- INSTANCE.register(325, "twothirds");
- INSTANCE.register(326, "zerosuperior");
- INSTANCE.register(327, "foursuperior");
- INSTANCE.register(328, "fivesuperior");
- INSTANCE.register(329, "sixsuperior");
- INSTANCE.register(330, "sevensuperior");
- INSTANCE.register(331, "eightsuperior");
- INSTANCE.register(332, "ninesuperior");
- INSTANCE.register(333, "zeroinferior");
- INSTANCE.register(334, "oneinferior");
- INSTANCE.register(335, "twoinferior");
- INSTANCE.register(336, "threeinferior");
- INSTANCE.register(337, "fourinferior");
- INSTANCE.register(338, "fiveinferior");
- INSTANCE.register(339, "sixinferior");
- INSTANCE.register(340, "seveninferior");
- INSTANCE.register(341, "eightinferior");
- INSTANCE.register(342, "nineinferior");
- INSTANCE.register(343, "centinferior");
- INSTANCE.register(344, "dollarinferior");
- INSTANCE.register(345, "periodinferior");
- INSTANCE.register(346, "commainferior");
+ int gid = 0;
+ INSTANCE.addSID(gid++, 0, ".notdef");
+ INSTANCE.addSID(gid++, 1, "space");
+ INSTANCE.addSID(gid++, 231, "dollaroldstyle");
+ INSTANCE.addSID(gid++, 232, "dollarsuperior");
+ INSTANCE.addSID(gid++, 235, "parenleftsuperior");
+ INSTANCE.addSID(gid++, 236, "parenrightsuperior");
+ INSTANCE.addSID(gid++, 237, "twodotenleader");
+ INSTANCE.addSID(gid++, 238, "onedotenleader");
+ INSTANCE.addSID(gid++, 13, "comma");
+ INSTANCE.addSID(gid++, 14, "hyphen");
+ INSTANCE.addSID(gid++, 15, "period");
+ INSTANCE.addSID(gid++, 99, "fraction");
+ INSTANCE.addSID(gid++, 239, "zerooldstyle");
+ INSTANCE.addSID(gid++, 240, "oneoldstyle");
+ INSTANCE.addSID(gid++, 241, "twooldstyle");
+ INSTANCE.addSID(gid++, 242, "threeoldstyle");
+ INSTANCE.addSID(gid++, 243, "fouroldstyle");
+ INSTANCE.addSID(gid++, 244, "fiveoldstyle");
+ INSTANCE.addSID(gid++, 245, "sixoldstyle");
+ INSTANCE.addSID(gid++, 246, "sevenoldstyle");
+ INSTANCE.addSID(gid++, 247, "eightoldstyle");
+ INSTANCE.addSID(gid++, 248, "nineoldstyle");
+ INSTANCE.addSID(gid++, 27, "colon");
+ INSTANCE.addSID(gid++, 28, "semicolon");
+ INSTANCE.addSID(gid++, 249, "commasuperior");
+ INSTANCE.addSID(gid++, 250, "threequartersemdash");
+ INSTANCE.addSID(gid++, 251, "periodsuperior");
+ INSTANCE.addSID(gid++, 253, "asuperior");
+ INSTANCE.addSID(gid++, 254, "bsuperior");
+ INSTANCE.addSID(gid++, 255, "centsuperior");
+ INSTANCE.addSID(gid++, 256, "dsuperior");
+ INSTANCE.addSID(gid++, 257, "esuperior");
+ INSTANCE.addSID(gid++, 258, "isuperior");
+ INSTANCE.addSID(gid++, 259, "lsuperior");
+ INSTANCE.addSID(gid++, 260, "msuperior");
+ INSTANCE.addSID(gid++, 261, "nsuperior");
+ INSTANCE.addSID(gid++, 262, "osuperior");
+ INSTANCE.addSID(gid++, 263, "rsuperior");
+ INSTANCE.addSID(gid++, 264, "ssuperior");
+ INSTANCE.addSID(gid++, 265, "tsuperior");
+ INSTANCE.addSID(gid++, 266, "ff");
+ INSTANCE.addSID(gid++, 109, "fi");
+ INSTANCE.addSID(gid++, 110, "fl");
+ INSTANCE.addSID(gid++, 267, "ffi");
+ INSTANCE.addSID(gid++, 268, "ffl");
+ INSTANCE.addSID(gid++, 269, "parenleftinferior");
+ INSTANCE.addSID(gid++, 270, "parenrightinferior");
+ INSTANCE.addSID(gid++, 272, "hyphensuperior");
+ INSTANCE.addSID(gid++, 300, "colonmonetary");
+ INSTANCE.addSID(gid++, 301, "onefitted");
+ INSTANCE.addSID(gid++, 302, "rupiah");
+ INSTANCE.addSID(gid++, 305, "centoldstyle");
+ INSTANCE.addSID(gid++, 314, "figuredash");
+ INSTANCE.addSID(gid++, 315, "hypheninferior");
+ INSTANCE.addSID(gid++, 158, "onequarter");
+ INSTANCE.addSID(gid++, 155, "onehalf");
+ INSTANCE.addSID(gid++, 163, "threequarters");
+ INSTANCE.addSID(gid++, 320, "oneeighth");
+ INSTANCE.addSID(gid++, 321, "threeeighths");
+ INSTANCE.addSID(gid++, 322, "fiveeighths");
+ INSTANCE.addSID(gid++, 323, "seveneighths");
+ INSTANCE.addSID(gid++, 324, "onethird");
+ INSTANCE.addSID(gid++, 325, "twothirds");
+ INSTANCE.addSID(gid++, 326, "zerosuperior");
+ INSTANCE.addSID(gid++, 150, "onesuperior");
+ INSTANCE.addSID(gid++, 164, "twosuperior");
+ INSTANCE.addSID(gid++, 169, "threesuperior");
+ INSTANCE.addSID(gid++, 327, "foursuperior");
+ INSTANCE.addSID(gid++, 328, "fivesuperior");
+ INSTANCE.addSID(gid++, 329, "sixsuperior");
+ INSTANCE.addSID(gid++, 330, "sevensuperior");
+ INSTANCE.addSID(gid++, 331, "eightsuperior");
+ INSTANCE.addSID(gid++, 332, "ninesuperior");
+ INSTANCE.addSID(gid++, 333, "zeroinferior");
+ INSTANCE.addSID(gid++, 334, "oneinferior");
+ INSTANCE.addSID(gid++, 335, "twoinferior");
+ INSTANCE.addSID(gid++, 336, "threeinferior");
+ INSTANCE.addSID(gid++, 337, "fourinferior");
+ INSTANCE.addSID(gid++, 338, "fiveinferior");
+ INSTANCE.addSID(gid++, 339, "sixinferior");
+ INSTANCE.addSID(gid++, 340, "seveninferior");
+ INSTANCE.addSID(gid++, 341, "eightinferior");
+ INSTANCE.addSID(gid++, 342, "nineinferior");
+ INSTANCE.addSID(gid++, 343, "centinferior");
+ INSTANCE.addSID(gid++, 344, "dollarinferior");
+ INSTANCE.addSID(gid++, 345, "periodinferior");
+ INSTANCE.addSID(gid++, 346, "commainferior");
}
}
\ No newline at end of file