将HTML网页内容转换为 PDF 格式能方便文档的后续打印、存档和分享等。之前介绍过如何通过QT插件将HTML转为PDF文件,本文将介绍另一个新的转换方法,通过谷歌浏览器Chrome插件将HTML网页转PDF文件。
首先需要安装Spire.PDF for .NET 库(10.7.21版本及以上)。可以通过此链接下载产品包后手动添加引用,或者直接通过NuGet安装。
https://www.e-iceblue.cn/Downloads/Spire-PDF-NET.html此外还需要用到谷歌浏览器插件,请确保系统中安装了chrome.exe。
C# 通过Chrome插件将HTML网页转换为PDF文件
Spire.PDF for .NET新增了 ChromeHtmlConverter.ConvertToPdf()
方法,支持使用 Chrome 浏览器插件将 HTML 网页转换为 PDF。该方法中的 3 个参数为:
string input
:输入 HTML 文件路径string output
:输出 PDF 文件路径ConvertOptions
:转换设置,可自定义设置转换超时、PDF 纸张大小和页边距等
示例代码如下:
using Spire.Additions.Chrome;
namespace ConvertHtmlToPdfUsingChrome
{
internal class Program
{
static void Main(string[] args)
{
// 指定输入输出文档路径
string inputUrl = @"https://www.e-iceblue.cn/about-us.html";
string outputFile = @"HtmlToPDF.pdf";
// 指定Chrome插件的路径
string chromeLocation = @"C:\Program Files\Google\Chrome\Application\chrome.exe";
// 创建 ChromeHtmlConverter 对象
ChromeHtmlConverter converter = new ChromeHtmlConverter(chromeLocation);
// 创建 ConvertOptions 对象
ConvertOptions options = new ConvertOptions();
// 设置转换超时
options.Timeout = 10 * 3000;
// 设置转换后PDF页面的纸张大小和页边距
options.PageSettings = new PageSettings()
{
PaperWidth = 8.27,
PaperHeight = 11.69,
MarginTop = 0,
MarginLeft = 0,
MarginRight = 0,
MarginBottom = 0
};
// 将HTML网页转换为PDF
converter.ConvertToPdf(inputUrl, outputFile, options);
}
}
}
如果你想要在转换过程中输出日志,可以调用ChromeHtmlConverter.Logger
属性。
示例代码如下:
using Spire.Additions.Chrome;
namespace ConvertHtmlToPdfUsingChrome
{
internal class Program
{
static void Main(string[] args)
{
//指定输入输出文档路径
string inputUrl = @"https://www.e-iceblue.cn/about-us.html";
string outputFile = @"HtmlToPDF.pdf";
// 指定日志文件路径
string logFilePath = @"Logs.txt";
// 指定Chrome插件的路径
string chromeLocation = @"C:\Program Files\Google\Chrome\Application\chrome.exe";
// 创建ChromeHtmlConverter对象
ChromeHtmlConverter converter = new ChromeHtmlConverter(chromeLocation);
// 启用日志记录
converter.Logger = new Logger(logFilePath);
// 创建ConvertOptions对象
ConvertOptions options = new ConvertOptions();
// 设置转换超时
options.Timeout = 10 * 3000;
// 设置转换后PDF页面的纸张大小和页边距
options.PageSettings = new PageSettings()
{
PaperWidth = 8.27,
PaperHeight = 11.69,
MarginTop = 0,
MarginLeft = 0,
MarginRight = 0,
MarginBottom = 0
};
// 将HTML网页转换为PDF
converter.ConvertToPdf(inputUrl, outputFile, options);
}
}
}
如果使用过程中遇到任何问题,可前往论坛交流。
https://www.e-iceblue.com/forum/forum-f16.html