Class Type1SubsetFile


  • public class Type1SubsetFile
    extends java.lang.Object
    • Field Detail

      • LOG

        protected static final org.apache.commons.logging.Log LOG
      • subsetCharStrings

        protected java.util.HashMap<java.lang.String,​byte[]> subsetCharStrings
      • charNames

        protected java.util.List<java.lang.String> charNames
      • uniqueSubs

        protected java.util.LinkedHashMap<java.lang.Integer,​byte[]> uniqueSubs
      • eol

        protected java.lang.String eol
      • subsetSubroutines

        protected boolean subsetSubroutines
      • fullFont

        private byte[] fullFont
      • standardEncoding

        protected boolean standardEncoding
    • Constructor Detail

      • Type1SubsetFile

        public Type1SubsetFile()
    • Method Detail

      • createSubset

        public byte[] createSubset​(java.io.InputStream in,
                                   SingleByteFont sbfont)
                            throws java.io.IOException
        Throws:
        java.io.IOException
      • createSubset

        private byte[] createSubset​(SingleByteFont sbfont,
                                    boolean subsetSubroutines)
                             throws java.io.IOException
        Creates a new subset from the given type 1 font input stream
        Parameters:
        sbfont - The font object containing information such as the characters from which to create the subset
        subsetSubroutines - This option will force the subset to include all subroutines.
        Returns:
        Returns the subset as a byte array
        Throws:
        java.io.IOException
      • stitchFont

        public byte[] stitchFont​(java.io.ByteArrayOutputStream boasHeader,
                                 java.io.ByteArrayOutputStream boasMain,
                                 java.io.ByteArrayOutputStream boasTrailer)
                          throws java.io.IOException
        Throws:
        java.io.IOException
      • searchEntries

        protected java.util.List<java.lang.String> searchEntries​(java.util.HashMap<java.lang.Integer,​java.lang.String> encodingEntries,
                                                                 int glyph)
      • writeHeader

        protected java.io.ByteArrayOutputStream writeHeader​(PFBData pfbData,
                                                            PostscriptParser.PSElement encoding)
                                                     throws java.io.IOException
        Throws:
        java.io.IOException
      • updateSectionSize

        java.io.ByteArrayOutputStream updateSectionSize​(int size)
                                                 throws java.io.IOException
        Throws:
        java.io.IOException
      • createSubsetCharStrings

        private byte[] createSubsetCharStrings​(byte[] decoded,
                                               byte[] data,
                                               PostscriptParser.PSFixedArray subroutines,
                                               java.util.List<java.lang.String> subsetEncodingEntries)
      • getSubrIndex

        private int getSubrIndex​(int subID)
      • addSubroutine

        private byte[] addSubroutine​(PostscriptParser.PSFixedArray subroutines,
                                     java.util.List<Type1SubsetFile.BytesNumber> operands,
                                     byte[] decoded,
                                     java.util.List<java.lang.String> subsetEncodingEntries,
                                     byte[] data,
                                     int i,
                                     int opLength,
                                     int existingSubrRef,
                                     int subrID)
      • findVariable

        protected java.lang.String findVariable​(byte[] decoded,
                                                java.util.List<PostscriptParser.PSElement> elements,
                                                java.lang.String[] matches,
                                                java.lang.String fallback)
                                         throws java.io.UnsupportedEncodingException
        Throws:
        java.io.UnsupportedEncodingException
      • readVariableContents

        java.lang.String readVariableContents​(java.lang.String variable)
      • addToCharNames

        private void addToCharNames​(java.lang.String encodingEntry)
      • writeString

        protected void writeString​(java.lang.String entry,
                                   java.io.ByteArrayOutputStream boas)
                            throws java.io.IOException
        Throws:
        java.io.IOException
      • constructNewRefData

        private byte[] constructNewRefData​(int curDataPos,
                                           byte[] currentData,
                                           java.util.List<Type1SubsetFile.BytesNumber> operands,
                                           int opNum,
                                           int curSubsetIndexSize,
                                           int operatorLength)
      • createNewRef

        private byte[] createNewRef​(int newRef,
                                    int forceLength)
      • concatArray

        byte[] concatArray​(byte[] a,
                           byte[] b)
        Concatenate two byte arrays together
        Parameters:
        a - The first array
        b - The second array
        Returns:
        The concatenated array
      • getBinaryEntry

        protected byte[] getBinaryEntry​(int[] position,
                                        byte[] decoded)
        Returns a section of a byte array determined by it's start and end position.
        Parameters:
        position - An array containing both the start and end position of the section to copy.
        decoded - The array from which to copy a section of data
        Returns:
        Returns the copy of the data section
      • getEntryPart

        protected java.lang.String getEntryPart​(java.lang.String entry,
                                                int part)