Adobe Acrobat には、PDF ファイルを編集する機能があります。この機能をプログラムで使用して、ページ番号を指定すると、すべてのテキストや画像が編集されます。
これをプログラムで行う方法はありますか?
Adobe Acrobat は、ほとんどが GUI ベースのアプリケーションです。Adobe は、アプリケーションの機能を拡張するために使用できるAcrobat SDKを提供していますが、特に Acrobat を使用することが主な関心事である場合は、検討する価値があるかもしれません。
PDF のリダクション全般をプログラムで制御したい場合は、プログラミング ライブラリの使用を検討してください。たとえば、LEADTOOLS Redaction SDK (ベンダーで働いているのでよく知っています) には、あなたが説明したことを実行するための機能があることを知っています。
一般的なアプローチ (C# を使用) は次のようになります。
PDF から特定のページを抽出し、ページ内のすべてのオブジェクトを解析します
PDFDocument document = new PDFDocument(pdfFileName);
PDFParsePagesOptions options = PDFParsePagesOptions.All;
document.ParsePages(options, 1, 1); // parses all objects for page 1
これにより、PDF 内のテキストと画像を表すdocument.page
多数のPDFObject
オブジェクトがそれぞれに取り込まれます。
次に、これらのオブジェクトのプロパティを使用してそれらをループし、それぞれにリダクションを追加します。これは次のようになります。
AnnRedactionObject redactionObject = new AnnRedactionObject();
redactionObject.Rect = bounds; // corresponding coordinates
redactionObject.Fill = AnnSolidColorBrush.Create("Black");
annotations.Add(redactionObject);
最後に、リダクションを追加したら、最後のステップはドキュメントのリダクション オプションを設定して注釈を実現することです。
document.Annotations.RedactionOptions = new DocumentRedactionOptions();
document.Annotations.RedactionOptions.ViewOptions.Mode = DocumentRedactionMode.Apply;
document.Annotations.RedactionOptions.ViewOptions.ReplaceCharacter = '*';
document.Annotations.RedactionOptions.ConvertOptions.Mode = DocumentRedactionMode.Apply;
document.Annotations.RedactionOptions.ConvertOptions.ReplaceCharacter = '*';
缶はdocument
表示時に適切に墨消しされるか、墨塗りを含む PDF を作成するために使用できます。