В настоящее время я использую встроенный FOP с помощью драйвера следующим образом
Driver driver = new Driver();
driver.setRenderer(Driver.RENDER_PDF);
driver.setInputSource(new InputSource(new FileInputStream(tempout)));
File tempFile = File.createTempFile("W2P", ".pdf");
FileOutputStream pdfOutput = new FileOutputStream(tempFile);
tempFile.deleteOnExit();
driver.setOutputStream(pdfOutput);
driver.run();
но я хотел бы иметь доступ к настройкам конфигурации программно, в частности, к выходному разрешению, поскольку мне нужно создавать файлы с несколькими разрешениями 72dpi 150dpi 300dpi, единственный способ, которым я могу это сделать, - это перейти на FOPFactory следующим образом
FopFactory fopFactory = FopFactory.newInstance();
OutputStream out = new BufferedOutputStream(new FileOutputStream(new File("C:/Temp/myfile.pdf")));
Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, out);
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer(); // identity transformer
Source src = new StreamSource(new File("C:/Temp/myfile.fo"));
Result res = new SAXResult(fop.getDefaultHandler());
transformer.transform(src, res);
Есть ли способ управлять движком FOP с помощью Driver, или мне придется переключиться на FOPFactory, и каковы преимущества / проблемы при этом?