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();
上一篇 下一篇

猜你喜欢

热点阅读