ASP.NET C#根据HTML页面导出PDF

在启明星采购系统里,新增了导出PDF功能。整个功能使用了第三方软件 wkhtmltopdf(下载) 官网 https://wkhtmltopdf.org/ 提供有更多版本下载

他可以把HTML页面转换为PDF,该软件简直是incredible-不可思议了,功能太强大了。

因为,我有一个HTML,引用了很多CSS,而页面基本上都是JS动态生成的,一直担心wkhtmltopdf生成的PDF会是一个空白

没相当,转换后,那些CSS和JS没有“失真”。

下面是利用C#将HTML生成PDF的代码:

           string url = "http://www.dotnetcms.org/About.aspx";             string pdf = "c:\pdf\bin\wkhtmltopdf.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");//以二进制流模式,强制下载
            Response.ContentType = "application/octet-stream";
            Response.BinaryWrite(file);

在上面代码里,url为需要传递的页面,pdf参数为wkhtmltopdf.exe为你实际安装的路径。

当然,在实际环境里,如果你使用IIS,并且希望通过ASP.NET生成PDF,需要注意权限,首先,找到应用程序所使用的应用程序池,点击“应用程序池”上的高级,有一个“标识”,将默认的ApplicationPoolIdentity修改为LocalSystem。否则,可能因为权限不足而调用exe失败。

时间: 2024-10-15 01:49:20

ASP.NET C#根据HTML页面导出PDF的相关文章

JSP页面导出PDF格式文件

JSP页面导出PDF格式文件基本在前端页面可以全部完成 <script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.0.272/jspdf.debug.js"></script&

ASP.NET 开源导入导出库Magicodes.IE 导出Pdf教程

基础教程之导出Pdf收据 说明 本教程主要说明如何使用Magicodes.IE.Pdf完成Pdf收据导出 要点 导出PDF数据 自定义PDF模板 导出单据 如何批量导出单据 导出特性 PdfExporterAttribute Orientation: 方向(横向或纵向) PaperKind: 纸张类型(默认A4) IsWriteHtml: 是否输出HTML模板 ExporterHeaderAttribute DisplayName: 显示名称 主要步骤 1.安装包Magicodes.IE.Pdf

利用itextsharp导出pdf

在项目中,客户要求把一些表格导出pdf格式,在网上找了好久终于发现一个完美的解决方案,利用itextsharp可以很方便的导出pdf文件,不说太多了,直接上图,有图有真相 首先是页面图片 然后是导出的pdf图片 导出pdf代码如下: //导出Mold pdf文档 public void exportpdf_Mold(string quotenum, string fullpath) { string pdfName = quotenum + ".pdf"; string savePat

iText导出pdf、word、图片

一.前言 在企业的信息系统中,报表处理一直占比较重要的作用,本文将介绍一种生成PDF报表的Java组件--iText.通过在服务器端使用Jsp或JavaBean生成PDF报表,客户端采用超级连接显示或下载得到生成的报表,这样就很好的解决了B/S系统的报表处理问题. 二.iText简介 iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库.通过iText不仅可以生成PDF或rtf的文档,而且可以将XML.Html文件转化为PDF文件. iText的

asp.net里如何清空页面缓存的后台代码

asp.net里如何清空页面缓存的后台代码(因为只有GET请求会有缓存)   题描述:当使用ajax的时候,很有可能出现同一次请求,这里.比如buttonA修改了数据,而buttonB导出数据,如果两个按钮都采用ajax的技术来做的话,实际上buttonB在第二次点击以后,不会重新从数据库里获得一次数据,而是直接将缓存页发送给客户端.恩-这么做是好的,但是不是我们希望的.所谓使用了Ajax产生了不可预计的结果,有一部分可能也许就在于此.所以我要做的就是每次GET请求的时候都去清空缓存,然后再生成

动态将ASPX生成HTML网页并将网页导出PDF

1.首先要找到wnvhtmlconvert.dll这个文件,并引入项目中. 2.Server.Execute("pos.aspx?id=" + ids); 执行相应的aspx网页 3.pos.aspx网页中有这样的一个方法,此方法用来生成html页面 protected override void Render(HtmlTextWriter writer) { string htmlname = "POSDemo"; string fileName = string

displaytag无法导出pdf、rtf?????? 已解决

因为做毕业设计的需要,所以从今天开始需要考虑分页处理的问题,一开始是在网上寻找可用的开源框架予以借鉴使用,于是在 经过查阅网上的许多文章资料后,我将目标锁定到了display tag上,关于display tag的用法,主要集中在几个方面:分页(含 内存分页与数据库分页).对列排序.导出数据. 网上的相关资料确实很多,但是很多转载的文章大同小异的也很多.于是就为一些问题埋下了伏笔. 我按照网上的大部分说法,导入了相关包: displaytag-1.2.jar commons-lang-2.6.j

MyReport增加导出PDF功能

生成PDF的第三方库AlivePDF AlivePDF 0.1.5RC(For FB) MyReportto PDF的代码示例 //外部方式向ReportViewer.Instance添加自定义PDF导出按钮 privatefunctionInitCustomButtons():void { varexportPDF:ToolButton = newToolButton(); exportPDF.width = 23; exportPDF.setStyle("icon",Asset.I

java 导出pdf

package hb.controller; import java.awt.image.BufferedImage;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import jav