1)FPDF
http://www.fpdf.org/。这是一个纯PHP的库,它没有使用PDFlib。完全免费。没有任何license的限制。2)iText
http://www.lowagie.com/iText/。 这是一个基于Java的库。iText#则是一个基于.NET的库。使用MPL/LGPL的license。3)AlivePDF
http://www.alivepdf.org/。这是基于ActionScripts 3的PDF文件生成库。MIT license。4)Prawn
http://prawn.majesticseacreature.com/。这是一个Ruby的PDF文件生成的库。5) TCPDF
http://www.tcpdf.org/。这又是一个PHP的PDF文件生成库。LGPL license。6)PDFSharp
http://pdfsharp.com/PDFsharp/。基于.NET。7)libHaru
http://libharu.org/wiki/Main_Page。这是一个跨平台C++的开源的PDF文件生成的库。ZLIB/LIBPNG License8)Apache FOP
http://xmlgraphics.apache.org/fop/。Java语言,输入支持PDF, PS, PCL, AFP, XML (树形表示), Print, AWT 和PNG格式。9)PDF Clown
http://www.stefanochizzolini.it/en/projects/clown/。这是一个基于Java和.NET的开源项目。需要Java 1.5+和C# 2.0。10)Reportlab Toolkit
http://www.reportlab.org/rl_toolkit.html。这是一个基于python的库,- Adobe® PDF Library SDK。PDF的领导厂商出品的PDF库。无愧于其领导地位。http://www.adobe.com/devnet/pdf/library.html
- pdflib。商业PDF库。功能强大。http://www.pdflib.com/
- Xpdf: 类UNIX系统上重量级的,功能相当全面的PDF库,开源,免费。主要功能是“查看”pdf内容。http://foolabs.com/xpdf/
- iText:Java和.NET平台上使用面相当广的开源PDF库。http://www.itextpdf.com/
- Quick PDF。多数库要么只能读取,要么只能显示PDF内容,但这个库同时包含读取和生成PDF内容的功能。适用于Delphi, C, C#, C++, ASP, VB6, VB.NET, VBScript, PHP, PowerBASIC等程序设计语言。最适合的还是Delphi。http://www.quickpdf.org/
另见:
- Java开源PDF类库列表 http://www.open-open.com/34.htm
- 免费 pdf 库类 library列表 http://www.flyy.info/178.html
- purePDF,又一个PDF库 http://www.fluidea.cn/blog/archives/269
- 十个最好的PDF生成库 (2009年4月1日)http://coolshell.cn/articles/309.html
- PDF开发库荟萃 http://hi.baidu.com/jrckkyy/blog/item/fb18f1162d9f484121a4e9c8.html
最近因为工作需要,小小的研究了一下HTML生成PDF的方法,这方面的内容很多,但要么是不尽如人意的方法,要么就是那种收费的类库!为了广大.neter的福利,把自己的一点小小心得总结出来与大家分享!
先说说我最后采用的方法吧!wkhtmltopdf,一个集成好了的exe文件(C++编写),基本的调用方法是,wkhtmltopdf www.jingzhengli.cn myhomepage.pdf,可以先在命令行测试一下,有其他的需要可以在命令行通过wkhtmltopdf --help查询,如果是超长页的花,可以用命令wkhtmltopdf www.jingzhengli.cn myhomepage.pdf -H --outline (-H是添加默认标题,--outline是添加pdf的左侧概要哦!)而且可以批量生成哦,中间用空格隔开,用命令wkhtmltopdf www.jingzhengli.cn www.jingzhengli.com myhomepage.pdf 快去试试吧!提醒下:如果是转换GB2132编码的网页是会出现乱码的哦! 好了,其他的自己琢磨琢磨吧!上面都是在命令行下测试,下面给出在C#下的调用方法:
using System.Diagnostics;
/// <summary>
/// HTML生成PDF
/// </summary>
/// <param name="url">地址</param>
/// <param name="path">PDF存放路径</param>
public static bool HtmlToPdf(string url, string path)
{
try
{
if (string.IsNullOrEmpty(url) || string.IsNullOrEmpty(path))
return false;
Process p = new Process();
string str = System.Web.HttpContext.Current.Server.MapPath("wkhtmltopdf.exe");
if (!System.IO.File.Exists(str))
return false;
p.StartInfo.FileName = str;
p.StartInfo.Arguments = " \"" + url + "\" " + path;
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = true;
p.Start();
System.Threading.Thread.Sleep(500);
return true;
}
catch (Exception ex)
{
HttpContext.Current.Response.Write(ex);
}
return false;
}
调用方法:HtmlToPdf("网页URL", Server.MapPath("PDF存放路径"));
下载地址:http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.8.3.exe
源码地址:http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.8.3.tar.bz2
这里再给出个貌似是国人写的一个类似的,效果不佳,但值得鼓励:PageToPDF,调用方法类似,但这个的exe文件必须和itextsharp.dll放在同一目录下!且不支持长页面的生成PDF,转换新浪网就是一片白了!
下面给出几个国外网站卖的C#编写的类库的试用版,功能强大,可惜需要License key,大家可以下载下来看看。我尝试用reflector反编译到一半就卡住不动,望有志达人为了广大.neter的福利,破解一下!
1.ExpertPDF-HtmlToPdf-v5.4.0 $350(真黑,知识就是money啊)
2.WnvHtmlToPDF (这个一样的黑价,达人快来破解吧) 3.PDFKit.NET 2.0 http://tallcomponents.com 这个网站的
这收费的就太黑了,都开源时代了,还这样!下面呢,给出一些PDF生成相关的资料,有志之士可以自己研究下,说不定你也可以开发个类库,买¥350也好啊!
先说说我最后采用的方法吧!wkhtmltopdf,一个集成好了的exe文件(C++编写),基本的调用方法是,wkhtmltopdf www.jingzhengli.cn myhomepage.pdf,可以先在命令行测试一下,有其他的需要可以在命令行通过wkhtmltopdf --help查询,如果是超长页的花,可以用命令wkhtmltopdf www.jingzhengli.cn myhomepage.pdf -H --outline (-H是添加默认标题,--outline是添加pdf的左侧概要哦!)而且可以批量生成哦,中间用空格隔开,用命令wkhtmltopdf www.jingzhengli.cn www.jingzhengli.com myhomepage.pdf 快去试试吧!提醒下:如果是转换GB2132编码的网页是会出现乱码的哦! 好了,其他的自己琢磨琢磨吧!上面都是在命令行下测试,下面给出在C#下的调用方法:
using System.Diagnostics;
/// <summary>
/// HTML生成PDF
/// </summary>
/// <param name="url">地址</param>
/// <param name="path">PDF存放路径</param>
public static bool HtmlToPdf(string url, string path)
{
try
{
if (string.IsNullOrEmpty(url) || string.IsNullOrEmpty(path))
return false;
Process p = new Process();
string str = System.Web.HttpContext.Current.Server.MapPath("wkhtmltopdf.exe");
if (!System.IO.File.Exists(str))
return false;
p.StartInfo.FileName = str;
p.StartInfo.Arguments = " \"" + url + "\" " + path;
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = true;
p.Start();
System.Threading.Thread.Sleep(500);
return true;
}
catch (Exception ex)
{
HttpContext.Current.Response.Write(ex);
}
return false;
}
调用方法:HtmlToPdf("网页URL", Server.MapPath("PDF存放路径"));
下载地址:http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.8.3.exe
源码地址:http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.8.3.tar.bz2
这里再给出个貌似是国人写的一个类似的,效果不佳,但值得鼓励:PageToPDF,调用方法类似,但这个的exe文件必须和itextsharp.dll放在同一目录下!且不支持长页面的生成PDF,转换新浪网就是一片白了!
下面给出几个国外网站卖的C#编写的类库的试用版,功能强大,可惜需要License key,大家可以下载下来看看。我尝试用reflector反编译到一半就卡住不动,望有志达人为了广大.neter的福利,破解一下!
1.ExpertPDF-HtmlToPdf-v5.4.0 $350(真黑,知识就是money啊)
2.WnvHtmlToPDF (这个一样的黑价,达人快来破解吧) 3.PDFKit.NET 2.0 http://tallcomponents.com 这个网站的
这收费的就太黑了,都开源时代了,还这样!下面呢,给出一些PDF生成相关的资料,有志之士可以自己研究下,说不定你也可以开发个类库,买¥350也好啊!
- iTextSharp,类库,创建PDF、RTF、XML等,并可解析PDF,功能最强;
- Report.NET,类库,创建PDF,不错;
- sharpPDF,类库,创建PDF,不错;
- iTextdotNET,类库,创建PDF,与Java原版最能保持更新同步;
- A pdf Forms Parser,类库,PDF解析器;
- pdf Library for creating pdf with tables and text, in C# ,类库,轻量级的创建,中文支持不好;
- pdfizer, a dumb HTML to pdf converter, in C#,转换HTML到PDF;
- TEXT to pdf Converter in .NET using Reporter.NET,利用Report.NET把纯文本转换成为PDF;
- pdf creation using C# (and Office) from RTF/DOC files,从RTF/Doc文件中生产PDF文件;
- Generate pdf docs from a HTML page using ASP.NET ,使用.NET把HTML生成PDF.
没有评论:
发表评论