首页 > 编程语言 >C# - 将HTML网页、HTML字符串转换为PDF

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

时间:2024-01-30 14:34:01浏览次数:41  
标签:插件 string C# Spire HTML HtmlConverter 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安装。

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

 

标签:插件,string,C#,Spire,HTML,HtmlConverter,PDF
From: https://www.cnblogs.com/Yesi/p/17997041

相关文章

  • vue3+ts+vite项目中使用vite-plugin-svg-icons插件处理svg
    1.安装依赖:npminstallvite-plugin-svg-icons-D2.vite.config.ts中配置:import{createSvgIconsPlugin}from'vite-plugin-svg-icons'//在exportdefault({command,mode}:ConfigEnv):UserConfig中的plugins数组中添加代码plugins:[createSvgIconsPlugin......
  • window下VScode 使用虚拟环境virtualenv
    前提:搭建python环境,这里以python3X为例一经典virtualenv1-安装virtualenvpipinstallvirtualenv2-创建虚拟环境virtualenvmyenv 3-激活虚拟环境./myenv/Script/activate4-退出虚拟环境cd./myenv/Scriptdeactivate -----以下选操作---前提条件:已安装virtualen......
  • 华为助力区块链互操作标准化 获评工业和信息化部团体标准应用示范项目——华为云BCS的
    区块链作为一种分布式账本技术,具多方共识、分布式存储、难以篡改等特点,在金融科技、政务民生、司法存证、供应链协同、税务发票、版权保护等领域展现出广阔应用前景。随着区块链在各行各业的应用拓展,不同链系统之间的互操作难、上层应用与底层链对接切换难、链上链下可信交互难的问......
  • csharp 发布订阅 接口
    event_learn\MyEvent.csnamespaceMyEvent;publicdelegatevoidMyEventHandler(objectsender,EventArgse);//定义一个自定义的事件接口,包含一个事件声明publicinterfaceIMyEvent{//使用event关键字声明一个事件,指定委托类型和事件名称eventMyEven......
  • csharp 发布订阅 传递参数
    event_learn\Program.cs//定义一个派生自EventArgs的自定义类,用于封装数据publicclassMyEventArgs:EventArgs{//定义一个公共的字符串属性,用于存储和获取数据publicDateTime?EmitDate{get;set;}}//定义一个发布者类,它有一个MyEvent事件public......
  • Microsoft WindowsWindows Server远程代码执行漏洞
    MicrosoftWindowsWindowsServer远程代码执行漏洞发布时间:2021-11-16浏览次数:285次MicrosoftWindows和MicrosoftWindowsServer都是美国微软(Microsoft)公司的产品。MicrosoftWindows是一套个人设备使用的操作系统。MicrosoftWindowsServer是一套服务器操作系统。一、漏洞......
  • Python导入torch包的方法
    原文链接:https://blog.csdn.net/weixin_57775672/article/details/128527024前言随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容中下载torch包遇见的一些问题和解决方法。一、Pythorch是什么?Pytorch是torch的pyt......
  • [转帖]Oracle获取被锁的SQL源头
    https://blog.csdn.net/weixin_42233789转载:https://blog.csdn.net/robinson1988/article/details/106204387各位DBA,看到这篇文章是不是很开心,解决了你一个大麻烦,赶紧把它部署到实时监控程序吧(咳咳,转载,抄袭不注明文章出处的人可耻哈)session1:updateemp_baksetename=......
  • [USACO17DEC] Greedy Gift Takers
    原题链接首先这道题的数据量1e5那么时间复杂度要保持在O(nlogn)内。先判断单调性,若k头牛拿不到礼物,那么k-1头牛也拿不到礼物,所有这题可以用二分法来做(11110000)。二分部分省略,我们直接来分析check部分(如下)。boolcheck(intk){for(inti=1;i<=n-k+1;i++)b[i]=a[i];s......
  • Docker 与 Linux Cgroups:资源隔离的魔法之旅
    这篇文章主要介绍了Docker如何利用Linux的ControlGroups(cgroups)实现容器的资源隔离和管理。最后通过简单Demo演示了如何使用Go和cgroups交互。<!--more-->如果你对云原生技术充满好奇,想要深入了解更多相关的文章和资讯,欢迎关注微信公众号。搜索公众号【探索云原......