Apache FOP boş bir sayfa oluşturma

0 Cevap java


Apache FOP ve Java kullanarak bir PDF oluşturmak için çalışıyorum. Ben komut satırı FOP kullanarak bir pdf oluşturmak geçerli bir xsl-fo dosyası kullanıyorum.

Ben Apache FOP kitaplıkları kullanarak FOP çalıştırmayı denediğinizde benim sorun oluşur. Bir java / php köprüden Koşu. Gelin düzgün yapılandırılmış ve java / php iletişim edilir. Java tarafta ben xsl-fo içeren bir dize alır ve bir pdf içeren bir dize döndüren bir işlevi var. Ben bu işlevi yürütmek ve dosya daha sonra stdout veya java / php köprünün çıktı yönlendirmek zaman pdf boş görünür ve büyüklüğü kabaca ben komut satırı üzerinden almak doğru pdf çift olmasıdır. Ben kodlama sorunu çeşit yaşıyorum varsayalım.

Herkes önce bu sorunu gördü?

İşte benim java kodu

  kamu String ConvertFoToPdf (fo String) {

// Will contain the results after the transformation. ByteArrayOutputStream out = new ByteArrayOutputStream(); // Input string StringReader sr = new StringReader(fo); // Should be UTF-8; String strEncoding = Charset.defaultCharset().name(); // Resulting string. String pdfResult = ""; try { // Get an instance of the fop factory FopFactory fopFactory = FopFactory.newInstance(); FOUserAgent foUserAgent = fopFactory.newFOUserAgent(); // Construct fop with desired output format Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, foUserAgent, out); // Setup JAXP using identity transformer TransformerFactory factory = TransformerFactory.newInstance(); Transformer transformer = factory.newTransformer(); // Setup input stream Source src = new StreamSource(sr); // Resulting SAX events (the generated FO) must be piped through to FOP Result res = new SAXResult(fop.getDefaultHandler()); // Set the encoding on the transformer. transformer.setOutputProperty(OutputKeys.ENCODING, strEncoding); // Start XSLT transformation and FOP processing transformer.transform(src, res); // Put the byte array stream into a string pdfResult = out.toString(strEncoding); } // Catch all exceptions for simplicities sake. catch (Exception e){ // Log } return pdfResult; }</pre></code>

0 Cevap