在Python中隐藏PDF文件信息
在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进行一些比较底层的操作,我不太建议这样做。