spirePDF和itext7应用

spirePDF 编辑PDF

Spire.Pdf.PdfDocument doc = new Spire.Pdf.PdfDocument(stream);
PDFOperater pDFOperater = new PDFOperater();
foreach (Spire.Pdf.PdfPageBase page in doc.Pages)
{
pDFOperater = PDFOperaterFactory.CreatePDFOperater(page);
pDFOperater.OperatePDFSpire(page);
}
doc.SaveToFile(savePath);
doc.Close();

 

public void OperatePDFSpire(PdfPageBase page)
{
PdfTextFindCollection pdfTextFindCollection = page.FindText(TargetText, TextFindParameter.None);
foreach (var find in pdfTextFindCollection.Finds)
{

//在指定位置添加文字信息
page.Canvas.DrawString(NewText, new Spire.Pdf.Graphics.PdfTrueTypeFont(new System.Drawing.Font(FontType.Arial, FontSize)), Spire.Pdf.Graphics.PdfBrushes.Black, new PointF(find.Position.X + Xoffset, find.Position.Y + Yoffset));
}
}

itext7拆分 合并PDF

PdfWriter pdfWriter = null;
PdfDocument pdfWriterDoc = null;
List<string> paths = new List<string>(); // 拆分出来的临时文件
string itemPath=string.Empty;

// Console.WriteLine($"开始拆解:" + DateTime.Now);

//拆分
for (int i = 1; i <= pageCount; i += 10)
{
itemPath = tempPath + $"\\{fileName}" + i + ".pdf";
pdfWriter = new PdfWriter(itemPath);
pdfWriterDoc = new PdfDocument(pdfWriter);
int start = i;
int end = Math.Min((start + 9), pdf.GetNumberOfPages());
//从页数第一页开始,
pdf.CopyPagesTo(start, end, pdfWriterDoc);
pdfWriterDoc.Close();
pdfWriter.Close();
paths.Add(itemPath);
}
pdf.Close();
pdfReader.Close();

 

//合并
using PdfDocument savepdf = new PdfDocument(new PdfWriter(savePath));
PdfMerger merger = new PdfMerger(savepdf);
PdfDocument SourcePdf = null;
foreach (var item in paths)
{
SourcePdf = new PdfDocument(new PdfReader(item));
merger.Merge(SourcePdf, 1, SourcePdf.GetNumberOfPages());
SourcePdf.Close();
}
merger.Close();
savepdf.Close();

 

posted @   sha-yu  阅读(264)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示