Kaynağa Gözat

FOP-2322: Type1 Font with Custom Encoding not visible in Postscript output; Patch submitted by Simon Steiner

git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1548054 13f79535-47bb-0310-9956-ffa450edef68
tags/fop-2_0
Robert Meyer 10 yıl önce
ebeveyn
işleme
d86afe17fd

+ 15
- 1
src/java/org/apache/fop/fonts/type1/Type1FontLoader.java Dosyayı Görüntüle

@@ -173,7 +173,21 @@ public class Type1FontLoader extends FontLoader {
addUnencodedBasedOnAFM(afm);
}
} else {
if (pfm.getCharSet() >= 0 && pfm.getCharSet() <= 2) {
if (pfm.getCharSet() == 2 && !pfm.getCharSetName().equals("Symbol")) {
int[] table = new int[256];
String[] charNameMap = new String[256];
int j = 0;
for (int i = pfm.getFirstChar(); i < pfm.getLastChar(); i++) {
if (j < table.length) {
table[j] = i;
table[j + 1] = i;
j += 2;
}
charNameMap[i] = String.format("x%03o", i);
}
CodePointMapping mapping = new CodePointMapping("custom", table, charNameMap);
singleFont.setEncoding(mapping);
} else if (pfm.getCharSet() >= 0 && pfm.getCharSet() <= 2) {
singleFont.setEncoding(pfm.getCharSetName() + "Encoding");
} else {
log.warn("The PFM reports an unsupported encoding ("

+ 9
- 0
src/java/org/apache/fop/render/ps/PSFontUtils.java Dosyayı Görüntüle

@@ -175,6 +175,15 @@ public class PSFontUtils extends org.apache.xmlgraphics.ps.PSFontUtils {

if (!tracker.isResourceSupplied(WINANSI_ENCODING_RESOURCE)) {
//Only out Base 14 fonts still use that
for (Typeface tf : fonts.values()) {
if (tf instanceof LazyFont) {
tf = ((LazyFont)tf).getRealFont();
if (tf instanceof SingleByteFont
&& ((SingleByteFont) tf).getEncoding().getName().equals("custom")) {
defineEncoding(gen, ((SingleByteFont) tf).getEncoding());
}
}
}
defineWinAnsiEncoding(gen);
}
gen.commentln("%FOPBeginFontReencode");

Loading…
İptal
Kaydet