FopFactory缺少方法

时间:2016-05-18 06:03:24

标签: java eclipse apache-fop

最近我遇到了PDF生成的问题,一些字形用'#'表示。我制作了自己的fop配置文件并尝试了这个:

fopFactory

但似乎setUserConfig没有方法fopFactory.getFontManager().setFontBaseURL(fontBase);

我也尝试过这个:

FontManager

但结果相同 - setFontBaseURL没有方法<dependency> <groupId>org.apache.xmlgraphics</groupId> <artifactId>fop</artifactId> <version>2.1</version> </dependency>

我的maven依赖是:

newInstance()

尝试手动添加jar,但这并没有改变它。

发现line #41如何使用用户配置,但斗争是我需要在构造函数 // setup xml input source String xml = object.toXml(); StreamSource xmlSource = new StreamSource(new ByteArrayInputStream(xml.getBytes("UTF-8"))); // setup xsl stylesheet source File xslFile = new File(stylesheetPath); FileInputStream xslFileStream = new FileInputStream(xslFile); StreamSource xslSource = new StreamSource(xslFileStream); // get transformer TransformerFactory tfactory = TransformerFactory.newInstance(); Transformer transformer = tfactory.newTransformer(xslSource); // setup FOP FopFactory fopFactory = FopFactory.newInstance(xslFile); FOUserAgent foUserAgent = fopFactory.newFOUserAgent(); foUserAgent.setProducer(this.getClass().getName()); Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, foUserAgent, pdfContent); // perform transformation Result res = new SAXResult(fop.getDefaultHandler()); transformer.transform(xmlSource, res); 中使用xsl模板。如何设置xsl(注意:NOT XSL-FO!)和config?

这是我的代码片段:

$filter

2 个答案:

答案 0 :(得分:0)

正如lfurini所指出的,setFontBaseURL()在2.0之前的Apache FOP版本中消失了。现在,大多数程序配置都使用FopFactoryBuilder完成。另请参见Apache's guide to upgrading to FOP 2.1

答案 1 :(得分:-1)

FOPFactoryConfigurator类已被删除,fopFactory.setUserConfig(cfg)不再可用。这是您使用的版本(fop的1.x或更早版本)

选中此https://xmlgraphics.apache.org/fop/2.1/upgrading.html