PdfType1Font(Type1Font type1Font, String encoding, boolean embedded) { super(); setFontProgram(type1Font); this.embedded = embedded && !type1Font.isBuiltInFont(); if ((encoding == null || encoding.length() == 0) && type1Font.isFontSpecific()) { encoding = FontEncoding.FONT_SPECIFIC; } if (encoding != null && FontEncoding.FONT_SPECIFIC.toLowerCase().equals(encoding.toLowerCase())) { fontEncoding = FontEncoding.createFontSpecificEncoding(); } else { fontEncoding = FontEncoding.createFontEncoding(encoding); } }
return font; FontProgram ff2 = FontProgramFactory.createRegisteredFont(faceName, ((italic != 0) ? FontStyles.ITALIC : 0) | ((bold != 0) ? FontStyles.BOLD : 0)); encoding = FontEncoding.createFontEncoding(PdfEncodings.WINANSI); font = ff2; if (font != null) encoding = FontEncoding.createFontEncoding(PdfEncodings.WINANSI);
PdfTrueTypeFont(TrueTypeFont ttf, String encoding, boolean embedded) { super(); setFontProgram(ttf); this.embedded = embedded; FontNames fontNames = ttf.getFontNames(); if (embedded && !fontNames.allowEmbedding()) { throw new PdfException("{0} cannot be embedded due to licensing restrictions.") .setMessageParams(fontNames.getFontName()); } if ((encoding == null || encoding.length() == 0) && ttf.isFontSpecific()) { encoding = FontEncoding.FONT_SPECIFIC; } if (encoding != null && FontEncoding.FONT_SPECIFIC.toLowerCase().equals(encoding.toLowerCase())) { fontEncoding = FontEncoding.createFontSpecificEncoding(); } else { fontEncoding = FontEncoding.createFontEncoding(encoding); } }
public static FontEncoding createDocFontEncoding(PdfObject encoding, CMapToUnicode toUnicode) { if (encoding != null) { if (encoding.isName()) { return FontEncoding.createFontEncoding(((PdfName) encoding).getValue()); } else if (encoding.isDictionary()) { DocFontEncoding fontEncoding = new DocFontEncoding(); fontEncoding.differences = new String[256]; fillBaseEncoding(fontEncoding, ((PdfDictionary) encoding).getAsName(PdfName.BaseEncoding)); fillDifferences(fontEncoding, ((PdfDictionary) encoding).getAsArray(PdfName.Differences), toUnicode); return fontEncoding; } } if (toUnicode != null) { DocFontEncoding fontEncoding = new DocFontEncoding(); fontEncoding.differences = new String[256]; fillDifferences(fontEncoding, toUnicode); return fontEncoding; } else { return FontEncoding.createFontSpecificEncoding(); } }