web-dev-qa-db-ja.com

PDFBoxを使用してHTMLからPDFファイルを作成するには?

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が閉じられます。

13
vsingh

PDFレンダラーへのHTMLを探していました。iTextを使用していました。ApachePDFBoxでも同じことをしようとしていました。しかし、実行できないようです。

Apache FOP を使用するか、iTextを使用し続けることができます。

誰かが興味を持っている場合のiTextソリューションは次のとおりです: Java Render XML Document as PDF

PDFボックスを使用してマージするためのソリューションを探している場合は、ここに Apapche pdfボックスを使用してPDFファイルをマージします

13
vsingh