C#でPDFを処理・操作する
利点
- 統合、分割、回転、削除、抽出、最適化のような、PDF ページ操作機能。
- 既存のPDFへブックマークを付加したりや既存のPDFから削除するような、PDF ブックマーク機能。
- ノート、テキスト、ハイパーリンク、ファイル添付、カスタム注釈など、既存のPDF内へのエレメントの埋め込み。
- メタデータ、ページサイズ、回転、ページ数、バージョンのような、PDFの情報を取得。
- 署名情報を入手したり、暗号化をチェック、パスワードを変更するなど、PDFのセキュリ ティ設定を変更。
- PDFからテキストを抽出。
コードの抜粋
- PDFProcessor オブジェクトの仕様を読む
このオブジェクトは既存のPDFファイルのポスト-プロセス(つまり、複数のPDFファイルを1つに統合、1つのPDFファイルを2つに分割、そして PDFファイルを暗号化/暗号解除をする等)を実行させます。
PDFファイルの統合
...
Type type = Type.GetTypeFromProgID("easyPDF.Loader.7");
Loader oLoader = (Loader)Activator.CreateInstance(type);
PDFProcessor oProcessor = (PDFProcessor)oLoader.LoadObject("easyPDF.PDFProcessor.7");
// Merge を使って2つのファイルを統合します。
oProcessor.Merge(Server.MapPath(@".\input1.pdf"), Server.MapPath(@".\input2.pdf"), Server.MapPath(@".\merged.pdf"));
// MergeBatch を使い、2つ以上のファイルを統合します。
string[] inputFiles = new string[]
{
Server.MapPath(@".\input1.pdf"),
Server.MapPath(@".\input2.pdf"),
Server.MapPath(@".\input3.pdf")
};
oProcessor.MergeBatch(inputFiles, Server.MapPath(@".\merged.pdf"));
...
PDFの分割
...
Type type = Type.GetTypeFromProgID("easyPDF.Loader.7");
Loader oLoader = (Loader)Activator.CreateInstance(type);
PDFProcessor oProcessor = (PDFProcessor)oLoader.LoadObject("easyPDF.PDFProcessor.7");
// 3ページ目でドキュメントを分割します。
oProcessor.Split(Server.MapPath(@".\input.pdf"), Server.MapPath(@".\part1.pdf"), Server.MapPath(@".\part2.pdf"), 3);
...
PDFからテキストを抽出
...
Type type = Type.GetTypeFromProgID("easyPDF.Loader.7");
Loader oLoader = (Loader)Activator.CreateInstance(type);
PDFProcessor oProcessor = (PDFProcessor)oLoader.LoadObject("easyPDF.PDFProcessor.7");
// ExtractText を使って、1~4ページからテキストを物理的ファイルへ抽出します。
oProcessor.ExtractText(Server.MapPath(@".\input.pdf"), Server.MapPath(@".\extracted.txt"), null, 0, 3, null, null);
// ExtractText2 を使って1ページ目のbounding box からテキストをストリング変数へ抽出します。
string text = oProcessor.ExtractText2(Server.MapPath(@".\input.pdf"), 0, 0, 0, 300, 300, null);
...