2013-03-22 178 views
2

有什麼辦法將HTML錶轉換爲圖像文件?我有一個HTML表格,其中包含像Labels,GridView和CheckBoxes這樣的控件。我們如何將此錶轉換爲用於創建PDF文件的圖像文件?將HTML錶轉換爲圖像文件

+0

你將不得不模擬瀏覽器的渲染。對我來說,這似乎是一項非常體面的任務。 – 2013-03-22 16:15:11

+0

它需要首先成爲圖像嗎? PDF生成器應該採取HTML罰款。 – MikeSmithDev 2013-03-22 16:17:25

+0

MikeSmithDev:我檢查了PDF生成器,但沒有得到確切的一個.. :( – MAC 2013-03-22 16:18:50

回答

2

如果這是一個一次性的,加載它在瀏覽器中,並採取截圖(按Alt-PrtScr上只是當前的應用程序窗口)

如果你需要重複做這件/以自動方式,您可以自動執行browser control或者您也可以使用模擬瀏覽器

你也應該看看WebKit2Png這會使以同樣的方式爲Chrome瀏覽器/其他WebKit瀏覽器的頁面,然後將它保存爲PNG格式。它可以選擇模擬的JavaScript /等太

同樣,有一個wkhtmltopdf這在所有平臺上

2

這不是一個簡單的任務工作。最終,你需要一個HTML渲染器來將HTML轉換爲像素。

幸運的是,你不需要自己寫。您可以使用WebBrowser control

您可以在文章Creating Website Thumbnails in ASP.NET中看到我寫的一些代碼,用於從給定的URL中提取縮略圖圖像。

+0

我實際上做了類似的事情來創建網站縮略圖,我會指出WebBrowser控件需要一個STA線程,在多線程環境中它可能有點複雜。一些關於模態對話的缺陷從未被清除,導致線程等待它最終被回收。我不是說不這樣做,只是它有類似的問題來自動化服務器上​​的辦公室 – Basic 2013-03-22 17:05:37

+0

是的,我解決了STA問題在我的文章中如果你找到了一種避免這種情況的方法,請分享 – 2013-03-22 17:06:49

+0

道歉Jonathan,我撇了撇嘴,沒有發現,我做了幾乎完全一樣的事情 - 事實上,我有機會使用你的代碼作爲參考,它看起來很熟悉。我在一個多線程的控制檯應用程序中使用它,它使事情變得有趣,並導致在用戶桌面上顯示「無法解釋的」安全警告對話框/等。 – Basic 2013-03-22 17:15:11

0

轉換HTML Table放到圖像文件

  $("#selfAssessmentPowerPointDownload").on('mouseover', function() { 
 
       var element = $("#html-content-holder"); // global variable 
 
       var getCanvas; // global variable 
 
       html2canvas(element, { 
 
        onrendered: function (canvas) { 
 
         getCanvas = canvas; 
 
         var imgageData = getCanvas.toDataURL("image/png"); 
 
         var newData = imgageData.replace(/^data:image\/png/, "data:application/octet-stream"); 
 
         $("#selfAssessmentPowerPointDownload").attr("download", "gridData.png").attr("href", newData); 
 
        } 
 
       }); 
 
      });
<button id="selfAssessmentPowerPointDownload">Download</button> 
 

 

 
<table id="html-content-holder"></table>

+0

這是一個答案嗎?當給出一個答案時,最好給出[一些解釋,爲什麼你的答案](http://stackoverflow.com/help/how-to-answer)是一個。 – 2017-03-24 06:25:38

0

Datatables是與表工作了強大的jQuery插件。數據表提供的選項之一是從你的表格中生成pdf或excel。你可以在它的網站上看到很多例子。