C# - 将HTML网页、HTML字符串转换为PDF

打印 上一主题 下一主题

主题 892|帖子 892|积分 2676

将HTML转换为PDF可实现格式保留、可靠打印、文档归档等多种用途,满足不同领域和情境下的需求。本文将通过以下两个示例,演示如何使用第三方库Spire.PDF for .NET和QT插件在C# 中将Html 网页(URL)或HTML字符串转为PDF文件。
 
HTML转PDF所需工具:

1. Spire.PDF for .NET
首先需要安装Spire.PDF for .NET到你的项目中,可以官网下载后手动引入,或通过nuget安装。
2. Qt WebEngine
用到QT插件为Qt WebEngine,以下是各操作系统对应的插件包,可点击直接下载,然后解压缩到指定路径。

示例一:使用QT插件将Html 网页(URL)转为PDF


步骤:

  • 指定要转换的URL地址、生成文件路径和QT插件路径;
  • 调用 HtmlConverter.Convert(string url, string fileName, bool enableJavaScript, int timeout, SizeF pageSize, PdfMargins margins) 方法来转换 URL 为 PDF 文件。
C# 代码:
  1. using Spire.Pdf.Graphics;
  2. using Spire.Pdf.HtmlConverter.Qt;
  3. using System.Drawing;
  4. namespace ConvertUrlToPdf
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             //指定网页URL地址
  11.             string url = "https://www.baidu.com/";
  12.             //指定输出文件路径
  13.             string fileName = "Url转Pdf.pdf";
  14.             //指定插件路径
  15.             string pluginPath = "F:\\plugins-windows-x64\\plugins";
  16.             //设置插件路径
  17.             HtmlConverter.PluginPath = pluginPath;
  18.             //将HTML网页转换为PDF
  19.             HtmlConverter.Convert(url, fileName, true, 100000, new Size(1080, 1000), new PdfMargins(0));
  20.         }
  21.     }
  22. }
复制代码
转换百度首页的效果图:

 
示例二:使用QT插件将Html 字符串转为PDF

步骤:

  • 通过File.ReadAllText() 方法从一个 html文件中读取字符串;
  • 指定生成文件和QT插件路径;
  • 调用 HtmlConverter.Convert(string htmlString, string fileName, bool enableJavaScript, int timeout, SizeF pageSize, PdfMargins margins, Spire.Pdf.HtmlConverter.LoadHtmlType htmlType) 方法将 HTML 字符串转换为 PDF 文件。
C# 代码:
  1. using System.IO;
  2. using Spire.Pdf.HtmlConverter.Qt;
  3. using System.Drawing;
  4. using Spire.Pdf.Graphics;
  5. namespace ConvertHtmlStringToPdfWithPlugin
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             //从.html文件中获取HTML字符串
  12.             string htmlString = File.ReadAllText("示例.html");
  13.             //指定输出文件路径
  14.             string fileName = "Html字符串转Pdf.pdf";
  15.             //指定插件路径
  16.             string pluginPath = "F:\\plugins-windows-x64\\plugins";
  17.             //设置插件
  18.             HtmlConverter.PluginPath = pluginPath;
  19.             //将HTML字符串转换为PDF
  20.             HtmlConverter.Convert(htmlString, fileName, true, 100000, new Size(1080, 1000), new PdfMargins(0), Spire.Pdf.HtmlConverter.LoadHtmlType.SourceCode);
  21.         }
  22.     }
  23. }
复制代码
请注意:只有内联 CSS 样式和内部 CSS 样式可以在 PDF 上正确呈现。如果是外部 CSS 样式,需要先将其转换为内联或内部 CSS 样式。 
 
总结:通过以上两个简单的C#示例代码,我们可以实现HTML网页转PDF,或HTML字符串转PDF。Spire.PDF for .NET库也支持在不使用插件的情况下将HTML转为PDF,但借助QT插件可以实现更好的渲染效果。
 
 
参考:
C#/VB.NET 将 HTML 转换为 PDF
Spire.PDF for .NET 各功能中文教程
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

玛卡巴卡的卡巴卡玛

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表