Hallo nochmal,
hier der java code dazu: Es soll ein pdf generiert werden, das auf Platte gespeichert wird, diese soll danach direkt im Browser angezeigt werden. Anscheinend wird die outofmemory exception nach dem Generieren geworfen, denn die Datei ist vorhanden. Aber wenn ich sie dann explizit durch Doppelklick öffnen möchte, dann wird gesagt, die Datei sei kaputt und könnte nicht repariert werden.
File file = new File("D:/xxx/fopConf/userconfig.xml"); //userconfig.xml
Options options = new Options(file);
File pdf = new File(outDir, pdfName+docNo+".pdf"); //output Path for PDF Document
//Construct driver
Driver driver = new Driver();
//Setup logger
org.apache.avalon.framework.logger.Logger log = new ConsoleLogger(ConsoleLogger.LEVEL_INFO);
driver.setLogger(log);
MessageHandler.setScreenLogger(log);
//Setup Renderer (output format)
driver.setRenderer(Driver.RENDER_PDF);
// Setup output
OutputStream out = new java.io.FileOutputStream(pdf);
try {
driver.setOutputStream(out);
//Setup XSLT
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer(new StreamSource(isXsl));
//Resulting SAX events (the generated FO) must be piped through to FOP
Result res = new SAXResult(driver.getContentHandler());
System.out.println(" driver.getContentHandler = " + driver.getContentHandler());
//Set Parameters to XSL
Enumeration enum = para.keys();
while (enum.hasMoreElements())
{ String key = (String) enum.nextElement();
System.out.println("key == " + key);
System.out.println("para.get(key) == " + para.get(key));
transformer.setParameter(key,para.get(key));
}
//Start XSLT transformation and FOP processing
transformer.transform(new DOMSource(doc), res);
driver=null;
transformer=null;
factory=null;
} catch (Exception e) {
e.printStackTrace();
} finally {
out.close();
}
Vielen Dank für die Hilfe,
aragorna