PDFリビジョン履歴の保存・編集方法

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

PDFの改訂履歴とは、時間の経過に伴ってPDFドキュメントに加えられた変更を追跡および管理する機能や能力を指します。これは通常、複数のユーザーがドキュメントを共同で作成する状況で使用され、誰がいつ変更を加えたかを含むドキュメントの改訂履歴を保持したい場合に役立ちます。

電子署名の文脈では、IronPDFはリビジョン履歴を管理し、特定のバージョンにロールバックする機能を備えています。

IronPDFを始めましょう

今日から無料トライアルでIronPDFをあなたのプロジェクトで使い始めましょう。

最初のステップ:
green arrow pointer


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");
Imports IronPdf
Imports IronPdf.Rendering

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

Dim pdfWithRevision As PdfDocument = pdf.SaveAsRevision()

pdfWithRevision.SaveAs("annual_census_2.pdf")
VB   C#

署名のためのインクリメンタルセーブの理解

一部のユーザーが使用するChromeブラウザーでは1つのバージョンしか表示されないことがありますが、PDFファイルにはGitのコミット履歴に似た形でドキュメントの過去のバージョンを保存する機能があります。 これは、Adobe Acrobatのような高度なPDFビューアで確認できます。

PDF署名を扱う際、これは重要なポイントです。というのも、PDFに署名する行為は現在のPDFバージョンに適用されるからです。 お客様のPDFには、古いバージョンの署名が含まれている場合や、署名されていないバージョンがいくつか含まれている場合があります。 このような例をイメージしてください:

PDFドキュメントの繰り返し 証明書A 証明書 B 証明書C 証明書 D
最初の保存

フィールド編集のみ

フィールド編集のみ
(編集されたフォームフィールドのみ)

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

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

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

上記は、6回にわたって繰り返された文書です。 この文書は、承認を得て最終的な第3版まで会社の各部署で回覧される場合があります。この版では、Person A と Person B が「フォームフィールドの編集のみ」の権限を設定して文書に署名しました。 この意味は、PDFドキュメントのフォームフィールドの記入が許可されていますが、それ以外の変更を行うと署名が無効になることを意味します。

上記の例では、C#がフォームに必要事項を記入し、A、B、Dに送り返した後、A、B、Dが「編集禁止」の許可を得て署名したものとします。 このドキュメントで無効化するアクションは一切行われていないため、IronPDFの署名メソッドを実行すると、trueが返されます。

旧バージョンにロールバック

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");
Imports IronPdf

Private pdf As PdfDocument = PdfDocument.FromFile("report.pdf")

Private versions As Integer = pdf.RevisionCount ' total revisions

Private rolledBackPdf As PdfDocument = pdf.GetRevision(2)
rolledBackPdf.SaveAs("report-draft.pdf")
VB   C#