2017-08-03 67 views
0

我试图从.ttf获取.xml,以便在Apache FOP中嵌入PDF/a转换字体(PDF转换工作不带.xml)。你能帮我做这个转换吗?下面说到什么我试过到目前为止:Apache FOP 2.0:.ttf转换为.xml

我发现了几个网站解释说,转换,由输入查询的CLI如下因素线来完成对包含目录打开我.ttf

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

相关问题:[FO到PDF/a转换与Apache FOP Java库](https://stackoverflow.com/q/45435698/4453460) – lfurini

+0

我试图回答你其他问题;我很确定XML指标文件不再需要。 – lfurini

+0

是的,您的解决方案确实有效,并且XML文件不是必需的 –

回答

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);