Apache FOP 2.0:.ttf 到 .xml 的转换
Apache FOP 2.0: .ttf to .xml conversion
我正在尝试从 .ttf
获取 .xml
以便在 Apache FOP 中嵌入字体以进行 PDF/a 转换(PDF 转换可以在没有 .xml
的情况下工作) .你能帮我做这个转换吗?以下是我到目前为止尝试过的内容:
我发现几个网站解释说,转换应通过在 CLI 中输入以下行来完成,该 CLI 在包含我的 .ttf
:
的目录中打开
java -cp PATH ; PATH\avalon-framework.jar org.apache.fop.fonts.apps.TTFReader arial.ttf arial.xml
使用 PATH 指向我的 fop.jar
的路径。
它没有用 return 我:错误:无法找到主要 class
所以我尝试使用 TTFReader:
TTFReader read=new TTFReader();
read.constructFontXML(read.loadTTF(chemin+"Fonts/ttf/arial.ttf", "Arial",true,true), "Arial", "Arial", "C:/Fonts/arial.ttf" ,chemin+"Fonts/ttf/arial.ttf", true, "Arial");
但我没有理解所有需要输入的内容:
constructFontXML(TTFFile ttf,String fontName, String className, String resource, String file,boolean isCid, String ttcName)
loadTTF(String fileName, String fontName, boolean useKerning, boolean useAdvanced)
我不知道如何获取信息以正确设置布尔值,也不知道 ClassName
是什么以及 ressource
的用途是什么,因为 path
已经存在。我的代码给了我 .xml
但我认为它们无效。
lfurini 绕过了这个问题,因为我最终不需要那些 .xml
但这里有一些代码可以呈现 .xml
即使我怀疑它们的配置是否正确:
String[] fonts={"Arial", "Courier", "Times New Roman"};
String[] fontsR={"arial","courier","times"};
String[] styles={""," Bold"," Italic"," Bold Italic"};
String[] stylesR={"","bd","i","bi"};
for (int i=0;i<fonts.length;i++){
for (int j=0;j<styles.length;j++){
String nameFont=fonts[i]+styles[j];
String nameTTF=fontsR[i]+stylesR[j];
TTFReader read=new TTFReader();
Document document=read.constructFontXML(read.loadTTF(chemin+"Fonts/ttf/"+nameTTF+".ttf", nameFont,true,true), nameFont, fonts[i], "C:/Fonts/ttf/"+nameTTF+".ttf" ,"C:/Fonts/ttf/"+nameTTF+".ttf", true, fonts[i]);
Transformer transformer = TransformerFactory.newInstance().newTransformer();
Result output = new StreamResult(new File(chemin+"Fonts/xml/"+nameTTF+".xml"));
Source input = new DOMSource(document);
transformer.transform(input, output);
我正在尝试从 .ttf
获取 .xml
以便在 Apache FOP 中嵌入字体以进行 PDF/a 转换(PDF 转换可以在没有 .xml
的情况下工作) .你能帮我做这个转换吗?以下是我到目前为止尝试过的内容:
我发现几个网站解释说,转换应通过在 CLI 中输入以下行来完成,该 CLI 在包含我的 .ttf
:
java -cp PATH ; PATH\avalon-framework.jar org.apache.fop.fonts.apps.TTFReader arial.ttf arial.xml
使用 PATH 指向我的 fop.jar
的路径。
它没有用 return 我:错误:无法找到主要 class
所以我尝试使用 TTFReader:
TTFReader read=new TTFReader();
read.constructFontXML(read.loadTTF(chemin+"Fonts/ttf/arial.ttf", "Arial",true,true), "Arial", "Arial", "C:/Fonts/arial.ttf" ,chemin+"Fonts/ttf/arial.ttf", true, "Arial");
但我没有理解所有需要输入的内容:
constructFontXML(TTFFile ttf,String fontName, String className, String resource, String file,boolean isCid, String ttcName)
loadTTF(String fileName, String fontName, boolean useKerning, boolean useAdvanced)
我不知道如何获取信息以正确设置布尔值,也不知道 ClassName
是什么以及 ressource
的用途是什么,因为 path
已经存在。我的代码给了我 .xml
但我认为它们无效。
lfurini 绕过了这个问题,因为我最终不需要那些 .xml
但这里有一些代码可以呈现 .xml
即使我怀疑它们的配置是否正确:
String[] fonts={"Arial", "Courier", "Times New Roman"};
String[] fontsR={"arial","courier","times"};
String[] styles={""," Bold"," Italic"," Bold Italic"};
String[] stylesR={"","bd","i","bi"};
for (int i=0;i<fonts.length;i++){
for (int j=0;j<styles.length;j++){
String nameFont=fonts[i]+styles[j];
String nameTTF=fontsR[i]+stylesR[j];
TTFReader read=new TTFReader();
Document document=read.constructFontXML(read.loadTTF(chemin+"Fonts/ttf/"+nameTTF+".ttf", nameFont,true,true), nameFont, fonts[i], "C:/Fonts/ttf/"+nameTTF+".ttf" ,"C:/Fonts/ttf/"+nameTTF+".ttf", true, fonts[i]);
Transformer transformer = TransformerFactory.newInstance().newTransformer();
Result output = new StreamResult(new File(chemin+"Fonts/xml/"+nameTTF+".xml"));
Source input = new DOMSource(document);
transformer.transform(input, output);