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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Unity命令行打包WebGL的示例代码

    Unity命令行打包WebGL的示例代码

    这篇文章主要介绍了Unity命令行打包WebGL的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • Unity学习之FSM有限状态机

    Unity学习之FSM有限状态机

    这篇文章主要介绍了Unity学习之FSM有限状态机,通过详细的代码案例来进行解析说明,希望这篇文章对你有所帮助
    2021-06-06
  • c#通过unicode编码判断字符是否为中文示例分享

    c#通过unicode编码判断字符是否为中文示例分享

    本文介绍了c#通过unicode编码判断字符是否为中文的示例,在unicode字符串中,中文的范围是在4E00..9FFF:CJK Unified Ideographs。通过对字符的unicode编码进行判断来确定字符是否为中文
    2014-01-01
  • C# 拓展方法的简单实例

    C# 拓展方法的简单实例

    这篇文章介绍了C# 拓展方法的简单实例,有需要的朋友可以参考一下
    2013-08-08
  • C#多线程之线程同步

    C#多线程之线程同步

    这篇文章介绍了C#多线程之线程同步,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • c# datetime方法应用介绍

    c# datetime方法应用介绍

    本文将详细介绍c# datetime方法应用,需要了解更多的朋友可以参考下
    2012-11-11
  • C#简单实现子窗体向父窗体传值的方法

    C#简单实现子窗体向父窗体传值的方法

    这篇文章主要介绍了C#简单实现子窗体向父窗体传值的方法,以实例形式较为详细的分析了C#窗体间传值的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09
  • 登录验证全局控制的几种方式总结(session)

    登录验证全局控制的几种方式总结(session)

    在登陆验证或者其他需要用到session全局变量的时候,归结起来,主要有以下三种较方便的实现方式。(其中个人较喜欢使用第一种实现方法)
    2014-01-01
  • Unity3D UI Text得分数字增加的实例代码

    Unity3D UI Text得分数字增加的实例代码

    这篇文章主要介绍了Unity3D UI Text得分数字增加方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • C# Dictionary的使用实例代码

    C# Dictionary的使用实例代码

    C# Dictionary的使用实例代码,需要的朋友可以参考一下
    2013-04-04

最新评论