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

NetCore itext7 创建、编辑PDF插入表格、图片、文字(三)

NetCore 创建、编辑PDF插入表格、图片、文字
NetCore 创建、编辑PDF插入表格、图片、文字(二)
NetCore 创建、编辑PDF插入表格、图片、文字(三)

直接上代码

nuget引入 itext7

using System;
using System.IO;using iText.IO.Image;
using iText.Kernel.Colors;  // 导入颜色类库
using iText.Kernel.Geom;
using iText.Kernel.Pdf;     // 导入PDF操作类库
using iText.Layout;
using iText.Layout.Borders; // 导入布局类库
using iText.Layout.Element; // 导入元素类库
using iText.Layout.Properties;
using iText.Pdfa;
using TextAlignment = iText.Layout.Properties.TextAlignment; // 导入属性类库
private void PDF(){string textsss ="ssssssssssssssssssssssdddddddddddddddddddddddddddddddddddddddffffffffffffffffffffffffffffffffffffffffffffffffffff";string filePath = "path/to/yourDocument.pdf";// 检查目录是否存在,如果不存在则创建string directory = System.IO.Path.GetDirectoryName(filePath);if (!Directory.Exists(directory)){Directory.CreateDirectory(directory);}// 创建PDF文档var writer = new PdfWriter(filePath); // 创建PDF写入器,指定文件路径var pdf = new PdfDocument(writer); // 创建PDF文档var document = new Document(pdf, PageSize.A4); // 创建文档对象// 设置分页尺寸//PageSize customPageSize = new PageSize(500, 500); // 设置自定义的分页尺寸,单位为点(1英寸=72点)//pdf.SetDefaultPageSize(customPageSize);float x = PageSize.A3.GetWidth() / 2;float y = PageSize.A3.GetTop() - 20;#region 文本写入string ss ="Text 1Text 1Text 1Text 1Text 1Text 1Text 1Text 1Text 1Text 1Text 1Text 1Text 1Text 1Text 1Text 1Text 1Text 1Text 1Text 1Text 1Text 1Text 1Text 1";// 文字自定义坐标var wb = new Paragraph(ss).SetWidth(200).SetFontSize(12).SetFixedPosition(1, 50, 750, 800);document.Add(wb); // 第1页,X=50,Y=750document.Add(new Paragraph($"Text 2{textsss}").SetFixedPosition(1, 50, 700, 800)); // 第1页,X=50,Y=700document.Add(new Paragraph($"Text 3{textsss}").SetFixedPosition(1, 50, 650, 500)); // 第1页,X=50,Y=650//从上到下document.Add(new Paragraph($"居左{textsss}").SetTextAlignment(TextAlignment.LEFT));document.Add(new Paragraph($"居中{textsss}").SetTextAlignment(TextAlignment.CENTER));document.Add(new Paragraph($"局右{textsss}").SetTextAlignment(TextAlignment.RIGHT));#endregion// 表格设置Table table = new Table(5) // 创建表格,5列.SetMarginTop(10) // 设置上边距.SetFixedPosition(1, 36, 600, 200) // 设置固定位置.SetBorder(Border.NO_BORDER); // 设置无边框// 单元格设置Cell cell1 = new Cell(1, 5).Add(new Paragraph("Merged Row 1")) // 创建合并单元格,跨5列.SetBackgroundColor(ColorConstants.LIGHT_GRAY) // 设置背景色为浅灰色.SetFontColor(ColorConstants.BLUE) // 设置字体颜色为蓝色.SetFontSize(10) // 设置字体大小为10.SetTextAlignment(TextAlignment.CENTER); // 设置文本居中对齐Cell cell2 = new Cell(1, 2).Add(new Paragraph("Merged Row 2")) // 创建合并单元格,跨2列.SetBackgroundColor(ColorConstants.YELLOW) // 设置背景色为黄色.SetFontColor(ColorConstants.GREEN) // 设置字体颜色为绿色.SetFontSize(10) // 设置字体大小为10.SetTextAlignment(TextAlignment.CENTER); // 设置文本居中对齐Cell cell3 = new Cell(1, 3).Add(new Paragraph("Merged Row 3")) // 创建合并单元格,跨3列.SetBackgroundColor(ColorConstants.ORANGE) // 设置背景色为橙色.SetFontColor(ColorConstants.MAGENTA) // 设置字体颜色为品红色.SetFontSize(10) // 设置字体大小为10.SetTextAlignment(TextAlignment.CENTER); // 设置文本居中对齐// 创建单元格并设置背景颜色for (int i = 0; i < 5; i++) // 遍历5列{Cell cell = new Cell().Add(new Paragraph($"Cell {i + 1}")) // 创建单元格,添加文本.SetFontSize(10) // 设置字体大小为10.SetTextAlignment(TextAlignment.CENTER); // 设置文本居中对齐// 设置不同的背景色switch (i){case 0:cell.SetBackgroundColor(ColorConstants.LIGHT_GRAY); // 第一列背景色为浅灰色break;case 1:cell.SetBackgroundColor(ColorConstants.YELLOW); // 第二列背景色为黄色break;case 2:cell.SetBackgroundColor(ColorConstants.ORANGE); // 第三列背景色为橙色break;case 3:cell.SetBackgroundColor(ColorConstants.CYAN); // 第四列背景色为青色break;case 4:cell.SetBackgroundColor(ColorConstants.PINK); // 第五列背景色为粉色break;}table.AddCell(cell); // 将单元格添加到表格}// 将合并单元格添加到表格table.AddCell(cell1);table.AddCell(cell2);table.AddCell(cell3);// 将表格添加到文档document.Add(table);ImageData imageData = ImageDataFactory.Create("path/to/123222.jpg");Image image1 = new Image(imageData).SetFixedPosition(2, 50, 300, 200) // 指定坐标  第2页,X=50,Y=300,宽度200;Image image2 = new Image(imageData);image2.SetHorizontalAlignment(iText.Layout.Properties.HorizontalAlignment.CENTER);  //居中image2.SetWidth(200);;document.Add(image1);document.Add(image2);// 关闭文档document.Close();}
http://www.lryc.cn/news/325699.html

相关文章:

  • 数据结构奇妙旅程之深入解析冒泡排序
  • 解决 sudo apt update E: The repository is not signed.
  • SCT2A26STER5.5V-100V Vin,4A峰值限流,高效异步降压DCDC转换器,替代LM5012、LM5013、LM5017、LM5164
  • 前端学习资源整合
  • 第16篇:奇偶校验器
  • Obsidian+PicGo+Gitee搭建免费图床
  • 计算机网络复试总结(五)
  • 设计模式 --4:工厂方法模式
  • Linux系统centos7.6更换yum源以及下载安装包到指定目录
  • 蓝桥杯-子矩阵
  • Nginx 故障排查之斜杠(/) --(附 Nginx 常用命令)
  • 【超全详解一文搞懂】Scala基础
  • 16:00面试,16:06就出来了,问的问题有点变态。。。
  • 【CTFshow 】web 通关 1.0
  • babel起手式
  • AI大模型在医疗领域的应用案例:自然语言处理与医疗文本分析
  • c语言常见错误
  • 分别使用TCP/UDP实现互相实时发送消息,接收消息功能
  • 使用阿里CICD流水线打包Vue项目到阿里的docker镜像私仓,并自动部署到服务器启动服务
  • 第十三届蓝桥杯物联网试题(省赛)
  • 将谷歌 Gemma AI大模型 部署安装本地教程(可离线使用)
  • ChatGPT提示词大全:解锁AI对话
  • rust中字符串String常用方法和注意事项
  • C语言:自定义类型(结构体)
  • 唯众物联网安装调试员实训平台物联网一体化教学实训室项目交付山东技师学院
  • SqlServer期末复习(数据库原理及应用)持续更新中
  • 合辑下载 | MatrixOne 与 MySQL 全面对比
  • Ubuntu 22.04安装Python3.10.13
  • 2.4 如何运行Python程序
  • Vue中如何实现动态改变字体大小