嵌入式FOP:如何以编程方式更改PDF版本?

时间:2018-03-08 11:43:26

标签: java pdf apache-fop

我在Java应用程序中使用嵌入式FOP 2.2。它工作正常并生成PDF 1.4。我想升级到PDF 1.5,1.6。或1.7。我知道我可以在配置文件(1.5)中执行此操作,但由于我的情况,我无法使用配置文件。我在我的Java代码中配置FOP。这是我的代码:

FopFactoryBuilder builder = new FopFactoryBuilder(new URI("http://www.w3.org/1999/XSL/Format")); 

builder.setStrictFOValidation(true); 

builder.setBreakIndentInheritanceOnReferenceAreaBoundary(false); 

builder.setSourceResolution(72); 

builder.setTargetResolution(72); 

FopFactory fopFactory = builder.build(); 

FOUserAgent userAgent = fopFactory.newFOUserAgent();

userAgent.getRendererOptions().put("version", "1.7"); 

Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, userAgent, outputStream); 

Result result = new SAXResult(fop.getDefaultHandler());

如您所见,我在FOPUserAgent中将版本设置为1.7,并将fopuseragent传递给newFop()方法。我希望版本为1.7的PDF,但生成的PDF版本为1.4 :-(

我不确切知道该行

userAgent.getRendererOptions()。put("版本"," 1.7");

是正确的,可能是关键"版本"是错的。我无法在Apache FOP网站上找到包含所有密钥的列表。

有没有人知道在Java中更改pdf版本的正确语法?正如我所提到的,我无法使用配置文件。它必须用Java完成。

谢谢朋友们

迈克尔

0 个答案:

没有答案
相关问题