高分辨率轉HTML成PDF(ephtmltopdf.dll)

今天看到園友分享的 wkhtmtopdf--高分辨率轉HTML成PDF(三) javascript

想起我作 一鍵保存網頁爲PDF_V1.2 的時候,也研究過一段時間這個,一開始也看的是wkhtmltopdf,不過發現wkhtmltopdf很差用:css

一、中文支持很差
二、組件較大,有20多M吧
後來看到這個(ephtmltopdf.dll) http://www.html-to-pdf.net/
不過這個的試用版有版權信息,通過個人反覆折騰,終於破解了它,去掉了版權信息。
有須要的能夠去 http://download.csdn.net/detail/bdstjk/6007387
下載,提取破解後的DLL,也能夠經過官方試用下載頁獲取試用DLL,http://www.html-to-pdf.net/Download.aspx 
html

ephtmltopdf.dll的功能優點:html5

-支持HTML5和CSS3功能,包括畫布和SVG java

-支持內聯SVG在HTML文檔 css3

-支持網絡字體 網絡

-支持Web開放字體格式WOFF post

-強大的html5/css3/javascript渲染引擎字體

-組件很小,只有1M多,而wkhtmtopdf有20多Murl

 

效果參見 一鍵保存網頁爲PDF_V1.2 ,這裏就只介紹一下用法了。

主要代碼以下,便可將HTML保存爲本地的PDF文件了

 

        public void Use_ephtmltopdf(string URL, string outFile)
        {
            PdfConverter pdfConverter = new PdfConverter();
            pdfConverter.PdfDocumentOptions.EmbedFonts = false;
            pdfConverter.PdfDocumentOptions.ShowFooter = false;
            pdfConverter.PdfDocumentOptions.ShowHeader = false;
            pdfConverter.PdfDocumentOptions.GenerateSelectablePdf = true;
            pdfConverter.SavePdfFromUrlToFile(URL, outFile);
        }

 

  

固然,該組件還能夠直接獲取到二進制流,以下示例:

pdfConverter.PdfDocumentOptions.PdfPageSize = PdfPageSize.A4;
pdfConverter.PdfDocumentOptions.PdfCompressionLevel = PdfCompressionLevel.Normal;
pdfConverter.PdfDocumentOptions.ShowHeader = true;
pdfConverter.PdfDocumentOptions.ShowFooter = true;
pdfConverter.PdfDocumentOptions.LeftMargin = 5;
pdfConverter.PdfDocumentOptions.RightMargin = 5;
pdfConverter.PdfDocumentOptions.TopMargin = 5;
pdfConverter.PdfDocumentOptions.BottomMargin = 5;
pdfConverter.PdfDocumentOptions.GenerateSelectablePdf = true;

pdfConverter.PdfDocumentOptions.ShowHeader = false;
//pdfConverter.PdfHeaderOptions.HeaderText = "Sample header: " + TxtURL.Text;
//pdfConverter.PdfHeaderOptions.HeaderTextColor = Color.Blue;
//pdfConverter.PdfHeaderOptions.HeaderDescriptionText = string.Empty;
//pdfConverter.PdfHeaderOptions.DrawHeaderLine = false;

pdfConverter.PdfFooterOptions.FooterText = "Sample footer: " + TxtURL.Text + 
". You can change color, font and other options";
pdfConverter.PdfFooterOptions.FooterTextColor = Color.Blue;
pdfConverter.PdfFooterOptions.DrawFooterLine = false;
pdfConverter.PdfFooterOptions.PageNumberText = "Page";
pdfConverter.PdfFooterOptions.ShowPageNumber = true;

//pdfConverter.LicenseKey = "put your serial number here";
byte[] downloadBytes = pdfConverter.GetPdfFromUrlBytes(url);


System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
response.Clear();
response.AddHeader("Content-Type", "binary/octet-stream");
response.AddHeader("Content-Disposition",
    "attachment; filename=" + downloadName + "; size=" + downloadBytes.Length.ToString());
response.Flush();
response.BinaryWrite(downloadBytes);
response.Flush();
response.End();
相關文章
相關標籤/搜索