我有一個網頁,其中有一個畫布js圖表。當我生成pdf時,唯一的canvas js圖表不會顯示在pdf中。 我該如何解決這個問題?將網頁導出到pdf
回答
我以前有過這個問題,我們最後用的是:http://www.highcharts.com/然後輸出到png - >http://www.highcharts.com/docs/export-module/export-module-overview。
經過svg-> png轉換後,我們使用標準庫轉換爲PDF格式。
瀏覽網站。什麼會寫在C#出口到PDF? – Vicky
好吧,你必須做圖png/gif之前,你轉換爲PDF格式。由於您已經完成了PDF轉換,因此請使用與原先相同的機制,只需確保在轉換圖像後轉換爲PDF。 –
要將JS圖表導出爲PDF,首先必須將圖表數據轉換爲畫布圖像字節流,然後轉換爲PDF。
下面的代碼將幫助您JS圖表轉換成PDF
在ASPX頁面
<asp:HiddenField ID="hfImageData" runat="server" />
<div id="dvTable">
<div class="row">
<div class="col-md-6 col-sm-6 col-xs-12">
<div class="x_panel">
<div class="x_title"> Your chart data comes here <h2> SLA </h2>
</div>
<div class="x_content">
<canvas id="canvas000"></canvas>
</div>
</div>
</div>
</div>
</div>
<asp:Button ID="btnExport" runat="server" Text="Export to PDF" CssClass="btn btn-primary" onclick="btnExport_Click" OnClientClick="return ConvertToImage(this)" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript" src="http://cdn.rawgit.com/niklasvh/html2canvas/master/dist/html2canvas.min.js"></script>
<script type="text/javascript">
function ConvertToImage(btnExport) {
html2canvas($("#dvTable")[0]).then(function (canvas) {
var base64 = canvas.toDataURL();
$("[id*=hfImageData]").val(base64);
__doPostBack(btnExport.name, "");
});
return false;
}
</script>
在Aspx.cs頁
protected void btnExport_Click(object sender, EventArgs e)
{
string base64 = Request.Form[hfImageData.UniqueID].Split(',')[1];
byte[] bytes = Convert.FromBase64String(base64);
string fileName = "Chart.pdf";
iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(bytes);
using (MemoryStream memoryStream = new MemoryStream())
{
var pgSize = new iTextSharp.text.Rectangle(1600, 1000);
Document document = new Document(pgSize, 88f, 88f, 10f, 10f);
PdfWriter writer = PdfWriter.GetInstance(document, memoryStream);
document.Open();
document.Add(image);
document.Close();
bytes = memoryStream.ToArray();
memoryStream.Close();
}
Response.Clear();
Response.Buffer = true;
Response.Charset = "";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ContentType = "application/pdf";
Response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName);
Response.BinaryWrite(bytes);
Response.Flush();
Response.End();
}
任何數據目前在div ID爲「dvTable 「當我們點擊導出時將轉換爲PDF
iTextSharp dll是必需的 –
PhantomJS聽起來像是一個選項你可以看看NReco包裝與.Net的使用https://www.nrecosite.com/phantomjs_wrapper_net.aspx
- 1. 將網頁導出爲PDF
- 2. 將網頁導出爲PDF
- 3. 使用jsPDf將網頁導出爲PDF
- 4. 將網頁導出爲pdf文件
- 5. 將當前網頁導出爲pdf
- 6. 將ASP網頁導出爲PDF
- 7. 將HTML頁導出爲PDF
- 8. 將網站導出到XML頁面
- 9. PDF到網頁
- 10. 將PDF頁面內容導出到單個頁面
- 11. JQGrid:將網格導出爲PDF
- 12. 用於將ASP.Net頁導出爲pdf/xls
- 13. 將網頁內容導出爲pdf和excel格式
- 14. 使用htm將aspx網頁導出爲pdf
- 15. 如何使用Javascript或PHP將網頁表單導出爲PDF
- 16. 我可以將圖表從網頁導出爲PDF格式嗎?
- 17. 將動態網頁導出爲pdf或excel?
- 18. 將aspx網頁導出爲pdf並下載
- 19. 將網頁中選定的div集導出爲PDF或Word
- 20. 導出一個PHP頁面到PDF
- 21. 導出多個Highcharts到多頁PDF
- 22. ASP.NET網頁到PDF
- 23. 導出PDF Telerik電網MVC
- 24. ASP.Net頁面導出爲pdf
- 25. 導出爲PDF - 多頁
- 26. ASP.Net頁面導出爲pdf
- 27. ExtJS我們如何將導出的網格數據導出到Excel/PDF
- 28. 將網頁上的PDF加載到ipad
- 29. 將ASHX的PDF返回到網頁
- 30. 將活動PDF嵌入到網頁中?
你是如何創建js圖表的?它是svg嗎? –
在jquery函數中。 – Vicky
$()。canvasjschart(); – Vicky