HTMLコンテンツからPDFを作成しようとしています。
public byte[] generatePdf(final XhtmlPDFGenerationRequest request) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PDDocument document = new PDDocument();
InputStream stream = new ByteArrayInputStream(request.getContent()
.getBytes());
PDStream pdstream = new PDStream(document, stream);
document.save(baos);
document.close();
return this.toByteArray(baos);
}
このbyte[]
を取得してファイルに保存すると、ファイルは空白になります。入力ストリームをドキュメントに埋め込むためにPDStream
を使用しています
http://pdfbox.Apache.org/apidocs/ から
public PDStream(PDDocument doc,
InputStream str)
throws IOException
入力ストリームからすべてのデータを読み取り、ドキュメントに埋め込みます。これにより、InputStream
が閉じられます。
PDFレンダラーへのHTMLを探していました。iTextを使用していました。ApachePDFBoxでも同じことをしようとしていました。しかし、実行できないようです。
Apache FOP を使用するか、iTextを使用し続けることができます。
誰かが興味を持っている場合のiTextソリューションは次のとおりです: Java Render XML Document as PDF
PDFボックスを使用してマージするためのソリューションを探している場合は、ここに Apapche pdfボックスを使用してPDFファイルをマージします