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 @ 2022-01-18 17:59  sha-yu  阅读(297)  评论(0)    收藏  举报