当前位置: 首页 > news >正文

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

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

在这里插入图片描述

目录

  • 前言
  • 安装插件
    • iTextSharp - 5.5.13.4
    • FreeSpire.PDF - 10.2.0
    • QT插件
  • 完整代码
  • 实际应用场景
    • HTML转PDF
    • PDF追加文本
  • 相关文章

前言

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

安装插件

打开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网页转换为PDFHtmlConverter.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#】使用代码实现龙年春晚扑克牌魔术(守岁共此时),流程描述篇

相关文章:

  • MAC-​​需求​​:10万订单异步执行库存扣减、短信通知。
  • #include<bits/stdc++.h>
  • macos下 ~/.zshrc~ 和 ~/.zshrc
  • WEB安全--蓝队日志--RCE数据包分析
  • 系统架构设计师:系统架构概述知识体系、考点详解、高效记忆要点、练习题并提供答案与解析
  • LeetCode面试热题150中12-18题学习笔记(用Java语言描述)
  • Java项目之基于ssm的QQ村旅游网站的设计(源码+文档)
  • Redis 适合作为微服务架构中的哪些组件?
  • 树莓派_利用Ubuntu搭建gitlab
  • 深入理解 Nacos 服务发现机制
  • RabbitMQ demo案例
  • 大前端基础学习
  • Sentinel实战教程:流量控制与Spring Boot集成
  • 日志查询 Less命令:/搜索
  • 【计网】SSL/TLS核心原理
  • 如何提高webrtc操作跟手时间,降低延迟
  • 微信小程序组件传参
  • 基础算法 —— 前缀和 【复习总结】
  • [特殊字符] KoalaAI 1.0.23 震撼升级:GPT-4.1免费畅享,AI革命触手可及!
  • Node.js 操作 MySQL 数据库
  • 汪明荃,今生不负你
  • 巴基斯坦信德省卡拉奇发生爆炸
  • 常州市委原常委、组织部部长陈翔调任江苏省民宗委副主任
  • 又一日军“慰安妇”制度受害者去世,大陆登记在册幸存者仅剩7人
  • 两国战机均未侵入对方领空,巴方公布对印回击细节
  • 特朗普:不谋求第三个总统任期,中意万斯鲁比奥“接棒”