ASP.NET C#根據(jù)HTML頁面導(dǎo)出PDF
當(dāng)前位置:點(diǎn)晴教程→知識管理交流
→『 技術(shù)文檔交流 』
(1)導(dǎo)出PDF 在啟明星采購系統(tǒng)里,新增了導(dǎo)出PDF功能。整個功能使用了第三方軟件 wkhtmltopdf(下載) 官網(wǎng) https://wkhtmltopdf.org/ 提供有更多版本下載 他可以把HTML頁面轉(zhuǎn)換為PDF,該軟件簡直是incredible-不可思議了,功能太強(qiáng)大了。 下面是利用C#將HTML生成PDF的代碼: string url = "http://www.dotnetcms.org/About.aspx"; string pdf = "c:pdfinwkhtmltopdf.exe" string filename = Guid.NewGuid().ToString(); string pdfpath = filename + ".pdf"; Process p = System.Diagnostics.Process.Start(pdf, url + " "" + Server.MapPath(pdfpath)+"""); p.WaitForExit(); //方法1,使用下面代碼,在線打開 // Response.Redirect(pdfpath); //方法2,使用下面代碼,讓客戶下載 FileStream fs = new FileStream(Server.MapPath(pdfpath), FileMode.Open); byte[] file = new byte[fs.Length]; fs.Read(file, 0, file.Length); fs.Close(); Response.Clear(); Response.AddHeader("content-disposition", "attachment; filename=" + filename + ".pdf");//以二進(jìn)制流模式,強(qiáng)制下載 Response.ContentType = "application/octet-stream"; Response.BinaryWrite(file);Code language: Javascript (javascript) 在上面代碼里,url為需要傳遞的頁面,pdf參數(shù)為wkhtmltopdf.exe為你實際安裝的路徑。 當(dāng)然,在實際環(huán)境里,如果你使用IIS,并且希望通過ASP.NET生成PDF,需要注意權(quán)限,首先,找到應(yīng)用程序所使用的應(yīng)用程序池,點(diǎn)擊“應(yīng)用程序池”上的高級,有一個“標(biāo)識”,將默認(rèn)的ApplicationPoolIdentity修改為LocalSystem。否則,可能因為權(quán)限不足而調(diào)用exe失敗。
(2)導(dǎo)出PDF的權(quán)限 啟明星部分系統(tǒng)需要ASP.NET進(jìn)程執(zhí)行exe程序,但是,默認(rèn)ASP.NET并不被允許執(zhí)行exe程序,因此需要修改進(jìn)程標(biāo)識符。 2.1找到應(yīng)用程序所使用的應(yīng)用程序池。 參考下圖,以edoc為例,系統(tǒng)使用的是edoc應(yīng)用程序池
2.在應(yīng)用程序池里,找到edoc,然后點(diǎn)擊“高級設(shè)置” 3.找到“標(biāo)識”,修改為“Local System”。Local System默認(rèn)具有administrators權(quán)限。 您也可以使用自定義賬戶(在edoc里,預(yù)覽Office使用內(nèi)置的administrator,預(yù)覽Dwg也是用內(nèi)置的administrator)。 該文章在 2023/5/15 23:01:38 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |