in src/java/org/apache/fop/render/pdf/pdfbox/MergeFontsPDFWriter.java [134:158]
private String getNewFont(COSDictionary fontData, FontInfo fontinfo, Collection<String> usedFonts)
throws IOException {
String base = getUniqueFontName(fontData);
if (base == null || usedFonts.contains(base) || (parentFonts != null && parentFonts.contains(base))) {
return null;
}
try {
for (Typeface t : fontinfo.getUsedFonts().values()) {
if (t instanceof FOPPDFFont && base.equals(t.getFontName())) {
return ((FOPPDFFont)t).addFont(fontData);
}
}
if (base.endsWith("cid") || fontData.getItem(COSName.SUBTYPE) != COSName.TYPE1
&& fontData.getItem(COSName.SUBTYPE) != COSName.TRUE_TYPE) {
fontinfo.addMetrics(base, new FOPPDFMultiByteFont(fontData, base));
} else {
fontinfo.addMetrics(base, new FOPPDFSingleByteFont(fontData, base));
}
} catch (IOException e) {
log.warn(e.getMessage());
return null;
}
fontinfo.useFont(base);
return base;
}