PDF内の複数のテキストボックスを一括削除するにはどうすればよいですか?PDF内のテキストボックスを一括削除する
私は、削除したい各ページの上部と下部にテキストボックスを持つPDFドキュメントをいくつか用意しています。私はマスターPDFエディタなどのソフトウェアを使用してこれを手動で行うことができますが、文書には500ページ以上があり、処理する文書がいくつかあります。私はかなりこれらがテキストボックスであり、ヘッダー/フッターではないと確信しています。
どのような考えですか?
PDF内の複数のテキストボックスを一括削除するにはどうすればよいですか?PDF内のテキストボックスを一括削除する
私は、削除したい各ページの上部と下部にテキストボックスを持つPDFドキュメントをいくつか用意しています。私はマスターPDFエディタなどのソフトウェアを使用してこれを手動で行うことができますが、文書には500ページ以上があり、処理する文書がいくつかあります。私はかなりこれらがテキストボックスであり、ヘッダー/フッターではないと確信しています。
どのような考えですか?
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
おかげヨリスが、私は少し簡単な解決策を期待していました。おそらく、赤いGUIベースのPDFエディタツールを使用して? – Mark
私の知る限りでは、コンテンツ処理(とくにバッチ処理)を行うとすぐに、いくつかのコードを実行する必要があります。 –
意味があります。では、iText7とpdfSweepは無料ですか?私はそれらをインストールして、あなたの例を取り、コンパイルして実行しますか?明らかにそれを私のニーズに合わせて調整する – Mark