HTML文档转PDF?

6
我有一个动态生成的ASP.NET网页,是一份报告。由于业务原因,这份报告需要以PDF格式输出。那么如何最好地实现呢?将选定的打印机设置为Adobe PDF不是一个选择。
从头编程来编写创建PDF的代码?或者有没有一种方法可以在某个浏览器控件中进行渲染,然后保存输出呢?
6个回答

9

wkhtmltopdf - 我在Windows上编译了它,效果很好。它使用WebKit(Safari、Chrome等)将HTML页面渲染成PDF格式,并且是免费的!


在此网址找到它:http://code.google.com/p/wkhtmltopdf/ 经过几次快速测试,它看起来非常不错。如果GPLv3适用于您的工作,那么它应该能够胜任。 - RBerteig
请注意,此软件仍处于测试阶段,并存在一些问题(有时会出现意料之外的错误,某些页面无法分页),就我编写本文时而言。但是它很好用(与大多数其他解决方案不同,PDF 的输出看起来几乎和原始页面相同),易于使用并且免费。 - MGOwen

4

2
如果不是一个简单的网格,iTestSharp并不适合他的需求 - 他需要一步将HTML转换为PDF,而不是将整个页面逐行重写为PDF。 - MGOwen

3

3
去年,我做了一个PDF项目,刚学习了PDF格式,对此我感到非常高兴。PDF规范是免费提供的,PDF作为程序员来说相当易于访问和理解。 PDF是一个纯文本文档,可以选择性地进行压缩。每一页都是一个笛卡尔平面,在这个平面上逐个绘制几何图形。它是低级别的,并且专门为软件生成而设计。显然,还有一些高级功能,比如字形等,但像任何良好设计的技术一样,如果您想要,可以坚持抽象层。是否直接使用PDF取决于文档的复杂性。对于基本的东西,例如简单的图形、文本和图像(例如,发票是一个很好的候选),那么我会直接编写PDF。您将获得良好的经验,并完全掌握控制权。对于更复杂的事物,例如表格和饼图(PDF过于低级别无法直接编写),那么我会考虑使用某种库或工具包。

0
你看过SQL Server Reporting Services吗?如果你正在使用MSSQL 2005/2008,那么你可能已经有了报告服务,你只需要配置一下就可以了。你可以在那里托管你的报告,并且只需几行代码就可以将报告作为PDF文件获取。
    //create the web request for the report based on a URL that will define export 
    //format, parameter values, etc.
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(reportUrl);
    //send creditials if necessary
    request.Credentials = new NetworkCredential(userName, password);
    //response will contain the PDF file as a stream
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();

这里有一个链接,可能也会有所帮助


-1

1
FYI - 现在他们有一个“商业”许可模式,不再免费。网站上没有关于费用的详细信息。 - NotMe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接