2012-01-31 46 views
11

Tôi có một hiển thị được tạo bởi d3 (một thư viện trực quan javascript tương tự như Protovis hoặc Raphael, trong đó vẽ các công cụ bằng cách sử dụng các phần tử SVG). Vis là tương tác, do đó người dùng có thể tương tác và chỉnh sửa nó. Khi người dùng hài lòng với hình ảnh của mình, tôi muốn người dùng có thể xuất trực quan hóa này dưới dạng PDF. Tôi đã thử một số thư viện HTML sang PDF và chúng không hoạt động với các phần tử SVG.Xuất phần tử SVG sang PDF?

Sẽ ổn nếu giải pháp là phía máy khách hoặc phía máy chủ. Tôi đang sử dụng phía máy chủ PHP nhưng triển khai Python hoặc Java cũng có thể hoạt động.

Hỗ trợ trình duyệt: Lý tưởng nhất nó sẽ hỗ trợ tất cả các trình duyệt hiện đại, nhưng tối thiểu tôi muốn hỗ trợ các phiên bản mới nhất của cả trình duyệt Firefox và webkit.

+0

** jsPDF ** có thể được sử dụng để thêm SVG vào tệp PDF. Xem cuộc hội thoại này: http://stackoverflow.com/questions/5913338/embedding-svg-in-pdf-exporting-svg-to-pdf-using-js – stackex

Trả lời

6

Tôi không biết bất kỳ thư viện PDF mạnh nào ở phía máy khách.

Cách nhanh nhất có thể là gửi nội dung svg đến máy chủ và sử dụng một cái gì đó như batik cho java để chuyển svg sang pdf và sau đó gửi phản hồi cho khách hàng một lần nữa.

Đây là một liên quan SO for the converstion.

+2

Highcharts (sử dụng biểu đồ svg ở phía máy khách) sử dụng Batik để tạo pdf/jpg theo cách này và nó hoạt động rất tốt. (http://www.highcharts.com/documentation/how-to-use#exporting). – eolsson

+0

Chà. tuyệt quá. Tôi biết về Highcharts, nhưng không biết họ có tích hợp không. Cảm ơn các liên kết! –

+0

Chỉ cần có Batik làm việc, nhờ có liên kết đến cuộc thảo luận đó. – raviparikh

5

Ngoài ra còn có wkhtml2pdf, có thể hiển thị mọi thứ webkit có thể dưới dạng PDF. Nếu bạn muốn hiển thị kết hợp SVG và HTML hoặc muốn chạy một số JavaScript trước khi chụp nhanh bản PDF, thật tuyệt vời cho điều đó.

1

PhantomJS cũng có thể rasterize url/html sang PDF. Cùng một phụ trợ (QTWebKit) với wkhtml2pdf.

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