2012-02-27 34 views
6

Tôi đang đánh giá princexml, và nó rất rất tốt cho đến nay. Tuy nhiên, một vấn đề nhỏ. Có cách nào để lưu một đồ thị được tạo bởi highcharts vào princexml, trên trình duyệt không?Làm thế nào để sử dụng highcharts với princeXML?

Tôi hiểu rằng tôi cần tạo biểu đồ dưới dạng hình ảnh, trên canvas, nhưng không chắc chắn cách đưa biểu đồ vào princexml. Bất kỳ ý tưởng?

Trả lời

2

Một điều bạn có thể làm là chỉ nạp SVG được tạo bởi HighCharts vào hoàng tử.

Một vấn đề bạn sẽ có với giải pháp này là IE8 sẽ không tạo SVG, nhưng VML, mà hoàng tử không thể hiển thị. Bạn có thể đưa javascript của bạn trực tiếp đến Prince, nhưng chúng tôi vẫn chưa thử nghiệm giải pháp này.

Edit:

Tôi thực sự chỉ là thử nghiệm cho ăn Hoàng tử với javascript rằng sẽ tạo ra SVG ... nhưng không có may mắn, vì vậy chúng tôi đang mắc kẹt với nó ăn pre-rendered SVG. Có thể phải làm điều đó phía máy chủ bằng cách sử dụng một thời gian chạy javascript.

3

Tôi làm việc tại DocRaptor (HTML sang PDF API, sử dụng Hoàng tử XML cho render PDF) và chúng tôi chỉ công bố một bài viết trên blog về việc thêm Highcharts để PDF:

Adding Highcharts to PDFs

Về cơ bản, bạn chỉ cần sử dụng công cụ JavaScript của chúng tôi (khác biệt với công cụ JavaScript của Prince và chạy trước khi chúng tôi chuyển quá trình này sang Prince) và tắt hoạt ảnh trong mã hiển thị biểu đồ của bạn.

+0

Tôi có thể tìm thấy động cơ Javascript của bạn ở đâu? Có phải mã nguồn mở không? – Thijs

+2

Nó sử dụng phantomjs để xử lý thao tác javascript. –

0

Công cụ JavaScript của PrinceXML không đủ mạnh để làm biểu đồ với các thành phần như Highcharts.

Vì vậy, những gì tôi đã làm là chạy trang của tôi thành PhantomJS để nó chạy JS và tạo các phần tử SVG trong DOM và sau đó cho kết quả vào PrinceXML.

Hãy chắc chắn để vô hiệu hóa hình ảnh động nếu không bạn sẽ in khung 0 của nó:

Highcharts.setOptions({ 
 
       plotOptions: { 
 
        series: { 
 
         animation: false //Animations prevent proper PDF generation of charts! 
 
        } 
 
       } 
 
      });

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