我正在寻找一种解决方案来从 pdf 中删除/删除所有文本。我已经使用 iTextSharp 一段时间了,用它从 pdf 中提取文本很容易(不使用 OCR)。但是我找不到删除文本的选项。
This solution坦率地说,这对我不起作用。
page.GetAsArray(PdfName.CONTENTS);
为我返回 null,在使用 PdfName.Text
和我尝试过的其他一些方法时也是如此。
使用哪个库并不重要,我只是认为 iTextsharp 应该能够做到这一点。但是,如果有其他(免费)解决方案,请提供
编辑:只是为了明确为什么我要从 pdf 中删除所有文本
我想缩小 pdf 的大小。我通过降低 pdf 中图像的分辨率来实现此目的。然而,在很多情况下,矢量图像占据了大部分空间。所以我想到了以下几点: 删除所有文本,然后将剩余的 pdf(仅包含图像和矢量)转换为位图 (jpeg)。之后我再次将文本粘贴到上面。 另一种选择是使文本不可见,但我认为这并不容易。
最佳答案
- 页面字典的
/Contents
并不总是由数组组成。很明显,如果内容存储为流,则GetAsArray()
返回null
。 - 假设您使用
GetAsStream()
并从流中删除了所有文本内容,那么 XObject 中可能仍然有文本内容。该文本不会从内容流中引用,但 iText 无法将 XObject 作为“未使用的对象”删除,因为这些对象仍会从页面字典中的/Resources
中引用.
请阅读ISO-32000-1找出你做错了什么。
关于c# - 从 PDF 中删除文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12674195/