将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

步骤:

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

C# 代码:

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# 代码:

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 各功能中文教程

C# - 将HTML网页、HTML字符串转换为PDF的更多相关文章

  1. 如何将多个网页合并成一个PDF文件

    pdfFactory是一款PDF虚拟打印软件,但与其他虚拟打印机软件不同的是,它使用起来更加简单高效.由于无需Acrobat就能生成Adobe PDF文件,它可以帮助用户在系统没有连接打印机的情况下, ...

  2. 使用Pechkin将HTML网页转换为PDF

    Pechkin开源组件使用wkhtmlbox,可以解析CSS样式,将网页转换为PDF文件, 支持URL,或者HTML字符串 1, 从NuGet程序管理器中获得Pechkin  GlobalConfig ...

  3. wkhtmltopdf 将网页转换为PDF和图片

    wkhtmltopdf 是一个shell工具,它使用了WebKit渲染引擎和Qt,将网页html转换为pdf的强大工具,转换后的pdf也可以通过pdf工具进行复制.备注.修改 官网下载地址:http: ...

  4. C# 使用 wkhtmltopdf 把HTML文本或文件转换为PDF

    一.简介 之前也记录过一篇关于把 HTML 文本或 HTML 文件转换为 PDF 的博客,只是之前那种方法有些局限性. 后来又了解到 wkhtmltopdf.exe 这个工具,这个工具比起之前的那种方 ...

  5. 关于html转换为pdf案例的一些测试与思考

    由于工作所需,最近花时间研究了html转换为pdf的功能.html转换为pdf的关键技术是如何处理网页中复杂的css样式,通过在网上收集资料,发现目前html 转换为pdf的解决方案主要分为三类: 客 ...

  6. python生成pdf报告、python实现html转换为pdf报告

    1.先说下html转换为pdf:其实支持直接生成,有三个函数pdfkit.f 安装python包:pip Install pdfkit 系统安装wkhtmltopdf:参考 https://githu ...

  7. 电子书转换为PDF格式

    目录 一.mobi 转换 pdf 步骤 二.查看转换后的结果目录 三.将PDF还原文件名且移出至新目录 背景:当我们从网上下载一些电子小说或书籍的时候,一般文件的格式可能是.epub..mobi等.这 ...

  8. asp.net MVC设计模式中使用iTextSharp实现html字符串生成PDF文件

    因个人需求,需要将html格式转换成PDF并加上水印图片.于是乎第一次接触这种需求的小菜鸟博主我,在某度搜索引擎上不断的查阅关键字资料.踩坑,终于有了一个相应的解决方案.以下是解决步骤,记录下来方便以 ...

  9. Python之将Python字符串生成PDF

      笔者在今天的工作中,遇到了一个需求,那就是如何将Python字符串生成PDF.比如,需要把Python字符串'这是测试文件'生成为PDF, 该PDF中含有文字'这是测试文件'.   经过一番检索, ...

  10. Python将HTML转换为PDF

    Python将HTML转换为PDF 使用pdfkit库和wkhtmltopdf, pip install pdfkit wkhtmltopdflinux中一般需要添加sudo权限. Windows安装 ...

随机推荐

  1. SE11/SE16N修改表数据

    1.SE11修改方法 首先修改显示格式 选择SE16标准列表 双击这条数据 输入/H,回车,再回车 修改CODE为EDIT,F8 此时,数据已经可以修改了 2.SE16N修改方法 2.1断点修改 输入 ...

  2. 在wsl2 kali发行版中安装docker

    前言 因为不想开虚拟机,而又需要多个linux发行版来做测试,也不想使用docker-desktop来曲线救国,所以想直接安装个docker随时使用,这一路也是踩了不少坑.直接复制进终端进行安装 su ...

  3. C语言哈希表uthash的使用方法详解(附下载链接)

    uthash简介   由于C语言本身不存在哈希,但是当需要使用哈希表的时候自己构建哈希会异常复杂.因此,我们可以调用开源的第三方头文件,这只是一个头文件:uthash.h.我们需要做的就是将头文件复制 ...

  4. 实时渲染前沿研究:在浏览器上实现了Facebook提出的DLSS算法

    大家好,我基于WebNN在浏览器上实现了2020年Facebook提出的Neural-Supersampling-for-Real-time-Rendering算法.它是一个用于实时渲染的神经网络超采 ...

  5. .NET CORE实战项目之CMS 开发篇 思维导图

    导图地址下载: 链接:https://pan.baidu.com/s/1sGiNZI-pc_yueqQiddvImQ 提取码:ql4v -------------------------------- ...

  6. CoinBase是什么?

    什么是CoinBase交易? 比特币区块链上的每个区块中都会包含一个或者多个交易(transaction),其中第一个交易就叫做CoinBase交易. 什么是CoinBase交易? CoinBase交 ...

  7. 使用vs插件进行远程调试linux服务器

    魔改Raspberry Debugger插件实现linux远程开发 本插件是在树莓派的远程调试下修改实现并未全部本人实现 插件基本使用: 插件目前只能在.net core 3.1到.net 6的框架下 ...

  8. FIFO设计

    first in first out,先进先出 fifo是基于RAM进行设计的 双端口RAM设计(16*8) 如果大的RAM可以调用IP RAM的关键参数:深度和宽度 module dual_ram ...

  9. 01-UPF介绍

    Mainstream Low Power techniques clock gating - 低功耗的设计风格,4bit以上可以通过综合工具增加ICG APR的时候可以更换器件VT Advanced ...

  10. 梳理Langchain-Chatchat知识库API接口

    一.Langchain-Chatchat 知识库管理 1.Langchain-Chatchat 对话和知识库管理界面   Langchain-Chatchat v0.28 完整的界面截图,如下所示: ...