2013-10-31 18 views
9

Tôi đang cố tạo một tệp PDF từ nội dung HTML.Cách tạo tệp PDF từ HTML bằng PDFBox?

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); 

} 

Khi tôi thực hiện điều này byte[] và lưu vào tệp, tệp trống. Tôi đang sử dụng PDStream để nhúng input stream vào tài liệu

Từ http://pdfbox.apache.org/apidocs/

public PDStream(PDDocument doc, 
       InputStream str) 
     throws IOException 

Đọc toàn bộ dữ liệu từ dòng nhập dữ liệu và nhúng nó vào trong document, điều này sẽ đóng InputStream.

Trả lời

12

Tôi đang tìm trình kết xuất HTML to PDF. Chúng tôi đã sử dụng iText. Tôi đã tìm cách làm tương tự với Apache PDFBox. Nhưng, có vẻ như nó không thể được thực hiện.

Tôi có thể sử dụng Apache FOP hoặc tiếp tục sử dụng iText.

Dưới đây là giải pháp iText nếu có ai quan tâm: Java Render XML Document as PDF

Nếu bạn đang tìm kiếm một giải pháp cho việc sáp nhập sử dụng hộp PDF, ở đây nó là Merge pdf files using Apapche pdf box

+3

Tôi đang tìm kiếm một thay thế cho iText, quy tắc cấp phép của nó không hoạt động tốt với các dự án nguồn đóng – Hoffmann

+0

@Hoffman Giải pháp pdf apache trong liên kết ở trên không có hiệu quả với bạn? – vsingh

+1

pdfbox apache không hỗ trợ chuyển đổi HTML sang PDF. Gần đây đã có một cuộc thảo luận về slashdot về các thư viện pdf java, tôi đã tìm hiểu về Flying Saucer sử dụng iText v2 là LGPL, tôi chưa thử nghiệm, nhưng tôi sẽ để lại thảo luận ở đây để tham khảo trong tương lai: http: // ask .slashdot.org/comments.pl? sid = 5505091 & cid = 47625223 – Hoffmann

Các vấn đề liên quan