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>