Tôi đã sử dụng PhantomJS để tạo hình ảnh png từ các trang web và nó có thể tạo PDF cũng như chất lượng thường tốt. Thuộc tính này được gọi là chụp màn hình và được mô tả here. Các định dạng được hỗ trợ là PNG, JPEG, GIF và PDF.
Khi được chuyển đổi sang PDF, văn bản của các trang được giữ lại dưới dạng văn bản.
Sau khi thử nghiệm vài thư viện hoặc chương trình khác, tìm thấy PhantomJS giải pháp hoàn hảo nhất. PhantomJS sử dụng WebKit, một công cụ dựng hình và dựng hình thực sự.
Một vài ví dụ ở số https://github.com/ariya/phantomjs/wiki/Examples. Trong phần Rendering/rasterization có được nhắc đến kịch bản sau đây giúp bạn trong quá trình này:
rasterize.js rasterizes a web page to image or PDF
PhantomJS QuicStart Guide nói:
Sản xuất ra PDF là có thể, ví dụ từ một bài viết trên Wikipedia:
phantomjs rasterize.js 'http://en.wikipedia.org/w/index.php?title=Jakarta&printable=yes' jakarta.pdf
hoặc khi tạo máy in sẵn sàng cheat sheet:
phantomjs rasterize.js http://www.nihilogic.dk/labs/webgl_cheat_sheet/WebGL_Cheat_Sheet.htm webgl.pdf
Tôi đã thử nghiệm pdf thế hệ của vài trang và nếu trang sau tiêu chuẩn, nó tạo ra kết quả tốt. Văn bản có thể chọn và có thể in được với chất lượng cao, nhưng trên một số trang bố cục bằng pdf không giống như trong png.Dưới đây là hai ảnh chụp màn hình được tạo ra bằng lệnh:
$ phantomjs rasterize.js 'http://windows.microsoft.com/en-US/windows/home' microsoft.png
$ phantomjs rasterize.js 'http://windows.microsoft.com/en-US/windows/home' microsoft.pdf

Tôi cũng http://lab.simurai.com/buttons/ thử nghiệm. Pdf và png rất giống nhau và dưới đây là một mẫu pdf mà tôi rasterized đến 5641px rộng và cắt một khu vực của nó. Như trong ví dụ PDF trước, văn bản có thể chọn trong PDF và như bạn thấy, văn bản sắc nét (không có antialias!).

CÀI ĐẶT
tôi đã cố gắng đầu tiên để cài đặt Qt thư viện và PhantomJS trên Centos5 biên dịch từ mã nguồn, nhưng không may mắn. Sau đó trên Ubuntu 11.10 và quá trình này là không đau:
tôi tải http://phantomjs.googlecode.com/files/phantomjs-1.7.0-linux-x86_64.tar.bz2 và trích xuất nó bằng cách sử
tar -xjvf phantomjs-1.7.0-linux-x86_64.tar.bz2
Và sau đó sao chép phantomjs thực thi để bin dir của hệ thống:
$ cp phantomjs-1.7.0-linux-x86_64/bin/phantomjs /usr/local/bin/phantomjs
và phantomjs đã sẵn sàng chạy.
Nếu PDF được tạo không tốt, bạn có thể thử cập nhật Webkit, nhưng tôi cho rằng kết quả là đủ. PhantomJS có chu kỳ cập nhật tuyệt vời, vì vậy các lỗi nên được sửa trong thời gian hợp lý.
PhantomJS FAQ cũng có thông tin tốt về khả năng.
Tại sao điều này vẫn đóng? Mọi câu hỏi đều gây ra nhiều "tranh luận, tranh cãi, bỏ phiếu hoặc thảo luận mở rộng" hơn thế này. –
wkhtml2pdf now * does * render canvas ... xem wkhtmltopdf.org. Thumbs up cho wkhtml2pdf ... nó là đồng bằng tuyệt vời để có chỉ là một thực thi thay vì đối phó với 7000 + java lớp học của fop –