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

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

HTML转PDF所需工具:

  1. Spire.PDF for .NET

首先需要安装Spire.PDF for .NET到你的项目中,可以官网下载后手动引入,或通过nuget安装。

  1. Qt WebEngine

用到QT插件为Qt WebEngine,以下是各操作系统对应的插件包,可点击直接下载,然后解压缩到指定路径。

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

步骤:

  1. 指定要转换的URL地址、生成文件路径和QT插件路径;
  2. 调用 **HtmlConverter.Convert(string url, string fileName, bool enableJavaScript, int timeout, SizeF pageSize, PdfMargins margins)**方法来转换 URL 为 PDF 文件。

C# 代码:

cs 复制代码
using Spire.Pdf.Graphics;
using Spire.Pdf.HtmlConverter.Qt;
using System.Drawing;

namespace ConvertUrlToPdf
{
    class Program
    {
        static void Main(string[] args)
        {
            //指定网页URL地址
            string url = "https://www.baidu.com/";

            //指定输出文件路径
            string fileName = "Url转Pdf.pdf";

            //指定插件路径
            string pluginPath = "F:\\plugins-windows-x64\\plugins";

            //设置插件路径
            HtmlConverter.PluginPath = pluginPath;

            //将HTML网页转换为PDF
            HtmlConverter.Convert(url, fileName, true, 100000, new Size(1080, 1000), new PdfMargins(0));
        }
    }
}

转换百度首页的效果图:

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

步骤:

  1. 通过File.ReadAllText() 方法从一个 html文件中读取字符串;
  2. 指定生成文件和QT插件路径;
  3. 调用 HtmlConverter.Convert(string htmlString, string fileName, bool enableJavaScript, int timeout, SizeF pageSize, PdfMargins margins, Spire.Pdf.HtmlConverter.LoadHtmlType htmlType) 方法将 HTML 字符串转换为 PDF 文件。

C# 代码:

cs 复制代码
using System.IO;
using Spire.Pdf.HtmlConverter.Qt;
using System.Drawing;
using Spire.Pdf.Graphics;

namespace ConvertHtmlStringToPdfWithPlugin
{
    class Program
    {
        static void Main(string[] args)
        {
            //从.html文件中获取HTML字符串
            string htmlString = File.ReadAllText("示例.html");

            //指定输出文件路径
            string fileName = "Html字符串转Pdf.pdf";

            //指定插件路径
            string pluginPath = "F:\\plugins-windows-x64\\plugins";

            //设置插件
            HtmlConverter.PluginPath = pluginPath;

            //将HTML字符串转换为PDF
            HtmlConverter.Convert(htmlString, fileName, true, 100000, new Size(1080, 1000), new PdfMargins(0), Spire.Pdf.HtmlConverter.LoadHtmlType.SourceCode);
        }
    }
}

请注意: 只有++内联 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 各功能中文教程

相关推荐
偷光9 小时前
浏览器中的隐藏IDE: Elements (元素) 面板
开发语言·前端·ide·php
DKPT9 小时前
JVM栈溢出和堆溢出哪个先满?
java·开发语言·jvm·笔记·学习
gopyer12 小时前
180课时吃透Go语言游戏后端开发6:Go语言的循环语句
开发语言·游戏·golang·循环语句
楼田莉子15 小时前
Qt开发学习——QtCreator深度介绍/程序运行/开发规范/对象树
开发语言·前端·c++·qt·学习
韩立学长16 小时前
【开题答辩实录分享】以《基于python的奶茶店分布数据分析与可视化》为例进行答辩实录分享
开发语言·python·数据分析
天若有情67316 小时前
C++空值初始化利器:empty.h使用指南
开发语言·c++
远远远远子16 小时前
类与对象 --1
开发语言·c++·算法
无敌最俊朗@16 小时前
C/C++ 关键关键字面试指南 (const, static, volatile, explicit)
c语言·开发语言·c++·面试
2401_8315017316 小时前
Python学习之day03学习(文件和异常)
开发语言·python·学习
酷~16 小时前
C语言模拟面向对象编程方法之多态
c语言·开发语言