itext7修改pdf页面内容
2024-04-29 本文已影响0人
叶迎宪
PdfDocument pdfDoc = new PdfDocument(new PdfReader(SRC), new PdfWriter(DEST));
int pageCount = pdfDoc.GetNumberOfPages();
for (int i = 0; i < pageCount; i++)
{
// 获得每一页的字典
PdfDictionary pageDict = pdfDoc.GetPage(i + 1).GetPdfObject();
// 字典中的Contents对应的那个obj,就是每页的绘制序列
PdfStream pageContent = pageDict.GetAsStream(PdfName.Contents);
// 对obj进行解码,获得文本内容
byte[] data = pageContent.GetBytes();
string dataText = System.Text.Encoding.UTF8.GetString(data);
var lines = dataText.Split(new[] { '\r', '\n' });
// 此处省略,修改dataText中的页面内容
string modifiedText = string.Join("\n", lines);
byte[] modifiedData = System.Text.Encoding.UTF8.GetBytes(modifiedText);
// 用修改后的内容替换
pageDict.Put(PdfName.Contents, new PdfStream(modifiedData));
}
pdfDoc.Close();