我正在使用jQuery/FLOT繪製圖形,我希望用戶能夠下載圖形的PDF版本。我正在使用ColdFusion編寫PDF。創建圖之後,我通過ajax將圖div的html發送到使用cfdocument編寫pdf的CF腳本。問題是,在PDF中,它只顯示軸和標籤,而不是實際的圖形數據。有人知道一種方法來獲取在畫布上動態創建的實際圖像嗎?FLOT數據作爲圖像寫入PDF
回答
我不認爲這已在海軍報已實施尚未見http://code.google.com/p/flot/issues/detail?id=175
感謝您的鏈接。我將採用cfchart和web圖表XML文件 – Kelly 2010-04-15 16:09:17
退房CutyCapt(http://cutycapt.sourceforge.net/),似乎與海軍報工作。
你也可以把你的canvas
的快照使用toDataURL()
和替代品在img
元素,PDF轉換器應該能夠處理:
var canvas = $("canvas.base")[0];
var tmpimg = canvas.toDataURL("image/png");
//console.log(tmpimg);
$("body").append('<img src="'+tmpimg+'"/>');
注意,產生的圖像是只是的canvas
內容(即圖形本身)並且不包括軸或圖例。您可能必須在flot佔位符中對圖像進行一些棘手的替換/對齊操作,但它會爲您提供一個可用的圖像。
這只是對this question的接受答案的輕微重新工作,我認爲這裏有人可能會發現它有用。
您可以使用像phantomJS(WebKit引擎)這樣的無頭瀏覽器在服務器上呈現圖表。
您只需要一個腳本獲取URL並將輸出呈現爲控制檯流的Base64編碼字符串或寫入圖像。
據我所知,這是唯一的半瀏覽器獨立的方式來做到這一點。
下面是phantomjs一個腳本,輸出給網頁的base64編碼圖像串:
var page = require('webpage').create();
var system = require('system');
var pageUrl = system.args[1];
page.viewportSize = { width: 1280, height: 720 };
page.open(pageUrl , function() {
console.log(page.renderBase64('PNG'));
phantom.exit();
});
這是實現圖形或PDF圖形的最穩健的方式。 htmltocanvas和canvastoimage腳本非常有限。 PhantomJS呈現包含畫布的HTML,就像真正的Web瀏覽器一樣。如果您爲html-to-image/pdf設置自己的Web服務,併爲要轉換爲圖像或PDF的每個頁面創建一個特殊的打印友好頁面,此解決方案可能效果最佳。 – Ryan 2014-12-03 17:19:59
- 1. 輸入圖像數據爲PDF的iText
- 2. PDFBox的:寫入HD圖像PDF
- 3. 將flot圖保存爲圖像
- 4. Flot圖不繪製數據
- 5. 將ITPC元數據寫入圖像
- 6. Node.js寫入原始圖像數據
- 7. Libjpeg將圖像寫入內存數據
- 8. 讀取和寫入圖像數據C++
- 9. 從Java將字節數組寫入Java數據庫作爲圖像或文件
- 10. 如何使用Images.jl將圖像寫入浮動數組中作爲圖像
- 11. Java圖像爲PDF
- 12. 寫入圖像
- 13. 寫入圖像
- 14. 將數據作爲層級寫入Plist
- 15. 用flot圖創建PDF報告
- 16. 查看pdf作爲圖像流 - php
- 17. 將PDF作爲圖像的PhantomJs
- 18. 使用PDF作爲圖像Rails
- 19. 使用PDF文件作爲圖像
- 20. 從數據庫讀取圖像或向數據庫寫入圖像
- 21. Php pdf如何插入圖像作爲表背景
- 22. mod_pagespeed將所有圖像重寫爲數據:圖像格式
- 23. 將數據寫入數據庫,包括圖像
- 24. Flot線條圖和大型JSON數據blob未格式化爲Flot API規格
- 25. 將數據插入到Flot中
- 26. 將圖像更改爲嵌入數據
- 27. 從PDF中的圖像讀取數據
- 28. 在java中的灰度圖像中寫入像素數據
- 29. 插入圖像作爲GGPLOT2
- 30. 帶AJAX數據的Flot條形圖
他們通過對下一個版本(0.8)畫布文本插件添加了該支持。您可以使用該測試版:http://www.flotcharts.org/blog/2013/03/06/announcing-flot-08-beta/執行此操作後,您需要直接訪問plot canvas元素並獲取它作爲圖像,然後將圖像上傳到服務器並將其添加到您的PDF。 – Hoffmann 2013-03-14 16:50:48
您可以檢查此答案:http://stackoverflow.com/a/30811190/1953178 – 2015-06-12 20:11:13