C# 生转换网页为pdf

问题描述

怎么把一个网页转成PDF文件,求助啊~~

解决方案

解决方案二:
iTextSharp控件可以,在网上搜索一下,以前用过很灵活的
解决方案三:
兄弟,有什么实例代码么,以前没用过,突然公司要我弄这个,头都大了啊~
解决方案四:
引用1楼liulang457的回复:

iTextSharp控件可以,在网上搜索一下,以前用过很灵活的

求助啊
解决方案五:
支持1楼的http://www.codeproject.com/Questions/203481/HTML-convert-to-PDF-using-itextsharp楼主可以看看
解决方案六:
引用4楼zhouxingyu_kingstar的回复:

支持1楼的http://www.codeproject.com/Questions/203481/HTML-convert-to-PDF-using-itextsharp楼主可以看看

谢谢,有点看不懂啊,document.Close();之后,PDF文件保存在哪里呢,没有看到哪里有保存路径啊
解决方案七:
搜索wkhtmltopdf.exe下载然后参考我在项目中使用的代码.还有记得给分--usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Linq;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.HtmlControls;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Xml.Linq;usingSystem.Text;usingSystem.Diagnostics;usingSystem.IO;namespaceAK.Scorpion.HtmlToPdf{publicclassHtmlToPdf{///<summary>///HTML转换PDF///</summary>///<paramname="html">Hmtl字符串</param>publicstaticvoidConvertHtmlToPdf(stringhtml){if(string.IsNullOrEmpty(html)){return;}else{stringfileNameWithOutExtention=HttpContext.Current.Server.MapPath(@"PDF"+Guid.NewGuid()+".pdf");//输出文件名称stringwkhtmltopdfPath=HttpContext.Current.Server.MapPath(@"wkhtmltopdfwkhtmltopdf.exe");if(!File.Exists(wkhtmltopdfPath)){thrownewException(String.Format("File'{0}'notfound.Checkifwkhtmltopdfapplicationisinstalled.",wkhtmltopdfPath));}ProcessStartInfosi;StringBuilderparamsBuilder=newStringBuilder();paramsBuilder.Append("--page-sizeA4");paramsBuilder.AppendFormat(""{0}""{1}"","-",fileNameWithOutExtention);si=newProcessStartInfo();si.CreateNoWindow=true;si.FileName=wkhtmltopdfPath;si.Arguments=paramsBuilder.ToString();si.UseShellExecute=false;si.RedirectStandardError=true;si.RedirectStandardInput=true;using(varprocess=newProcess()){process.StartInfo=si;process.Start();using(varstream=process.StandardInput){byte[]buffer=Encoding.UTF8.GetBytes(html);stream.BaseStream.Write(buffer,0,buffer.Length);stream.WriteLine();}if(!process.WaitForExit(1000)){thrownewException("转换超时!");}}if(File.Exists(fileNameWithOutExtention)){//把文件读进文件流FileStreamfs=newFileStream(fileNameWithOutExtention,FileMode.Open);byte[]file=newbyte[fs.Length];fs.Read(file,0,file.Length);fs.Close();//Response给客户端下载HttpContext.Current.Response.Clear();HttpContext.Current.Response.AddHeader("content-disposition","attachment;filename="+fileNameWithOutExtention);//强制下载HttpContext.Current.Response.ContentType="application/octet-stream";HttpContext.Current.Response.BinaryWrite(file);HttpContext.Current.Response.Flush();HttpContext.Current.Response.End();}else{thrownewException("文件不存在!");}}}}}

解决方案八:
我这个是把HTML页面作为一个字符串来实现转换的不知道你是如何如果是页面转换PDF可以百度aspose.pdf这个DLL文件相关例子很多
解决方案九:
iTextSharp
解决方案十:
引用6楼SomethingJack的回复:

搜索wkhtmltopdf.exe下载然后参考我在项目中使用的代码.还有记得给分--usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Linq;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.HtmlControls;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Xml.Linq;usingSystem.Text;usingSystem.Diagnostics;usingSystem.IO;namespaceAK.Scorpion.HtmlToPdf{publicclassHtmlToPdf{///<summary>///HTML转换PDF///</summary>///<paramname="html">Hmtl字符串</param>publicstaticvoidConvertHtmlToPdf(stringhtml){if(string.IsNullOrEmpty(html)){return;}else{stringfileNameWithOutExtention=HttpContext.Current.Server.MapPath(@"PDF"+Guid.NewGuid()+".pdf");//输出文件名称stringwkhtmltopdfPath=HttpContext.Current.Server.MapPath(@"wkhtmltopdfwkhtmltopdf.exe");if(!File.Exists(wkhtmltopdfPath)){thrownewException(String.Format("File'{0}'notfound.Checkifwkhtmltopdfapplicationisinstalled.",wkhtmltopdfPath));}ProcessStartInfosi;StringBuilderparamsBuilder=newStringBuilder();paramsBuilder.Append("--page-sizeA4");paramsBuilder.AppendFormat(""{0}""{1}"","-",fileNameWithOutExtention);si=newProcessStartInfo();si.CreateNoWindow=true;si.FileName=wkhtmltopdfPath;si.Arguments=paramsBuilder.ToString();si.UseShellExecute=false;si.RedirectStandardError=true;si.RedirectStandardInput=true;using(varprocess=newProcess()){process.StartInfo=si;process.Start();using(varstream=process.StandardInput){byte[]buffer=Encoding.UTF8.GetBytes(html);stream.BaseStream.Write(buffer,0,buffer.Length);stream.WriteLine();}if(!process.WaitForExit(1000)){thrownewException("转换超时!");}}if(File.Exists(fileNameWithOutExtention)){//把文件读进文件流FileStreamfs=newFileStream(fileNameWithOutExtention,FileMode.Open);byte[]file=newbyte[fs.Length];fs.Read(file,0,file.Length);fs.Close();//Response给客户端下载HttpContext.Current.Response.Clear();HttpContext.Current.Response.AddHeader("content-disposition","attachment;filename="+fileNameWithOutExtention);//强制下载HttpContext.Current.Response.ContentType="application/octet-stream";HttpContext.Current.Response.BinaryWrite(file);HttpContext.Current.Response.Flush();HttpContext.Current.Response.End();}else{thrownewException("文件不存在!");}}}}}

为什么用你这个会出现这种问题啊~求助,大神。
解决方案十一:
iTextSharp网页转图片再导到PDF里
解决方案十二:
引用10楼wangqi7719435的回复:

iTextSharp网页转图片再导到PDF里

我用iTextSharp的时候导入程序集的时候总是报错,
解决方案十三:
引用9楼luoyingzs的回复:

Quote: 引用6楼SomethingJack的回复:
搜索wkhtmltopdf.exe下载然后参考我在项目中使用的代码.还有记得给分--usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Linq;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.HtmlControls;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Xml.Linq;usingSystem.Text;usingSystem.Diagnostics;usingSystem.IO;namespaceAK.Scorpion.HtmlToPdf{publicclassHtmlToPdf{///<summary>///HTML转换PDF///</summary>///<paramname="html">Hmtl字符串</param>publicstaticvoidConvertHtmlToPdf(stringhtml){if(string.IsNullOrEmpty(html)){return;}else{stringfileNameWithOutExtention=HttpContext.Current.Server.MapPath(@"PDF"+Guid.NewGuid()+".pdf");//输出文件名称stringwkhtmltopdfPath=HttpContext.Current.Server.MapPath(@"wkhtmltopdfwkhtmltopdf.exe");if(!File.Exists(wkhtmltopdfPath)){thrownewException(String.Format("File'{0}'notfound.Checkifwkhtmltopdfapplicationisinstalled.",wkhtmltopdfPath));}ProcessStartInfosi;StringBuilderparamsBuilder=newStringBuilder();paramsBuilder.Append("--page-sizeA4");paramsBuilder.AppendFormat(""{0}""{1}"","-",fileNameWithOutExtention);si=newProcessStartInfo();si.CreateNoWindow=true;si.FileName=wkhtmltopdfPath;si.Arguments=paramsBuilder.ToString();si.UseShellExecute=false;si.RedirectStandardError=true;si.RedirectStandardInput=true;using(varprocess=newProcess()){process.StartInfo=si;process.Start();using(varstream=process.StandardInput){byte[]buffer=Encoding.UTF8.GetBytes(html);stream.BaseStream.Write(buffer,0,buffer.Length);stream.WriteLine();}if(!process.WaitForExit(1000)){thrownewException("转换超时!");}}if(File.Exists(fileNameWithOutExtention)){//把文件读进文件流FileStreamfs=newFileStream(fileNameWithOutExtention,FileMode.Open);byte[]file=newbyte[fs.Length];fs.Read(file,0,file.Length);fs.Close();//Response给客户端下载HttpContext.Current.Response.Clear();HttpContext.Current.Response.AddHeader("content-disposition","attachment;filename="+fileNameWithOutExtention);//强制下载HttpContext.Current.Response.ContentType="application/octet-stream";HttpContext.Current.Response.BinaryWrite(file);HttpContext.Current.Response.Flush();HttpContext.Current.Response.End();}else{thrownewException("文件不存在!");}}}}}

为什么用你这个会出现这种问题啊~求助,大神。

你不需要下载看看文件
解决方案十四:
引用12楼SomethingJack的回复:

Quote: 引用9楼luoyingzs的回复:
Quote: 引用6楼SomethingJack的回复:
搜索wkhtmltopdf.exe下载然后参考我在项目中使用的代码.还有记得给分--usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Linq;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.HtmlControls;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Xml.Linq;usingSystem.Text;usingSystem.Diagnostics;usingSystem.IO;namespaceAK.Scorpion.HtmlToPdf{publicclassHtmlToPdf{///<summary>///HTML转换PDF///</summary>///<paramname="html">Hmtl字符串</param>publicstaticvoidConvertHtmlToPdf(stringhtml){if(string.IsNullOrEmpty(html)){return;}else{stringfileNameWithOutExtention=HttpContext.Current.Server.MapPath(@"PDF"+Guid.NewGuid()+".pdf");//输出文件名称stringwkhtmltopdfPath=HttpContext.Current.Server.MapPath(@"wkhtmltopdfwkhtmltopdf.exe");if(!File.Exists(wkhtmltopdfPath)){thrownewException(String.Format("File'{0}'notfound.Checkifwkhtmltopdfapplicationisinstalled.",wkhtmltopdfPath));}ProcessStartInfosi;StringBuilderparamsBuilder=newStringBuilder();paramsBuilder.Append("--page-sizeA4");paramsBuilder.AppendFormat(""{0}""{1}"","-",fileNameWithOutExtention);si=newProcessStartInfo();si.CreateNoWindow=true;si.FileName=wkhtmltopdfPath;si.Arguments=paramsBuilder.ToString();si.UseShellExecute=false;si.RedirectStandardError=true;si.RedirectStandardInput=true;using(varprocess=newProcess()){process.StartInfo=si;process.Start();using(varstream=process.StandardInput){byte[]buffer=Encoding.UTF8.GetBytes(html);stream.BaseStream.Write(buffer,0,buffer.Length);stream.WriteLine();}if(!process.WaitForExit(1000)){thrownewException("转换超时!");}}if(File.Exists(fileNameWithOutExtention)){//把文件读进文件流FileStreamfs=newFileStream(fileNameWithOutExtention,FileMode.Open);byte[]file=newbyte[fs.Length];fs.Read(file,0,file.Length);fs.Close();//Response给客户端下载HttpContext.Current.Response.Clear();HttpContext.Current.Response.AddHeader("content-disposition","attachment;filename="+fileNameWithOutExtention);//强制下载HttpContext.Current.Response.ContentType="application/octet-stream";HttpContext.Current.Response.BinaryWrite(file);HttpContext.Current.Response.Flush();HttpContext.Current.Response.End();}else{thrownewException("文件不存在!");}}}}}

为什么用你这个会出现这种问题啊~求助,大神。

你不需要下载看看文件

不需要下载?看看文件是什么意思啊。
解决方案十五:
楼主,问题解决了么?
解决方案:
我现在也遇到了这个问题

时间: 2024-12-21 00:47:46

C# 生转换网页为pdf的相关文章

C# 生转换网页为pdf_实用技巧

从htm生成pdf大概可以分两步实现,第一步,解析htm,就是将htm源文件中那一对文本转换为浏览器最终呈现给我们那种图文并茂的结果.这是一个不可完成的任务,因为目前为止业界的软件巨头也没有谁把htm解析做得很好的.对比ie.firefox等浏览器的显示结果便可想而知.既然业界难题,我也就不去钻牛角尖做技术攻关了,先跳过这步,考虑下一步的事情. 第二步,绘制pdf,这个简单,网上有很多资料,有兴趣的朋友可以研究 pdf的文件格式,安装二进制组装pdf.我有兴趣,然而没有时间,我觉得软件从业者时刻

《Adobe Acrobat XI经典教程》—第6课在Internet Explorer中转换网页

在Internet Explorer中转换网页 Adobe Acrobat XI经典教程 Acrobat XI在Internet Explorer 7及更高版本的工具栏中添加了一个按钮和菜单,让用户能够轻松地将当前显示的网页或部分网页转换为Adobe PDF.转换并打印或转换并发送(见图6.21).打印被转换为Adobe PDF文件的网页时,网页将被重新格式化为标准打印机页面大小,并添加逻辑换页符.打印出来的副本将包含在屏幕上看到的所有网页信息. 有关在Internet Explorer中将网页

如何用 php将网页生成pdf,网页会超过一页

问题描述 如何用 php将网页生成pdf,网页会超过一页 50C 可以使用组件实现吧,找了许久没有找到,有自己linux服务器,大拿 请帮忙! 解决方案 参考:http://stackoverflow.com/questions/757675/website-screenshots-using-php 解决方案二: 你说的网页会超过一页是什么意思?每个网页不就是一页吗?还是你需要用php把其他文档转成PDF? 解决方案三: 用**htmltopdf** 完美支持

chrome-移动端网页查看pdf无法滑动

问题描述 移动端网页查看pdf无法滑动 通过 embed或者object标签可以在网页上查看pdf文件,在PC端可以用鼠标滚轮滑动,但是在移动端通过chrome或者safari浏览器查看该页面,会发现pdf的主体部分无法通过手指滑动,请问如何使其能滑动,做好是用html或js的方式来实现? 解决方案 可以用html5在线查看pdf,参考这个 https://github.com/mozilla/pdf.js

平台-网页转pdf格式文件时出现字体异常

问题描述 网页转pdf格式文件时出现字体异常 Font 'STSong-Light' with 'UniGB-UCS2-H' is not recognized(iTextAsian.jar 异常) ,asp.net平台,如何进行处理.

Linux Openoffice转换Office为pdf

1.将下面的代码存储为 DocumentConvert.py 2.将该文件拷贝到 $OPENOFFICE/program 中($OPENOFFICE为主目录) 3.进入到program目录后,启动OPENOFFICE服务,启动服务命令如下: ./soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard & 4.执行如下命令进行文档转换: ./python Docume

pdf转换与在线PDF转换方式

公司中的各种信件.邮件.客户的资料等都是PDF格式的,很多时候为了整理或者二次编辑的目的,需要将这类文件转换成Word文档,如果你也是为这个犯愁,那么看了下面这篇文章你就知道怎么做了. 用软件批量转换,迅捷PDF转换器是一个可以批量转换格式的软件. 第一步:安装后运行PDF转换器,添加批量文件,单击"添加文件/文件夹"按钮,弹出打开文件夹窗口,展开树状目录,找到并选定需要转换的PDF文档所在的文件夹,然后按住Ctrl键,将选定文件夹中的文档批量添加进来.如果是单个文件的话,则直接用鼠标

jodconverter转换包含标签的像&amp;amp;lt;span&amp;amp;gt;格式转化为pdf 转换不出pdf文件

问题描述 Exceptioninthread"pool-1-thread-1"org.artofsolving.jodconverter.office.OfficeException:couldnotstoredocument:85c61fbb-666c-4ca1-b753-09e6c28b87b3.pdf;errorCode:2074atorg.artofsolving.jodconverter.AbstractConversionTask.storeDocument(Abstrac

pdf快速转换成excel pdf文件转Excel文件的教程

我们先百度搜索下载一款"迅捷pdf转换成Excel转换器"安装在电脑中之后再往下看. 我们打开软件,然后点击左边的"文件转换excel"之后再点击"添加文件"然后再点击"转换"即可完成转换.转换步骤如下: 一:如打开软件,点击"PDF转Excel转换模式"-"添加PDF文件"-"添加文件" 添加好之后要转换的pdf文件就在下面了. 二:输出选项.之后我们再点击&quo