html 生成pdf


    最近因為工作需要,小小的研究了一下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也好啊!

  1. iTextSharp,類庫,創建PDF、RTF、XML等,並可解析PDF,功能最強;
  2. Report.NET,類庫,創建PDF,不錯;
  3. sharpPDF,類庫,創建PDF,不錯;
  4. iTextdotNET,類庫,創建PDF,與Java原版最能保持更新同步;
  5. A pdf Forms Parser,類庫,PDF解析器;
  6. pdf Library for creating pdf with tables and text, in C# ,類庫,輕量級的創建,中文支持不好;
  7. pdfizer, a dumb HTML to pdf converter, in C#,轉換HTML到PDF;
  8. TEXT to pdf Converter in .NET using Reporter.NET,利用Report.NET把純文本轉換成為PDF;
  9. pdf creation using C# (and Office) from RTF/DOC files,從RTF/Doc文件中生產PDF文件;
  10. Generate pdf docs from a HTML page using ASP.NET ,使用.NET把HTML生成PDF.

 

http://www.cnblogs.com/yzenet/archive/2012/07/13/2590555.html

 http://www.cnblogs.com/leeolevis/archive/2010/12/07/1898917.html

http://www.cnblogs.com/gzh4455/archive/2012/09/18/2690733.html

 

html先轉為圖片,在輸入到pdf

http://www.cnblogs.com/TNTZWC/archive/2010/10/07/1845023.html

 

 

ASP.NET MVC HTMLWORKER itextsharp

http://www.cnblogs.com/lonelyxmas/p/3619072.html

 

如何使用ITEXTSHARP將HTML代碼字符串寫進PDF

http://www.cnblogs.com/lonelyxmas/p/3493375.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM