in src/java/org/apache/fop/render/pdf/pdfbox/MergeFontsPDFWriter.java [94:132]
protected void readPDFArguments(Operator op, Collection<COSBase> arguments) throws IOException {
for (COSBase c : arguments) {
if (c instanceof COSName) {
COSName cn = (COSName)c;
COSDictionary fontData = (COSDictionary)fonts.getDictionaryObject(cn.getName());
String internalName = fontsToRemove.get(cn);
if (internalName == null && fontData != null) {
internalName = getNewFont(fontData, fontInfo, fontsToRemove.values());
}
if (fontData == null || internalName == null) {
key.writeName(s, cn);
if (op.getName().equals("Tf")) {
font = null;
oldFont = null;
}
} else {
s.append("/" + internalName);
fontsToRemove.put(cn, internalName);
font = fontInfo.getUsedFonts().get(internalName);
oldFont = getFont(fontData);
}
s.append(" ");
} else if (c instanceof COSString && font != null && ((FOPPDFFont)font).size() != 1) {
List<String> word = readCOSString((COSString)c, oldFont);
if (word == null) {
s.append(PDFText.escapeString(getString((COSString) c)));
} else {
String x = ((FOPPDFFont)font).getMappedWord(word, ((COSString) c).getBytes(), oldFont);
if (x == null) {
s.append(PDFText.escapeString(getString((COSString) c)));
} else {
s.append(x);
}
}
} else {
processArg(op, c);
}
}
}