Streams in Java

mpwh

Grünschnabel
Hi,

ich verwende folgende Methode um aus XML -Dateien mittels XSLT ein PDF zu erzeugen. Dies funktioniert auch einwandfrei.

Nun liegt bei mir allerdings die XML- und XSLT-Datei nicht als DATEI vor, sondern schon in einem ByteBuffer vor.
Wie muss ich nun folgende Methode abaendern, sodass meine ByteBuffer benutzt werden koennen, und das Ergenis ebenfalls wieder in einem ByteBuffer liegt, ohne den Umweg ueber das Schreiben der Dateien auf Festplatte zu gehen?!

Vielen Dank!

Code:
	private static void transformXML2PDF() {
		try {
	        File xsltfile 	= new File(c:/temp/a.xsl);
	        File pdffile 	= new File(c:/tem/a.pdf);
	        File xmlfile 	= new File(c:/temp/a.xml);
	        
	        FopFactory fopFactory = FopFactory.newInstance();
	        FOUserAgent foUserAgent = fopFactory.newFOUserAgent();
	        
	        OutputStream out = new java.io.FileOutputStream(pdffile);
	        out = new java.io.BufferedOutputStream(out);
	        
	        try {
	            Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, foUserAgent, out);
	            TransformerFactory factory = TransformerFactory.newInstance();
	            Transformer transformer = factory.newTransformer(new StreamSource(xsltfile));
	            transformer.setParameter("versionParam", "2.0");
	            Source src = new StreamSource(xmlfile);
	            Result res = new SAXResult(fop.getDefaultHandler());
	            transformer.transform(src, res);
	            
	        } finally {
	            out.close();
	        }
        
        } catch (Exception e) {
            e.printStackTrace(System.err);
            System.exit(-1);
        }
	}
 

Neue Beiträge

Zurück