C#でPDF履歴を保存および編集する方法

C#でPDFの改訂履歴を保存・編集する方法

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDFはC#開発者がリビジョン履歴を使ってPDFドキュメントの変更を追跡・管理することを可能にします。 SaveAsRevisionメソッドでドキュメントの反復を保存し、GetRevisionで以前のバージョンにロールバックします。

クイックスタート:IronPDFでPDFリビジョンを保存)

C#アプリケーションでIronPDFを使用してPDFのリビジョンを管理、保存します。 このガイドはIronPDFのSaveAsRevisionメソッドで文書のバージョンを保存し、PDFの変更を追跡・管理する方法を説明します。 PDFファイルをロードし、すべての変更をアーカイブするために別のリビジョンとして保存します。

Nuget Icon今すぐ NuGet で PDF を作成してみましょう:

  1. NuGet パッケージ マネージャーを使用して IronPDF をインストールします

    PM > Install-Package IronPdf

  2. このコード スニペットをコピーして実行します。

    var pdf = IronPdf.PdfDocument.FromFile("example.pdf");
    pdf.SaveAsRevision("revision1.pdf");
  3. 実際の環境でテストするためにデプロイする

    今すぐ無料トライアルでプロジェクトに IronPDF を使い始めましょう
    arrow pointer

as-heading:3(ミニマルワークフロー(5ステップ)

  1. IronPDFでPDFリビジョン履歴を保存および編集するためのC#ライブラリをダウンロード 2.PDFバージョンを保存するには、SaveAsRevisionメソッドを使用してください。 3.GetRevisionメソッドを使用してPDFバージョンを取得します。 4.RevisionCountプロパティにアクセスし、リビジョン数を確認します。 5.SaveAsを使って最終的なPDFを保存してください。

PDFリビジョン・イテレーションを保存して署名するにはどうすればよいですか?

次の例では、PDFファイルを開き、さまざまな編集を行い、保存する前に署名します。 署名の許可については、将来の編集としてフォーム入力のみを許可します; それ以外では、他の編集によって署名が無効になります。

次に、SaveAsRevisionを呼び出して、リビジョンを履歴に保存し、新しいドキュメントをディスクに保存します。 このアプローチは、文書の完全性と監査証跡が重要なエンタープライズ・アプリケーションで、デジタル署名ワークフローを実装する際に役立ちます。

PDFエクスポートのパフォーマンスを向上させるために、TrackChangesオプションをfalseに設定しました。 インクリメンタル保存機能を使用するには、このオプションをtrueに設定する必要があります。

:path=/static-assets/pdf/content-code-examples/how-to/signing-revision.cs
using IronPdf;
using IronPdf.Rendering;

// Import PDF and enable TrackChanges
PdfDocument pdf = PdfDocument.FromFile("annual_census.pdf", TrackChanges: ChangeTrackingModes.EnableChangeTracking);
// ... various edits ...
pdf.SignWithFile("/assets/IronSignature.p12", "password", null, IronPdf.Signing.SignaturePermissions.AdditionalSignaturesAndFormFillingAllowed);

PdfDocument pdfWithRevision = pdf.SaveAsRevision();

pdfWithRevision.SaveAs("annual_census_2.pdf");
$vbLabelText   $csharpLabel

ChangeTrackingModes.EnableChangeTrackingパラメータは、完全な監査証跡を維持するために不可欠です。 IronPDFを有効にすると、すべてのドキュメントの変更が別々のレイヤーとして保存され、ドキュメントの履歴をナビゲーションできるようになります。 この機能は、PDFのセキュリティと権限と統合され、許可されたユーザーだけが特定のリビジョンにアクセスできるようにします。

なぜ署名にはインクリメンタル セーブを理解することが重要なのですか?

Chromeブラウザのように1つのバージョンしか表示しないビューアもありますが、PDFファイルは、Gitのコミット履歴と同様に、ドキュメントの過去のバージョンを保存することができます。 Adobe Acrobatのような高度なPDFビューアでは、このように表示されます。 署名付きPDFを扱うとき、このインクリメンタルな保存メカニズムを理解することは非常に重要です。

PDF署名を扱う場合、PDFへの署名はPDFの現在の反復に適用されることを知っておいてください。 PDFには、旧版の署名があるか、署名のないバージョンがあるかもしれません。 以下のように例を視覚化できます:

PDFドキュメントのイテレーション認定証A認定証B証明書 C#証書D
0 (最初の保存)
1
2
3
(フォームフィールドの編集のみ)

(フォームフィールドの編集のみ)
4 (フォームフィールドのみ編集)
5
(これ以上の編集はできません)

(これ以上の編集はできません)

(これ以上の編集はできません)

上記は、6回の反復を経た文書です。 このドキュメントは、承認を得るために会社の部門間で回覧され、3回目の反復で最終決定されました。この反復では、人物Aと人物Bの両方が"フォームフィールドの編集のみ許可"の設定で文書に署名しました。 つまり、PDF文書のフォームフィールドに記入することは許可されますが、文書にその他の変更を加えると、その署名は無効になります。

上記の例では、C#がフォームに記入し、A、B、Dに送り返したとします。 この文書では無効化処理は行われていないので、IronPDFの署名メソッドを実行するとtrueが得られます。

このインクリメンタル セーブ アプローチは、包括的な PDF セキュリティ機能と組み合わせると、各署名が適用された特定のドキュメントの状態でのみ有効であることを保証するため、価値があります。 これは、すべての変更の完全な監査証跡を維持しながら、不正な変更を防ぐことができます。

古いリビジョンにロールバックするには?

PDFの以前のリビジョンにロールバックするには、GetRevisionメソッドを使用してください。 これにより、このリビジョン以降の変更、含まれる新しい署名を含むすべての変更が忘れられます。 この機能は、望ましくない変更から回復する必要がある場合や、時間の経過とともにドキュメントの進化を確認する場合に不可欠です。

:path=/static-assets/pdf/content-code-examples/how-to/signing-revert-revision.cs
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("report.pdf");

int versions = pdf.RevisionCount; // total revisions

PdfDocument rolledBackPdf = pdf.GetRevision(2);
rolledBackPdf.SaveAs("report-draft.pdf");
$vbLabelText   $csharpLabel

GetRevision メ ソ ッ ド は、 指定 さ れた リ ビ ジ ョ ン番号 ま での内容のみを含む新 し い PDF 文書 イ ン ス タ ン ス を生成 し ます。 以下のような場面で役立ちます:

  • 異なるバージョンのドキュメントを比較する必要がある
  • 不正な変更により署名が無効になりました。
  • 異なる承認ワークフローのために、以前のバージョンから分岐したい。
  • 特定の時点におけるドキュメントの状態を示すことで、コンプライアンスを実証する必要があります。

リビジョンで作業する場合、ロールバックしても元のPDFファイルには影響しません。 このアプローチでは、データの整合性を維持しながら、文書のバージョンを柔軟に管理できます。 より高度なPDF操作のテクニックについては、IronPdfの包括的な編集機能をご覧ください。

PDFの改訂を管理するためのベストプラクティス

アプリケーションにリビジョン履歴を実装する場合は、以下のベストプラクティスを考慮してください:

1.常に変更追跡を有効にする: TrackChanges.ChangeTrackingModes.Enabledを設定します:ChangeTrackingModes.EnableChangeTracking<//code> を設定してください。

2.改訂戦略を文書化する:特にマルチユーザー環境では、いつ、なぜリビジョンが保存されるかについて、明確な文書を維持しましょう。

3.アクセス制御を実装するPDFの権限とパスワードとリビジョン履歴を組み合わせて、許可されたユーザーだけが特定のリビジョンを作成したりアクセスできるようにします。

4.定期的なエクスポート:定期的に重要なリビジョンを別ファイルにエクスポートし、長期保存します。

5.署名の互換性をテストする: 予期せぬ無効を避けるために、異なる署名のパーミッションがリビジョンワークフローとどのように相互作用するかをテストします。

これらのプラクティスとIronPdfのリビジョン管理機能を活用することで、コラボレーションプロセス全体を通してドキュメントの整合性を確保しながら、完全な監査証跡を維持する洗練されたドキュメントワークフローを作成することができます。 アプリケーションにこれらの機能を実装するための詳細については、包括的なIronPDFドキュメントを参照するか、ライセンスオプションを検索してください。

よくある質問

C#でPDFのリビジョンを保存するには?

C#でPDFのリビジョンを保存するにはIronPDFのSaveAsRevisionメソッドを使用します。PDF文書を読み込み、pdf.SaveAsRevision('revision1.pdf')を呼び出すだけで、文書に加えられたすべての変更を追跡する保存版が作成されます。

PDFの改訂履歴を追跡する目的は何ですか?

IronPDFのリビジョン履歴機能により、開発者はドキュメントの変更履歴を追跡することができ、GetRevisionメソッドを使用して以前のバージョンにロールバックすることができるコラボレーションワークフローを実現することができます。これはエンタープライズアプリケーションの監査証跡を維持するために不可欠です。

増分保存の変更追跡を有効にするにはどうすればよいですか?

IronPdfで変更の追跡を有効にするには、TrackChangesオプションをtrueに設定し、ChangeTrackingModes.EnableChangeTrackingパラメータを使用します。これにより、すべてのドキュメントの変更が別々のレイヤーとして保存され、ドキュメントの完全な履歴をナビゲーションできるようになります。

PDFに署名し、その改訂履歴を管理することはできますか?

はい、IronPDFはリビジョン履歴を維持しながらPDFに署名することができます。文書に署名すると、その署名は現在のイテレーションに適用されます。将来の編集によって署名が無効になるのを防ぐために、フォーム入力のみといった特定の権限を設定することができます。

以前のPDFバージョンを取得する方法を教えてください。

IronPDFはPDFドキュメントの以前のバージョンを取得するGetRevisionメソッドを提供します。また、RevisionCountプロパティを使用して、ドキュメントの履歴にいくつのリビジョンが存在するかを調べることができます。

新しいリビジョンを保存すると、署名はどうなりますか?

署名後にIronPDFのSaveAsRevisionメソッドを使用すると、その署名は特定のリビジョンに対して有効です。しかし、許可された権限を超えた編集(フォーム入力など)は署名を無効にし、文書の完全性を保証します。

改訂履歴はすべてのPDFビューアで表示できますか?

IronPDFはGitのコミットと同様に完全なリビジョン履歴を保存しますが、すべてのPDFビューアがこの情報を表示するわけではありません。Chromeのような基本的なビューアは現在のバージョンしか表示しませんが、Adobe Acrobatのような高度なビューアは完全なリビジョン履歴を表示できます。

インクリメンタル保存はどのようにPDFのパフォーマンスを向上させますか?

IronPdfのインクリメンタル保存機能は、ドキュメント全体を書き換えるのではなく、変更点のみを保存することで書き出しのパフォーマンスを向上させます。リビジョントラッキングが不要な場合はTrackChangesをfalseに設定することでパフォーマンスを最適化することができます。

カーティス・チャウ
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はできましたか?
Nuget ダウンロード 17,012,929 | バージョン: 2025.12 リリース