我正在尝试从.xml
获取.ttf
,以便在Apache FOP中嵌入字体以进行PDF /转换(没有.xml
的PDF转换工作)。你能帮我做一下转换吗?以下是我到目前为止尝试的内容:
我找到几个网站,说明转换是通过在包含我的.ttf
的目录中打开的CLI中输入以下行来完成的:
java -cp PATH ; PATH\avalon-framework.jar org.apache.fop.fonts.apps.TTFReader arial.ttf arial.xml
使用PATH指向fop.jar
的路径。
它不起作用并回复我:错误:无法找到主要的课程
所以我尝试使用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
,但我认为它们无效。
答案 0 :(得分:0)
这个问题被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);