今回は「DioDocs(ディオドック)」で新しく追加されたReplaceTextメソッドとDeleteTextメソッドを使用してPDFドキュメント内のテキストを置換および削除する方法を紹介します。
こちらは2022年9月28日(水)にリリースされた「DioDocs V5J SP2」でDioDocs for PDFに追加されている機能です。
今まではFindTextメソッドを使用してPDFドキュメント内のテキストを検索することは可能でしたが、検索したテキストの置換や削除はできませんでした。お客様からたくさんのご要望をいただきまして、今回のバージョンアップからPDFドキュメント内のテキストを検索して、そのテキストを置換したり削除することができるようになりました。
PDFドキュメント内のテキストを置換する
テキストの置換にはReplaceTextメソッドを使用します。このメソッドのパラメータは以下です。
public void ReplaceText(
FindTextParams findTextParams,
System.string newText,
OutputRange searchRange,
Font font,
System.Nullable<float> fontSize
)
パラメータ | 説明 | 備考 |
---|---|---|
findTextParams | 検索するテキスト | FindTextParamsデータ型としてセット。正規表現として解釈するかや、大文字小文字の区別をするかなどの設定が可能 |
newText | 置換するテキスト | |
searchRange | テキストを検索する範囲 | 省略可 |
font | 置換するテキストのフォント | 省略可。省略時には置換前のフォントを適用 |
fontSize | 置換するテキストのフォントサイズ比 | 省略可。省略または1を設定すると置換前と同じサイズを適用 |
たとえば、以下のPDFドキュメント内のテキスト(氏名「葡萄 太郎」、申請日「2022年9月28日」、内容「筆記用具」)を置換するケースを想定します。
この場合、以下のようなコードになります。
// PDFファイルを読み込む
var doc = new GcPdfDocument();
var fs = File.OpenRead("expense-report.pdf");
doc.Load(fs);
// PDFドキュメント内のテキストを置換
doc.ReplaceText(new FindTextParams("葡萄 太郎", false, false), "寺岡 次郎");
doc.ReplaceText(new FindTextParams("2022年9月28日", false, false), "2022-09-28");
doc.ReplaceText(new FindTextParams("筆記用具", false, false), "筆記用具(ボールペン)");
// PDFファイルに保存
doc.Save("result.pdf");
対象のテキストを置換したPDFドキュメントは以下になります。
PDFドキュメント内のテキストを削除する
テキストの削除にはDeleteTextメソッドを使用します。このメソッドのパラメータは以下です。
public void DeleteText(
FindTextParams findTextParams,
DeleteTextMode mode,
OutputRange searchRange
)
パラメータ | 説明 | 備考 |
---|---|---|
findTextParams | 検索するテキスト | FindTextParamsデータ型としてセット。正規表現として解釈するかや、大文字小文字の区別をするかなどの設定が可能 |
mode | 削除モード | Standard:削除後にテキストを詰める PreserveSpace:削除後にテキストを詰めずに空白のままにする |
searchRange | テキストを検索する範囲 | 省略可 |
たとえば、以下のPDFドキュメント内のテキスト(内容「昼食代(カツサンド)」の「(カツサンド)」)を削除するケースを想定します。
この場合、以下のようなコードになります。
// PDFファイルを読み込む
var doc = new GcPdfDocument();
var fs = File.OpenRead("expense-report.pdf");
doc.Load(fs);
// PDFドキュメント内のテキストを削除
FindTextParams ftp = new FindTextParams("(カツサンド)", false, false);
doc.DeleteText(ftp, DeleteTextMode.Standard, null);
// PDFファイルに保存
doc.Save("result.pdf");
対象のテキストを削除したPDFドキュメントは以下になります。
上記コードを実装しているサンプルはコチラです。
弊社Webサイトでは、製品の機能を気軽に試せるデモアプリケーションやトライアル版も公開していますので、こちらもご確認いただければと思います。
また、ご導入前の製品に関するご相談やご導入後の各種サービスに関するご質問など、お気軽にお問合せください。