Search in sources :

Example 1 with WinAnsiEncoding

use of org.apache.pdfbox.pdmodel.font.encoding.WinAnsiEncoding in project pdfbox by apache.

the class TrueTypeFontValidator method checkEncoding.

@Override
protected void checkEncoding() {
    PDTrueTypeFont ttFont = (PDTrueTypeFont) font;
    PDFontDescriptor fd = ttFont.getFontDescriptor();
    if (fd != null) {
        /*
             * only MacRomanEncoding or WinAnsiEncoding are allowed for a non symbolic font.
             */
        if (fd.isNonSymbolic()) {
            Encoding encodingValue = ttFont.getEncoding();
            if (!(encodingValue instanceof MacRomanEncoding || encodingValue instanceof WinAnsiEncoding)) {
                this.fontContainer.push(new ValidationError(ERROR_FONTS_ENCODING, fd.getFontName() + ": The Encoding is invalid for the NonSymbolic TTF"));
            }
        }
        /*
             * For symbolic font, no encoding entry is allowed and only one encoding entry is expected into the FontFile
             * CMap (Check latter when the FontFile stream will be checked)
             */
        if (fd.isSymbolic() && fontDictionary.getItem(COSName.ENCODING) != null) {
            this.fontContainer.push(new ValidationError(ERROR_FONTS_ENCODING, fd.getFontName() + ": The Encoding should be missing for the Symbolic TTF"));
        }
    }
}
Also used : PDTrueTypeFont(org.apache.pdfbox.pdmodel.font.PDTrueTypeFont) Encoding(org.apache.pdfbox.pdmodel.font.encoding.Encoding) MacRomanEncoding(org.apache.pdfbox.pdmodel.font.encoding.MacRomanEncoding) WinAnsiEncoding(org.apache.pdfbox.pdmodel.font.encoding.WinAnsiEncoding) MacRomanEncoding(org.apache.pdfbox.pdmodel.font.encoding.MacRomanEncoding) ValidationError(org.apache.pdfbox.preflight.ValidationResult.ValidationError) WinAnsiEncoding(org.apache.pdfbox.pdmodel.font.encoding.WinAnsiEncoding) PDFontDescriptor(org.apache.pdfbox.pdmodel.font.PDFontDescriptor)

Aggregations

PDFontDescriptor (org.apache.pdfbox.pdmodel.font.PDFontDescriptor)1 PDTrueTypeFont (org.apache.pdfbox.pdmodel.font.PDTrueTypeFont)1 Encoding (org.apache.pdfbox.pdmodel.font.encoding.Encoding)1 MacRomanEncoding (org.apache.pdfbox.pdmodel.font.encoding.MacRomanEncoding)1 WinAnsiEncoding (org.apache.pdfbox.pdmodel.font.encoding.WinAnsiEncoding)1 ValidationError (org.apache.pdfbox.preflight.ValidationResult.ValidationError)1