大学IT网 - 最懂大学生的IT学习网站! QQ资料交流群:367606806
当前位置:大学IT网 > C#技巧 > 高分辨率转HTML成PDF(ephtmltopdf.dll)

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

关键词:高分辨率HTMLPDFephtmltopdfdll  阅读(1677) 赞(18)

[摘要]本文介绍了通过ephtmltopdf.dll以高分辨率将HTML转换成PDF文件,希望能够帮到大家。

今天看到园友分享的wkhtmtopdf--高分辨率转HTML成PDF(三)

想起我做一键保存网页为PDF_V1.2的时候,也研究过一段时间这个,一开始也看的是wkhtmltopdf,不过发现wkhtmltopdf不好用:

1、中文支持不好
2、组件较大,有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

ephtmltopdf.dll的功能优势:

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

-支持内联SVG在HTML文档

-支持网络字体

-支持Web开放字体格式WOFF

-强大的html5/css3/javascript渲染引擎

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

效果参见一键保存网页为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();



相关评论