java - 如何以编程方式从 PDF 文档中删除特定图像?

标签 java pdf

是否可以从 PDF 文档中删除特定图像?

我在网络上发现了一些文章,其中讨论了从 PDF 中删除/替换所有图像,甚至删除 PDF 第一页上的第一个图像。但到目前为止,我还没有找到任何有针对性地删除特定图像的示例。

我不熟悉 PDF 操作 - 有没有办法命名/标记/识别嵌入在 PDF 中的特定图像对象?如果是这样,我们似乎可以使用此标识符以某种方式找到该图像。

我正在使用 Java。我发现了几个用于 PDF 操作的库,每个库都略有不同。任何有关在这种情况下使用的好库的建议都会很棒。

最佳答案

如果您想在您生活中的单个 PDF 文档中隐藏/关闭/删除图像,您可以直接在文档正文中用手指进行操作。在文本编辑器中打开,找到页面,找到页面内容、资源,更改宽度和高度参数:

17 0 obj
<< /ProcSet [ /PDF /ImageB /ImageC /ImageI ] /ColorSpace << /Cs1 7 0 R >>
/ExtGState << /Gs1 11 0 R >> /XObject << /Im1 18 0 R >> >>
endobj
18 0 obj
<< /Length 19 0 R /Type /XObject /Subtype /Image /Width 886 /Height 717 /Interpolate
true /ColorSpace 20 0 R /Intent /Perceptual /SMask 21 0 R /BitsPerComponent
8 /Filter /FlateDecode >>
stream
xÏΩ T◊∂>æYÔ∑^c¢ôníóó˜ø◊17ä‚ê®h¢WÅDççF„’DLà(TúMçÇI�p�IïA2(¢B3è"≥}# ˆµªˇ_’È™ÆÆ:

在您拥有的任何十六进制编辑器中将 /Width 886/Height 717 更改为 /Width 000/Height 000,图像将会消失。

重要! PDF 文件结构偏移量是经过严格计算的,因此,使用与原始数字相同的零数量非常重要。

如果您计划对大量文件执行相同的操作,我无法帮助您,抱歉!

关于java - 如何以编程方式从 PDF 文档中删除特定图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12014269/

相关文章:

java - 如何使用 RxJava 将 Listeners 正确转换为 Reactive(Observables)?

java - 如何检测 Java Util Logging 是否已配置?

java - Elasticsearch Java API - boolean 查询运算符

c++ - 使用 C++ 创建处理 RTL 语言和复杂脚本的 PDF

pdf - 将 PS 文件叠加在 PDF 文件之上

java - 在java中通过pdfbox阅读pdf

java - 如何使用 JGit 做 "git push --mirror ..."的等价物?

java - @DynamoDBIndexHashKey 必须指定 HASH GSI 名称之一

java - 损坏的 pdf 已解码并通过 Java 服务器套接字发送

javascript - 使用 JavaScript 从 HTML 创建 PDF 文档