GroupDocs.Editor for .NET を使用した PDF のプログラムによる編集

はじめに

.NET アプリケーションで プログラムで PDF を編集 する必要がある場合、このチュートリアルが最適です。このガイドでは、GroupDocs.Editor のインストール、パスワードで保護された PDF のロード、ファイルをストリームとして読み込む方法、ページネーションの有効化、編集したドキュメントの保存まで、すべての手順を詳しく解説します。単語を一つ置き換えるだけでも、大量の PDF を処理する場合でも、ライブラリが作業を簡単かつ信頼性の高いものにしてくれることがわかります。

クイック回答

  • UI を開かずに PDF を編集できますか? はい、GroupDocs.Editor はコードだけで完全に動作します。
  • パスワードで保護された PDF をサポートしていますか? もちろんです – ロードオプションでパスワードを指定できます。
  • 大きな PDF の制限は? ストリーミング手法を使用することで、500 MB を超えるファイルも処理可能です。
  • ページネーションモードを有効にするには? 編集オプションで EnablePagination = true を設定します。
  • 本番環境でライセンスは必要ですか? トライアル以外のデプロイには商用ライセンスが必要です。

プログラムで PDF を編集するとは何ですか?

プログラムで PDF を編集 するとは、GUI エディタを使わずにコードから PDF ファイルの内容を変更することを指します。GroupDocs.Editor for .NET は、C# から直接テキスト、画像、レイアウト要素を置き換えることができるフル機能の API を提供します。このアプローチにより、バッチ処理や Web サービスへの統合が可能になり、ユーザー操作なしで変更を適用できます。API は PDF の構造を抽象化し、高レベルのオブジェクトで作業できる一方で、ライブラリが内部のファイル形式の複雑さを処理します。

using System;
using GroupDocs.Editor.Formats;
using GroupDocs.Editor.HtmlCss.Resources;
using GroupDocs.Editor.Options;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;

.NET 用 GroupDocs.Editor を使用する理由

GroupDocs.Editor は 30 以上のドキュメント形式 をサポートし、500 MB までの PDF をメモリ全体にロードせずに編集できるため、高スループットのバックエンドサービスに最適です。組み込みの ページネーション 機能により、複数ページの PDF が編集後も正しい改ページを保持し、ライブラリは ネイティブストリーミング を提供してファイルの読み書きを効率的に行います。

前提条件

開始する前に、以下が必要です:

  1. .NET 開発環境 – Visual Studio、Rider、または .NET 6 以上をサポートする任意の IDE。
  2. GroupDocs.Editor for .NET – ライブラリは release page からダウンロードしてインストールしてください。
  3. 基本的な C# 知識 – クラス、ストリーム、例外処理の理解があるとスムーズです。

名前空間のインポート

コードを書く前に、プロジェクトに必要な名前空間がインポートされていることを確認してください:

using System;
using GroupDocs.Editor.Formats;
using GroupDocs.Editor.HtmlCss.Resources;
using GroupDocs.Editor.Options;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;

パスワードで保護された PDF をロードする方法は?

PdfLoadOptions は PDF のロード時オプション(パスワードやメモリ設定)を定義します。保護された PDF をロードするには、PdfLoadOptions インスタンスを作成し、Password プロパティにドキュメントのパスワードを設定してエディタに渡します。これにより、編集操作の前にファイルが復号化されます。

Options.PdfLoadOptions loadOptions = new PdfLoadOptions();
// If the document is password-protected
loadOptions.Password = "your_password";

手順 1: 入力ファイルへのパスを取得する

まず、PDF ドキュメントへのパスを指定する必要があります。このチュートリアルではサンプル PDF がある前提です。

string inputFilePath = "Your Sample Document.pdf";

PDF ファイルストリームを読む方法は?

FileStream はディスク上のファイルを読み書きするストリームを提供します。PDF を読み取りモードで開くことで、エディタがファイルを排他ロックせずに処理できます。例: new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read) はパフォーマンスと同時読み取りの安全性を確保します。

using (FileStream fs = File.OpenRead(inputFilePath))

手順 2: パスからストリームを作成する

次に、指定したパスからファイルストリームを作成します。このストリームを使って PDF ドキュメントを読み込みます。

using (FileStream fs = File.OpenRead(inputFilePath))

パスワードで保護された PDF のロードオプションを設定する方法は?

PdfLoadOptions は PDF のロード時オプション(パスワードやメモリ使用量)を定義します。インスタンス作成後、Password プロパティにドキュメントのパスワードを設定します。大きな PDF では UseMemoryCache = false を設定してメモリ消費を抑えることもできます。これらの設定により、暗号化された大容量ファイルを効率的に処理できるようになります。

Options.PdfLoadOptions loadOptions = new PdfLoadOptions();
// If the document is password-protected
loadOptions.Password = "your_password";

手順 3: ドキュメントのロードオプションを作成する

PDF をロードする際にはロードオプションを指定する必要があります。PDF がパスワードで保護されている場合は、ここでパスワードを提供します。

Options.PdfLoadOptions loadOptions = new PdfLoadOptions();
// If the document is password-protected
loadOptions.Password = "your_password";

ストリームとオプションでエディタを初期化する方法は?

Editor はドキュメントをロードし、編集機能を提供するメインクラスです。ファイルストリームを返すデリゲートと、先ほど設定したロードオプションを返すデリゲートを渡してインスタンス化します。これにより、PDF のインメモリ表現が作成され、さらに操作できるようになります。

using (Editor editor = new Editor(delegate { return fs; }, delegate { return loadOptions; }))
{
    var documentInfo = editor.GetDocumentInfo(null);

手順 4: エディタインスタンスにドキュメントをロードする

ファイルストリームとロードオプションを使用して、Editor インスタンスにドキュメントをロードします。

using (Editor editor = new Editor(delegate { return fs; }, delegate { return loadOptions; }))
{
    var documentInfo = editor.GetDocumentInfo(null);

PDF 編集時にページネーションを有効にする方法は?

PdfEditOptions は PDF の編集設定(ページネーションなど)を指定します。このクラスのインスタンスを作成し、EnablePagination = true を設定します。ページネーションを有効にすると、変更後も元のページ区切りとレイアウトが保持され、出力 PDF が元の視覚構造と同じになることが保証されます。

Options.PdfEditOptions editOptions = new PdfEditOptions();
editOptions.EnablePagination = true;

手順 5: 編集オプションを作成する

ドキュメントの編集オプションを設定します。この例ではページネーションモードを有効にします。

Options.PdfEditOptions editOptions = new PdfEditOptions();
editOptions.EnablePagination = true;

編集可能な中間ドキュメントを生成する方法は?

CreateEditableDocument はロードされたドキュメントの編集可能な表現を作成します。Editor インスタンスでこのメソッドを呼び出し、先に定義した PdfEditOptions を渡します。メソッドは HTML ライクなコンテンツを持つ EditableDocument を返し、PDF に戻す前にプログラムで変更できます。

using (EditableDocument beforeEdit = editor.Edit(editOptions))
{
    // Extract textual content as HTML markup
    string originalContent = beforeEdit.GetContent();
    List<IHtmlResource> allResources = beforeEdit.AllResources;

手順 6: 中間編集可能ドキュメントを作成する

エディタインスタンスと編集オプションを使用して、中間の編集可能ドキュメントを作成します。

using (EditableDocument beforeEdit = editor.Edit(editOptions))
{
    // Extract textual content as HTML markup
    string originalContent = beforeEdit.GetContent();
    List<IHtmlResource> allResources = beforeEdit.AllResources;

編集可能コンテンツ内のテキストを置換する方法は?

EditableDocument はドキュメントの内容を編集可能な形式で保持します。その Content プロパティは HTML 表現の文字列を返します。標準的な C# の文字列操作(例: Replace)や正規表現を使用して、保存前にテキストを必要に応じて変更できます。

string editedContent = originalContent.Replace("document", "edited document");

手順 7: コンテンツを変更する

必要に応じてドキュメントのコンテンツを変更します。ここでは単純に文書中の単語を置換しています。

string editedContent = originalContent.Replace("document", "edited document");

変更後に EditableDocument を再構築する方法は?

EditableDocument は編集可能な形式でコンテンツを保持します。HTML 文字列を編集した後、変更されたコンテンツと関連リソース(画像、フォントなど)をエディタに渡して新しい EditableDocument を作成します。これにより、保存用に内部構造が再構築されます。

using (EditableDocument afterEdit = EditableDocument.FromMarkup(editedContent, allResources))
{
    string originalContent3 = afterEdit.GetContent();

手順 8: 編集されたコンテンツで新しい EditableDocument を作成する

編集されたコンテンツとリソースを使用して新しい EditableDocument インスタンスを作成します。

using (EditableDocument afterEdit = EditableDocument.FromMarkup(editedContent, allResources))
{
    string originalContent3 = afterEdit.GetContent();

暗号化を含む PDF 保存オプションを設定する方法は?

PdfSaveOptions は PDF の保存時オプション(パスワード保護や圧縮など)を定義します。インスタンス化し、Password に出力ファイルの暗号化パスワードを設定し、必要に応じて EnablePagination を有効にしてページレイアウトを保持し、CompressionLevel で大容量ファイルの圧縮度合いを調整します。これらの設定で、編集後の PDF がディスクに書き込まれる方法を制御できます。

FixedLayoutFormats docmFormat = FixedLayoutFormats.Pdf;
Options.PdfSaveOptions saveOptions = new PdfSaveOptions();
saveOptions.Password = "output_password";
saveOptions.OptimizeMemoryUsage = true;

手順 9: ドキュメント保存オプションを作成する

PDF ドキュメントの保存オプションを指定します。出力ドキュメントにパスワードを設定することも可能です。

FixedLayoutFormats docmFormat = FixedLayoutFormats.Pdf;
Options.PdfSaveOptions saveOptions = new PdfSaveOptions();
saveOptions.Password = "output_password";
saveOptions.OptimizeMemoryUsage = true;

編集された PDF をディスクに永続化する方法は?

Save は指定した保存オプションを使用して、編集されたドキュメントをファイルに書き込みます。Editor インスタンスでこのメソッドを呼び出し、更新された EditableDocument と設定した PdfSaveOptions を渡します。メソッドは対象パスに最終的な PDF を作成し、暗号化やページネーション設定が適用されます。

string outputFilename = Path.GetFileNameWithoutExtension(inputFilePath) + "." + docmFormat.Extension;
string outputPath = Path.Combine("OutputDirectoryPath", outputFilename);
using (FileStream outputStream = File.Create(outputPath))
{
    editor.Save(afterEdit, outputStream, saveOptions);
}

手順 10: 編集されたドキュメントを保存する

指定した出力パスに編集されたドキュメントを最終的に保存します。

string outputFilename = Path.GetFileNameWithoutExtension(inputFilePath) + "." + docmFormat.Extension;
string outputPath = Path.Combine("OutputDirectoryPath", outputFilename);
using (FileStream outputStream = File.Create(outputPath))
{
    editor.Save(afterEdit, outputStream, saveOptions);
}

よくある問題と解決策

  • 巨大な PDF でメモリ使用量が急増LoadOptions.UseMemoryCache = false に設定してストリーミングを有効にします。
  • テキストが置換されない – 正確な大文字小文字を一致させているか確認し、曖昧一致が必要な場合は正規表現の使用を検討してください。
  • ページネーションが崩れる – 編集オプションと保存オプションの両方で EnablePagination が true になっていることを確認します。

よくある質問

Q: GroupDocs.Editor for .NET を使って他のドキュメント形式も編集できますか?
A: はい、PDF に加えて Word、Excel、PowerPoint など、30 以上の追加形式をサポートしています。

Q: GroupDocs.Editor for .NET の無料トライアルはどう入手できますか?
A: 無料トライアルは GroupDocs.Editor free trial page からダウンロードできます。

Q: GroupDocs.Editor for .NET で大容量 PDF を扱うことは可能ですか?
A: はい、API にはストリーミングとメモリ最適化機能があり、500 MB を超える PDF でも処理できます。

Q: PDF を保存する際に暗号化するにはどうすればよいですか?
A: Save を呼び出す前に PdfSaveOptionsPassword プロパティを設定してください。これにより、出力 PDF がパスワードで保護されます。

Q: 問題が発生した場合、どこでサポートを受けられますか?
A: サポートは GroupDocs.Editor support forum で受けられます。

結論

これで プログラムで PDF を編集 するための完全なエンドツーエンドワークフローが完成しました。パスワードで保護された PDF のロード、ストリームとしての読み取り、ページネーションの有効化、暗号化された出力の保存まで、GroupDocs.Editor for .NET があらゆる一般的シナリオをカバーします。さらに API を活用してドキュメントのバッチ処理、画像操作、クラウドストレージとの統合にも挑戦してみてください。


最終更新日: 2026-07-15
テスト環境: GroupDocs.Editor 23.12 for .NET
作者: GroupDocs

関連チュートリアル