2017-09-05 9 views
1

PDF内の複数のテキストボックスを一括削除するにはどうすればよいですか?PDF内のテキストボックスを一括削除する

私は、削除したい各ページの上部と下部にテキストボックスを持つPDFドキュメントをいくつか用意しています。私はマスターPDFエディタなどのソフトウェアを使用してこれを手動で行うことができますが、文書には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

おかげヨリスが、私は少し簡単な解決策を期待していました。おそらく、赤いGUIベースのPDFエディタツールを使用して? – Mark

+0

私の知る限りでは、コンテンツ処理(とくにバッチ処理)を行うとすぐに、いくつかのコードを実行する必要があります。 –

+0

意味があります。では、iText7とpdfSweepは無料ですか?私はそれらをインストールして、あなたの例を取り、コンパイルして実行しますか?明らかにそれを私のニーズに合わせて調整する – Mark

関連する問題