使用 ITextSharp 库和 c# 替换 pdf 中的文本

问题描述 投票:0回答:1

我有一个 pdf 源文件。我想用我的 c# 中的代码替换指定的文本。我在这里使用 ItextSharp 库,下面是我的代码:

 //using iTextSharp.text.pdf;
 string OrigFile = "Original.pdf";
 string ResultFile = "MyPDF.pdf";
        
 using (PdfReader reader = new PdfReader(OrigFile))
 {
 for (int i = 1; i <= reader.NumberOfPages; i++)
 {
 byte[] contentBytes = reader.GetPageContent(i);
 string contentString = PdfEncodings.ConvertToString(contentBytes, "PDF");                    
 contentString = contentString.Replace(OriginalText, ReplacedText);
 reader.SetPageContent(i,PdfEncodings.ConvertToBytes(contentString,                             PdfObject.TEXT_PDFDOCENCODING));
 }
 new PdfStamper(reader, new FileStream(ResultFile, FileMode.Create,                             FileAccess.Write)).Close();
}

此代码不起作用,我的结果文件不会被替换的文本更改。 上面的具体问题是什么?有人可以建议我吗?

我已经使用 ItextSharp 尝试过此操作。

c# .net itext
1个回答
1
投票

问题是 PDF 是二进制格式,因此如果您使用记事本++打开它,您会看到一堆随机字节。

这意味着您无法进行简单的字符串替换。即使您更改该字符串,您也很有可能会破坏 PDF,因为偏移量是错误的。

话虽如此,您可以尝试利用一些低级功能

© www.soinside.com 2019 - 2024. All rights reserved.