2017-02-22 58 views
0

我米使用jsPdf插件,通過使用這個我能下載PDF文件,而在Adobe Reader中打開該PDF文件它說110錯誤這樣做如何轉換並下載圖表爲pdf?

var data = google.visualization.arrayToDataTable(dataValues,true); 
     var chart = new google.visualization.CandlestickChart(document.getElementById(id)); 
     google.visualization.events.addListener(chart, 'ready', function() { 
      var content = '<img src="' + chart.getImageURI() + '">'; 
      $('#graph-images').append(content); 
     }); 

function generatePDF() { 
     var imageTags = $('#graph-images img'); 
     var doc = new jsPDF(); 
     doc.setFontSize(33); 
     doc.setFillColor(135, 124,45,0); 
     doc.addImage(imageTags[0], 'png', 10, 10, 150, 100); 
     doc.save('sample.pdf'); 
    } 

Can Anybody help in this,thanks。

回答

0

你應該通過圖像URI來addImage()

google.charts.setOnLoadCallback(function() { 
    var data = google.visualization.arrayToDataTable(dataValues, true) 
    var chart = new google.visualization.CandlestickChart(document.getElementById(id)) 
    chart.draw(data) 
    imgData = chart.getImageURI() 
}) 

function generatePDF() { 
    var doc = new jsPDF(); 
    doc.setFontSize(33); 
    doc.setFillColor(135, 124,45,0); 
    doc.addImage(imgData, 'png', 10, 10, 150, 100); 
    doc.save('sample.pdf'); 
} 

請檢查該現場演示,瞭解更多詳情https://jsfiddle.net/p1frmxvp/1/

UPDATE

事實證明,當我們使用jspdf 1.3.2的錯誤僅發生並使用Adobe Reader打開pdf,如here所述。目前唯一的解決方案是使用其他查看器(Chrome,Foxit Reader等)打開pdf或將jspdf降級到1.2.61。我已經更新了上面的jsfiddle以使用降級的jspdf。

+0

在Adobe Reader中打開下載的文件時,它說錯誤。處理頁面時出錯。閱讀這篇文檔時有一個問題(110)?你能幫我一下嗎? –

+0

你是說你在打開小提琴https://jsfiddle.net/p1frmxvp/中生成pdf時出錯?如果是,那麼問題出現在您的Adobe Reader中。我可以打開pdf沒有任何問題 –

+0

好吧謝謝,我要下載最新版本的Adobe閱讀器,然後我會嘗試。謝謝。 –