2017-09-05 259 views
1

如何批量刪除PDF中的多個文本框?PDF中的批量刪除文本框

這種情況是我有一些PDF文檔,每個頁面的頂部和底部都有一個文本框,我想刪除它們。我可以使用Master PDF Editor等軟件手動執行此操作,但文檔有超過500頁,我有幾個文檔需要處理。我相當肯定這些是文本框,而不是頁眉/頁腳。

有什麼想法?

回答

3

Easy,

使用iText7結合pdfSweep。 iText是一個PDF工具包,使您能夠創建,編輯和提取PDF文檔中的信息。

pdfSweep(顧名思義)爲iText提供了編輯功能。 您可以根據給定的矩形(即將正則表達式)從特定頁面或頁面範圍中編輯內容。

pdfSweep將刪除屬於給定矩形的所有內容。

您也可以簡單地創建新版註釋,然後讓它們通過Adobe Reader批量刪除。 iText也支持創建編校註釋。

using (Stream stream = new FileStream(
fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { 
PdfReader pdfReader = new PdfReader(stream); 
using (PdfStamper stamper = new PdfStamper(
    pdfReader, new FileStream(newFileName, FileMode.OpenOrCreate))) { 
    int page = 1; 
    iTextSharp.text.Rectangle rect = 
     new iTextSharp.text.Rectangle(500, 50, 200, 300); 
    PdfAnnotation annotation = new PdfAnnotation(stamper.Writer, rect); 
    annotation.Put(PdfName.SUBTYPE, new PdfName("Redact")); 
    annotation.Title = "My Author"; 
    annotation.Put(new PdfName("Subj"), new PdfName("Redact")); 
    float[] fillColor = { 0, 0, 0 }; 
    annotation.Put(new PdfName("IC"), new PdfArray(fillColor)); 
    float[] fillColorRed = { 1, 0, 0 }; 
    annotation.Put(new PdfName("OC"), new PdfArray(fillColorRed)); 
    stamper.AddAnnotation(annotation, page); 
} 

}

iText的和pdfSweep是在Java或C#可用。

有一個關於如何生成密文註解iText的網站上相當全面的例子: http://developers.itextpdf.com/question/how-create-and-apply-redactions

+0

感謝里斯,但我希望一個稍微簡單的解決方案。也許使用紅色的基於PDF編輯器工具? – Mark

+0

據我所知,只要你想做任何類型的內容處理(尤其是批量處理),它就會迅速升級爲必須執行一些代碼。 –

+0

有道理。那麼,iText7和pdfSweep是免費的嗎?我只是安裝它們,拿你的例子,編譯並運行它?顯然根據我的需要調整它 – Mark