C#/VB.NET 把网页文件HTML转换为PDF文档

Cassandra分布
• 阅读 1517

HTML(超文本标记语言)是一种常用于展示网页的标记语言,而HTML文件则是这种标记语言所对应的文件格式,绝大多数网页文件都采用这种格式。但HTML文件在不同设备、不同平台上,可能出现排版展示效果不同的问题。如果我们想让文件展示出的页面保持一致,可将其转换为PDF文件进行保存和传输。本文介绍一种非常方便的方法,通过简单编程实现HTML文件转换为PDF文件。也可将这种转换方法集成到别的程序中,使程序实现转换功能。
此方法需使用免费的Free Spire.PDF for .NET,需引入DLL文件以及插件到项目中使用。

一、 引入DLL文件及插件

1. 通过Nuget安装

1.1 在Nuget管理界面中搜索FreSpire.PDF安装。
1.2 在控制台输入以下代码安装。
PM> Install-Package FreeSpire.Doc

2. 手动下载添加DLL

Free Spire.PDF for .NET官网下载解压文件,然后在项目依赖项中添加DLL文件。

3. 下载插件

为了达到更好的转换效果,需要下载插件使用。选择合适的版本下载即可。

  • Windows x86
  • Windows x64
  • Linux x64
  • Mac x64
    下载插件后解压,找到plugin文件夹,可将插件放在指定位置,程序中需要写入插件位置。

    将一个HTML文件转换为PDF文件

    转换的具体操作步骤如下:

  • 创建 PdfDocument 类的对象。
  • PdfDocument.LoadFromHTML() 方法从url加载HTML文件。
  • PdfDocument.SaveToFile() 方法保存为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/";
    
              //设置插件地址
               HtmlConverter.PluginPath = "D:\\Samples\\plugins";
    
              //将URL对应的HTML文件转换为PDF文件
              HtmlConverter.Convert(url, "HTML转PDF.pdf", true, 100000, new Size(1080, 1000), new PdfMargins(0));
          }
      }
    }

    VB.NET

Imports Spire.Pdf.Graphics
Imports Spire.Pdf.HtmlConverter.Qt
Imports System.Drawing
 
Namespace ConvertUrlToPdf
    Class Program
        Shared  Sub Main(ByVal args() As String)
            '指定URL地址
            Dim url As String =  "https://www.baidu.com/" 

            '设置插件
             HtmlConverter.PluginPath = "D:\\Samples\\plugins"
 
            '将URL对应的HTML文件转换为PDF文件
            HtmlConverter.Convert(url, "HTML转PDF.pdf", True, 100000, New Size(1080, 1000), New PdfMargins(0))
        End Sub
    End Class
End Namespace

转换效果示意:

C#/VB.NET 把网页文件HTML转换为PDF文档

以上代码中引用的代码均来自免费的Free Spire.PDF for.NET。

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
4年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
4年前
H5中canvas和svg绘图方式介绍
在HTML5中包括了两种绘图方式,canvas和svg(矢量呈现),而与canvas不同的是,svg是一种XML标记语言,它既可以单独保存以“.svg”为后缀的文件在浏览器中打开显示,也支持建立svg标签直接嵌入在网页中显示,还可以通过<embedsrc"文件.svg"name"name自命"type"image/svgxml"height
Wesley13 Wesley13
4年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Easter79 Easter79
4年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
4年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
4年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Wesley13 Wesley13
4年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
Python进阶者 Python进阶者
2年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这