在Python中隐藏PDF文件信息

1 投票
2 回答
2392 浏览
提问于 2025-04-16 06:27

在Python中,我有一些由ReportLab生成的文件。现在,我需要从这个PDF中提取一些页面,并隐藏一些机密信息。

我可以创建一个带有黑色遮挡区域的PDF文件,并使用pyPdf来合并页面,但人们仍然可以选择并复制被遮挡区域下的信息。

有没有办法让这些遮挡区域完全保密呢?

举个例子,我需要隐藏页面上的地址,我该怎么做呢?

谢谢,

2 个回答

0

(抱歉,我在发问的时候无法登录…)

很遗憾,这个文档不能随便重新生成(它是有上下文的),而且那些PDF文件(大约35个)总共有3000多页。

我在考虑使用pdf2ps工具把PDF转换成PostScript格式,然后再转换回来,但这样质量会有很多问题。

我用的命令是:pdf2ps -dLanguageLevel=3 input.pdf - | ps2pdf14 - output.pdf

如果我用“pdftops”来代替,文本还是可以选择的。如果有办法像用“pdf2ps”那样让文本不可选择,但质量又更好的话,那也可以。

1

基本上,你需要在PDF的页面内容流中去掉相应的文本绘制命令。其实,生成页面两次会更简单,一次包含机密信息,一次不包含。

可能有办法(我对ReportLab不太了解)特别制作PDF,让机密信息更容易被删除(比如作为单独的XObjects)。不过,这样你需要对PDF进行一些比较底层的操作,我不太建议这样做。

撰写回答