🌹欢迎来到《小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
- 网页内容存档:将网页内容转换为PDF格式进行长期保存
- 电子报告生成:自动将数据分析结果(HTML格式)转换为可打印的PDF报告
- 电子发票/收据:将在线生成的发票HTML模板转换为PDF发送给客户
- 合同文档生成:将在线填写的合同表单(HTML)转换为正式PDF合同
- 教育材料:将在线课程内容转换为PDF供学生下载
- 产品目录:将网站上的产品列表转换为PDF目录
- 简历生成:将在线填写的简历信息转换为PDF格式
- 新闻简报:将每日新闻网页内容转换为PDF简报
PDF追加文本
- 合同签署:在已有合同PDF上追加签名和日期信息
- 批注和注释:在技术文档或学术论文PDF上添加评论
- 水印添加:在PDF文档上追加"机密"或"草稿"等水印文本
- 文档编号:在生成的PDF上追加唯一的文档编号
- 页眉页脚:为现有PDF文档追加页眉页脚信息
- 自动填表:在PDF表单上追加填写的数据
- 翻译文档:在原文PDF上追加翻译文本
- 法律文件:在判决书等法律文件上追加法官意见
- 医疗记录:在患者病历PDF上追加医生诊断意见
- 工程图纸:在技术图纸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,配置文件详细说明