Скрыть информацию в файле PDF в Python - PullRequest
1 голос
/ 03 ноября 2010

В Python у меня есть файлы, сгенерированные ReportLab. Теперь мне нужно извлечь некоторые страницы из этого PDF и скрыть конфиденциальную информацию.

Я могу создать файл PDF с затемненными точками и использовать pyPdf для слияния страниц, но люди по-прежнему могут выбирать и копировать информацию под затемненными точками.

Есть ли способ сделать эти места полностью конфиденциальными?

Например, мне нужно скрыть адреса на страницах, как мне это сделать?

Спасибо

Ответы [ 2 ]

1 голос
/ 03 ноября 2010

В основном вам придется удалить соответствующие команды рисования текста в потоке содержимого страницы PDF.Намного проще сгенерировать страницы дважды, один раз с конфиденциальной информацией, один раз без них.

Возможно (возможно, я не знаю ReportLab достаточно) специально создать PDF-файл таким образом, чтобы конфиденциальная информациялегче доступно (например, как отдельные объекты XO) для удаления.Тем не менее, вам придется выполнять довольно низкоуровневые операции с PDF, что я бы не советовал.

0 голосов
/ 03 ноября 2010

(Извините, я не смог войти в систему, когда отправил вопрос ...)

К сожалению, документ не может быть восстановлен по желанию (контекстно-зависимый), и эти PDF-файлы (около 35) имеют более 3000 страниц.

Я думал об использовании pdf2ps и pdf2ps, но качество там очень высокое.

pdf2ps -dLanguageLevel = 3 input.pdf - | ps2pdf14 - output.pdf

И если я вместо этого использую «pdftops», текст по-прежнему можно выбрать. Если есть способ сделать его невыбираемым, например, с помощью «pdf2ps», но с лучшим качеством, это тоже подойдет.

...