Khi bạn in từ Google Documents (sử dụng liên kết "in", không phải Tập tin/In), bạn sẽ in một tệp PDF được định dạng độc đáo thay vì dựa vào công cụ in của trình duyệt. Điều này cũng đúng đối với một số báo cáo trong Google Analytics. . . các báo cáo được in dưới dạng PDF rất đẹp. Làm thế nào để họ làm điều đó? Tôi không thể tưởng tượng họ sử dụng một cái gì đó như Adobe Acrobat để tạo điều kiện cho nó, nhưng có lẽ họ làm. Tôi đã nhìn thấy một số chuyển đổi HTML sang PDF đắt tiền trực tuyến theo thời gian nhưng chưa bao giờ mệt mỏi nó. Có suy nghĩ gì không?Làm thế nào để Google tạo các báo cáo PDF tuyệt vời trong Analytics và khi bạn in Tài liệu Google, v.v ...?
Trả lời
Nếu bạn đang xem cụ thể cách Google thực hiện. Nếu bạn nhìn vào trang PDF Properties, họ sử dụng Prince 6.0 (xem princexml.com)
Có rất nhiều trình tạo PDF khác ngoài đó. Tôi đã thành công rực rỡ với PDFlib vì những công việc khó khăn.
iTextSharp và iText là mã nguồn mở và thư viện tạo PDF miễn phí cho .NET và Java tương ứng.
Tôi đã sử dụng chúng để tạo báo cáo PDF trước đây và khá hài lòng với kết quả.
Rendering một PDF là khó khăn, vấn đề phức tạp. Tuy nhiên tạo ra chúng, thì không. Chỉ cần tạo một số thực thể và tạo ra. Đó là về cùng một miền vấn đề khi tạo HTML cho trang web so với hiển thị (hiển thị) nó.
Vâng, tôi nghi ngờ nó dễ dàng như tạo HTML. . . Ý tôi là, trước hết, PDF không phải là định dạng có thể đọc được của con người và nó không phải là văn bản thuần túy (như SVG). Trong thực tế, tôi sẽ so sánh một tập tin SVG với một tập tin PDF trong đó với cả hai bạn có quyền kiểm soát chính xác bố trí trên một trang in. Nhưng SVG thì khác ở chỗ nó là XML (và cũng ở chỗ nó không được hỗ trợ hoàn toàn trong trình duyệt ... vẫn nhìn vào SVG). Hãy nghĩ về nó, SVG có lẽ sẽ là câu hỏi tiếp theo của tôi.
Tôi biết Google không sử dụng .NET và tôi nghi ngờ họ sử dụng Java do đó phải có một số thư viện khác mà họ sử dụng để tạo tệp PDF. Quan trọng hơn, làm cách nào để tạo PDF mà không phải viết lại mọi thứ dưới dạng PDF thay vì HTML? Ý tôi là, phải có một số mã được chia sẻ giữa khi họ tạo chế độ xem HTML thay vì chế độ xem PDF. Hãy suy nghĩ về nó, có lẽ xem PDF và xem HTML là hoàn toàn riêng biệt và họ chỉ có hai quan điểm và do đó tại sao phong cách phát triển MVC dường như là con đường để đi.
Tôi đã thành công với pd4ml. Nó có một thư viện thẻ, do đó bạn có thể biến bất kỳ HTML hiện có nào thành PDF bằng cách
<pd4ml:transform>
<!-- Your HTML is here -->
<c:import url="/page.html" />
</pd4ml:transform>
Thay thế miễn phí tuyệt vời cho PrinceXML: wkhtmltopdf. Có rất nhiều thư viện trình bao bọc cho các ngôn ngữ khác nhau - nhưng tôi chỉ sử dụng các ngôn ngữ Ruby. Tuy nhiên, sản phẩm của nó tương đương với PrinceXML IMHO.