C#实现将HTML网页或HTML字符串转换为PDF

 更新时间:2024年01月30日 16:08:27   作者:E-iceblue  
将HTML转换为PDF可实现格式保留、可靠打印、文档归档等多种用途,满足不同领域和情境下的需求,所以本文就来介绍一下如何使用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安装。

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

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

步骤:

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

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#实现将HTML网页或HTML字符串转换为PDF的文章就介绍到这了,更多相关C# HTML转PDF内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#中如何将MongoDB->RunCommand结果映射到业务类的方法总结

    C#中如何将MongoDB->RunCommand结果映射到业务类的方法总结

    这篇文章主要给大家总结介绍了关于C#中如何将MongoDB->RunCommand结果映射到业务类的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2018-04-04
  • C#实现虚拟机快照回滚的完整方案

    C#实现虚拟机快照回滚的完整方案

    在 C# 中实现虚拟机快照的回滚(即“时间机器”功能),通常需要结合虚拟化平台的 API 或命令行工具,以下是基于常见虚拟化平台(如 VMware、VirtualBox、KVM)的 C# 实现方案,并结合知识库中的技术细节进行说明,需要的朋友可以参考下
    2025-08-08
  • C# 类型转换(隐式类型,显式类型,自定义类型)

    C# 类型转换(隐式类型,显式类型,自定义类型)

    本文详细介绍了C#中的类型转换,包括隐式类型转换和显式类型转换(强制类型转换),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-11-11
  • C#中处理空值对象(null)的六种有效方法

    C#中处理空值对象(null)的六种有效方法

    这篇文章主要介绍了在C#中处理空值(null)的6种常用方法,包括使用条件语句、空值条件运算符、空合并运算符、Nullable类型、空对象模式以及使用LINQ等库,这些方法能有效减少因null值导致的NullReferenceException异常,提高代码的健壮性和可维护性,需要的朋友可以参考下
    2025-11-11
  • C#Button窗体常用属性及事件详解

    C#Button窗体常用属性及事件详解

    在本篇文章里小编给各位分享的是关于C#Button窗体常用属性及事件详解,需要的朋友们可以参考下。
    2020-03-03
  • c#读写excel文件使用示例

    c#读写excel文件使用示例

    这篇文章主要介绍了c#读写excel文件使用示例,需要的朋友可以参考下
    2014-02-02
  • 浅谈C#中HttpWebRequest与HttpWebResponse的使用方法

    浅谈C#中HttpWebRequest与HttpWebResponse的使用方法

    本篇文章主要介绍了浅谈C#中HttpWebRequest与HttpWebResponse的使用方法,具有一定的参考价值,有兴趣的可以了解一下。
    2017-01-01
  • C# Razor语法规则

    C# Razor语法规则

    这篇文章介绍了C# Razor的语法规则,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-01-01
  • C#实现万物皆可排序的队列方法详解

    C#实现万物皆可排序的队列方法详解

    本文详细讲解了C#实现万物皆可排序队列的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • C#使用List类实现动态变长数组的方法

    C#使用List类实现动态变长数组的方法

    这篇文章主要介绍了C#使用List类实现动态变长数组的方法,涉及C#中List类的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04

最新评论