Class FontContainer<T extends PDFontLike>

    • Field Detail

      • errorBuffer

        protected java.util.List<ValidationResult.ValidationError> errorBuffer
        List of validation errors that occur during the font validation. If the font is used by an object in the PDF, all these errors will be appended to the Error list of the PreflightContext.
      • embeddedFont

        protected boolean embeddedFont
        Boolean used to known if the font is embedded.
      • codeToDetail

        private final java.util.Map<java.lang.Integer,​GlyphDetail> codeToDetail
      • errorsAlreadyMerged

        private boolean errorsAlreadyMerged
      • font

        protected final T extends PDFontLike font
        Font-like object.
    • Constructor Detail

      • FontContainer

        public FontContainer​(T font)
    • Method Detail

      • isValid

        public boolean isValid()
      • errorsAleadyMerged

        public boolean errorsAleadyMerged()
      • setErrorsAlreadyMerged

        public void setErrorsAlreadyMerged​(boolean errorsAlreadyMerged)
      • isEmbeddedFont

        public boolean isEmbeddedFont()
      • notEmbedded

        public void notEmbedded()
      • checkGlyphWidth

        public void checkGlyphWidth​(int code)
                             throws GlyphException
        Check that the Width or W entry in the PDF matches the widths in the embedded font program.
        Parameters:
        code - character code
        Throws:
        GlyphException
      • hasGlyph

        protected abstract boolean hasGlyph​(int code)
                                     throws java.io.IOException
        Checks if the embedded font contains a glyph for the given character code.
        Parameters:
        code - character code
        Throws:
        java.io.IOException
      • isAlreadyProcessed

        private boolean isAlreadyProcessed​(int code)
                                    throws GlyphException
        Check if the given character code has already been processed.
        Parameters:
        code - character code
        Returns:
        true if the CID has previously been marked as valid, false otherwise
        Throws:
        GlyphException - if the code has previously been marked as invalid // TODO useful ??
      • checkWidthsConsistency

        private void checkWidthsConsistency​(int code,
                                            float expectedWidth,
                                            float foundWidth)
                                     throws GlyphException
        Test if both widths are consistent. At the end of this method, the CID is marked as valid or invalid.
        Parameters:
        code - character code
        expectedWidth - expected with given in the PDF file
        foundWidth - the glyph width found in the font program, a negative value if the CID is missing from the font.
        Throws:
        GlyphException - the appropriate exception if the CID is invalid.
      • markAsValid

        public final void markAsValid​(int code)
      • markAsInvalid

        public final void markAsInvalid​(int code,
                                        GlyphException e)