【C#】Html转Pdf,Spire和iTextSharp结合,.net framework 4.8

发布于:2025-04-16 ⋅ 阅读:(22) ⋅ 点赞:(0)

🌹欢迎来到《小5讲堂》🌹
🌹这是《C#》系列文章,每篇文章将以博主理解的角度展开讲解。🌹
🌹温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!🌹

在这里插入图片描述

前言

当你感到迷茫的时候,适当给自己一些工作上或者生活上的事情做一些减法。
在整理自己一些在线文档时,发现当时记录一些代码的草稿技术文章。
因此,简单整理发一篇文章分享下当时的过程,希望能给小伙伴带来点灵感。

安装插件

打开NuGet包管理器,安装下面两个插件,选择合适的版本安装。

iTextSharp - 5.5.13.4

在这里插入图片描述

FreeSpire.PDF - 10.2.0

在这里插入图片描述

QT插件

选择合适版本下载
Windows x86
Windows x64
Linux x64
Mac x64

完整代码

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using System.IO;
using Spire.Pdf.Graphics;
using Spire.Additions.Qt;
using Spire.Pdf;

private void TestHtmlToPdf()
{
    try
    {
        List<string> sourceFiles = new List<string>();

        // 输出 - 文件夹
        string baseDirectory = $"{AppDomain.CurrentDomain.BaseDirectory}";
        string fileName = $"{Guid.NewGuid()}.pdf";
        string outputPath = $"{baseDirectory}/{fileName}";
        if (true)
        {
            string url = $@"https://www.csdn.net";
            // string htmlContent = HttpRequest.SendGet(url, "");

            if (!System.IO.File.Exists(outputPath))
            {
                // 如果目录不存在,则创建目录
                if (!Directory.Exists(baseDirectory))
                {
                    Directory.CreateDirectory(baseDirectory);
                }

                //指定插件路径 - Qt插件解压到E盘(根据自己盘来解压)
                string pluginPath = @"E:\plugins";

                //设置插件路径
                HtmlConverter.PluginPath = pluginPath;

                //将HTML网页转换为PDF
                HtmlConverter.Convert(url, outputPath, true, 100000, new Size(1080, 610), new PdfMargins(0));
            }

            sourceFiles.Add(outputPath);
        }

        // 操作pdf - 追加文本
        string text = "CSDN博客博主 - 全栈小5";
        if (true)
        {
            // 加载现有的 PDF 文件
            Spire.Pdf.PdfDocument doc = new Spire.Pdf.PdfDocument();
            doc.LoadFromFile(outputPath);

            // 获取第一页
            PdfPageBase page = doc.Pages[0];

            // 创建一个画刷和字体
            PdfSolidBrush brush = new PdfSolidBrush(Color.Blue);
            Font font = new Font("宋体", 18f); // 解决中文乱码问题
            PdfTrueTypeFont pdfTrueTypeFont = new PdfTrueTypeFont(font, true); // true表示使用Unicode编码


            // 在指定位置追加文本
            page.Canvas.DrawString($"{text}", pdfTrueTypeFont, brush, new PointF(200, 20));

            // 保存修改后的 PDF 文件
            doc.SaveToFile(outputPath, FileFormat.PDF);

            // 释放资源
            doc.Close();
        }
    }
    catch (Exception ex)
    {

    }
}

在这里插入图片描述

实际应用场景

HTML转PDF

  1. 网页内容存档:将网页内容转换为PDF格式进行长期保存
  2. 电子报告生成:自动将数据分析结果(HTML格式)转换为可打印的PDF报告
  3. 电子发票/收据:将在线生成的发票HTML模板转换为PDF发送给客户
  4. 合同文档生成:将在线填写的合同表单(HTML)转换为正式PDF合同
  5. 教育材料:将在线课程内容转换为PDF供学生下载
  6. 产品目录:将网站上的产品列表转换为PDF目录
  7. 简历生成:将在线填写的简历信息转换为PDF格式
  8. 新闻简报:将每日新闻网页内容转换为PDF简报

PDF追加文本

  1. 合同签署:在已有合同PDF上追加签名和日期信息
  2. 批注和注释:在技术文档或学术论文PDF上添加评论
  3. 水印添加:在PDF文档上追加"机密"或"草稿"等水印文本
  4. 文档编号:在生成的PDF上追加唯一的文档编号
  5. 页眉页脚:为现有PDF文档追加页眉页脚信息
  6. 自动填表:在PDF表单上追加填写的数据
  7. 翻译文档:在原文PDF上追加翻译文本
  8. 法律文件:在判决书等法律文件上追加法官意见
  9. 医疗记录:在患者病历PDF上追加医生诊断意见
  10. 工程图纸:在技术图纸PDF上追加修订说明

相关文章

【C#】Html转Pdf,Spire和iTextSharp结合,.net framework 4.8

【C#】事务(进程 ID 64)与另一个进程被死锁在锁资源上,并且已被选作死锁牺牲品。请重新运行该事务。不能在具有唯一索引“XXX_Index”的对象“dbo.Test”中插入重复键的行。

【C#】使用DeepSeek帮助评估数据库性能问题,C# 使用定时任务,每隔一分钟移除一次表,再重新创建表,和往新创建的表追加5万多条记录

【C#】合理使用DeepSeek相关AI应用为我们提供强有力的开发工具,在.net core 6.0框架下使用JsonNode动态解析json字符串,如何正确使用单问号和双问号做好空值处理

【C#】已经实体类和动态实体类的反射使用方法,两分钟回顾,码上就懂

【C#】使用vue3的axios发起get和post请求.net framework部署的API显示跨域

【C#】.net core 6.0 webapi 使用core版本的NPOI的Excel读取数据以及保存数据

【C#】pdf按页分割文件,以及分页合并,效果还不错,你值得拥有

【C#】未能加载文件或程序集“CefSharp.Core.Runtime.dll”或它的某一个依赖项。找不到指定的模块。

【C#】.net core 6.0 在program时间格式统一json格式化,并列举program默认写法和简化写法

【C#】.net core 6.0 ApiController,API控制器方法,API接口以实体类作为接收参数应该注意的点

【C#】 SortedDictionary,查找字典中是否存在给定的关键字

【C#】.net core 6.0 MVC返回JsonResult显示API接口返回值不可被JSON反序列化

【C#】.net core 6.0 使用第三方日志插件Log4net,配置文件详细说明

【C#】使用代码实现龙年春晚扑克牌魔术(守岁共此时),代码实现篇

【C#】使用代码实现龙年春晚扑克牌魔术(守岁共此时),流程描述篇