java 更改PDF的CropBox和文本颜色

wwtsj6pe  于 5个月前  发布在  Java
关注(0)|答案(1)|浏览(72)

我有一个pdf,几乎不可能在我的电子阅读器上阅读。边距很大,这使得文本很小。文本颜色是浅灰色的,在我的设备屏幕上呈现得很微弱。
我想我可以通过修改使文件更清晰:

  • CropBox从0 0 612 79260 70 525 725
  • 文本颜色从0.314 0.314 0.314 rg0 0 0 rg

我可以在pdfbox调试器应用程序中清楚地看到这些部分。不幸的是,它给了我一个只读视图。有没有一种方法可以加载PDF并将其所有部分复制到一个新的PDF中,同时只更改CropBox和文本颜色?

% curl -O https://repo1.maven.org/maven2/org/apache/pdfbox/debugger-app/2.0.25/debugger-app-2.0.25.jar
% java -jar debugger-app-2.0.25.jar

字符串


的数据

fsi0uk1n

fsi0uk1n1#

这个肮脏的黑客似乎工作,但我觉得必须有一个更好的方法。
解码PDF

% curl -O https://repo1.maven.org/maven2/org/apache/pdfbox/pdfbox-app/2.0.25/pdfbox-app-2.0.25.jar
% java -jar pdfbox-app-2.0.25.jar WriteDecodedDoc input.pdf decoded.pdf

字符串
decoded.pdf现在包含与原始pdf相同的内容,但不再应用FlatDecode。这意味着内容是“易读的”。
使用hexfiend编辑decoded.pdf

  • 发现:0.314 0.314 0.314 rg

替换:0.000 0.000 0.000 rg

  • 查找:/CropBox [0.0 0.0 612.0 792.0]

替换:/CropBox [60 70 525 725.00000]
文件现在非常大.所以在预览中打开它并导出为pdf。这种重新压缩的方式很遗憾地扔掉了目录。
x1c 0d1x的数据
后来我发现了krop,一个简单的图形工具,可以在Linux上裁剪PDF文件的页面。它比在十六进制编辑器中编辑文件要容易得多。不过不会改变文本颜色。

相关问题