2013-03-14 12 views
13

Tôi đang tìm một tốt, mã nguồn mở, Trình tạo/thư viện PDF sẽ chuyển đổi html (có kiểu dáng, v.v.) thành tệp PDF.Trình chuyển đổi PDF của Google App Engine

Yêu cầu:

  • Phải Java hay Python và chạy trên Google App Engine.
  • Phải là mã nguồn mở, miễn phí.
  • Phải dễ sử dụng/sử dụng.

Có Tôi đã tự tìm kiếm chính mình - Tôi đã thử nhiều "giải pháp" mà tôi đã tìm thấy trên Google, v.v. Chưa thỏa mãn tôi. Nhiều người dường như không đầy đủ, lỗi hoặc không hoạt động tốt trên GAE. Vì vậy, tôi figured tôi sẽ kháng cáo cho cộng đồng StackOverflow cho ý kiến ​​hoặc đề xuất.

+6

Bạn đã xem Pisa https://pypi.python.org/pypi/pisa chưa. Trên thực tế đề cập đến các công cụ/libs bạn đã xem xét sẽ giúp đỡ. –

+4

Đề cập đến những gì bạn đã thử, nếu không câu hỏi này có thể bị đóng. – Lipis

+0

Xin chào, bạn đã nhận được giải pháp cho việc triển khai JAVA chưa. Nếu có, vui lòng cho tôi biết –

Trả lời

10

Đối với HTML/hình ảnh sang PDF, tôi sử dụng thư viện Python http://www.xhtml2pdf.com/ sử dụng Pisa, Reportlab, pyPdf và html5lib chạy trên GAE. Tôi đã sử dụng nó để tạo ra các bài viết PDF rất đẹp với hình ảnh nhúng và một khi tôi đã tìm ra cách để có được kích thước trang đúng, tôi đã tìm thấy đây là một thư viện rất tốt.

Bạn sẽ cần thư viện xhtml2pdf và nó phụ thuộc: https://github.com/chrisglass/xhtml2pdf

Tôi ném cùng một số ví dụ mã Python và đặt nó trong pastebin này: http://pastebin.com/FFEZjNs3

Các pdf_data bạn nhận được ở cuối là nhị phân Dữ liệu tệp PDF. Html_data bạn cung cấp cho pisa thực sự là bất kỳ chuỗi nào chứa tài liệu HTML.

Có một số nội dung được đề xuất đưa vào HTML của bạn để có được đầu ra PDF được định dạng tốt. Đây là một tài liệu HTML ví dụ tương tự như mẫu cơ sở mà tôi sử dụng. Lưu ý các lĩnh vực meta tác giả và CSS @page: http://pastebin.com/q1wRm9nJ

Dưới đây là các tài liệu về CSS tương thích và HTML: https://github.com/chrisglass/xhtml2pdf/blob/master/doc/usage.rst#supported-css-properties

Bạn có thể bao gồm hình ảnh bằng cách sử dụng URL của hình ảnh bên ngoài hoặc bạn có thể sử dụng dataUri và xhtml2pdf có chức năng tạo các "pisa.makeDataURI()" này.

Hy vọng điều đó sẽ hữu ích.

+0

Câu trả lời hay, đây chỉ là những gì tôi cần! – Fortes