我在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完成。
谢谢朋友们
迈克尔