2010-11-02 82 views
1

在Python中,我有由ReportLab生成的文件。現在,我需要從該PDF中提取一些頁面並隱藏機密信息。在Python中隱藏PDF文件中的信息

我可以創建一個帶有黑點的PDF文件,並使用pyPdf合併頁面,但人們仍然可以選擇並複製粘貼信息在黑點之下。

有沒有辦法讓這些景點完全保密?

每個例子,我需要隱藏頁面上的地址,我會怎麼做?

感謝,

回答

1

基本上你就必須刪除PDF的頁面內容流中的相應文本繪製命令。一次使用機密信息生成頁面要容易兩次,一次沒有它們。

可能(我不知道ReportLab足夠了)專門製作PDF的方式,使得機密信息更易於訪問(例如作爲單獨的XObject)以供刪除。儘管如此,您仍然必須在PDF上進行相當低級的操作 - 我建議不要這樣做。

0

(對不起,我是不是能夠登錄的時候我張貼的問題...)

不幸的是,該文件不能隨意再生(上下文敏感的),而這些PDF文件(約35) 3000+頁。

我在考慮使用pdf2ps和pdf2ps,但是質量很高。

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

而如果我使用「pdftops」代替,文本仍然是可選的。如果有一種方法可以像「pdf2ps」那樣使其不可選擇,但質量更好,它也可以。

+1

在不同pdf瀏覽器中,不可選項可能不一致。 pdftotext提取它,但Adobe Reader不會,等等。如果這是敏感信息,你必須完全刪除它。一切都可以繞過,或多或少容易。但是,您可以編寫正則表達式來刪除.ps表示中的關鍵行,並通過使用正確的選項來保持質量(嘗試使用pdf2ps和pdftops等)。 – smilingthax 2010-11-03 04:36:12

+0

我從來沒有使用PS文件之前(轉換它們旁邊)...我想我總是可以試試看。我會回到我的調查結果。 – Danosaure 2010-11-03 04:49:22

+0

我認爲pdf2ps會發生什麼情況是字體要麼轉換爲位圖字體,要麼轉換爲路徑(在這種情況下字體可以正常打印,它只能在屏幕上看起來很糟糕)。由於重新編碼,並且如果不包含反轉表,很難自動找到字符對應的glyphid。只要文本看起來很好(例如,pdftops),就會使用Type1或TrueType字體,並且字形到字符的對應關係本質上是已知的,這也意味着提取文本是「容易的」。如果字體被重新編碼,則可以通過剝離一些表格進行混淆。 – smilingthax 2010-11-03 05:18:41