Cómo guardar y editar el historial de revisiones de PDF

El historial de revisiones de PDF hace referencia a una función o capacidad que permite realizar un seguimiento y gestionar los cambios realizados en un documento PDF a lo largo del tiempo. Suele utilizarse en situaciones en las que varios usuarios colaboran en un documento y se desea mantener un registro de las revisiones del documento, incluido quién realizó los cambios y cuándo.

En el contexto de las firmas digitales, IronPdf cuenta con la capacidad de gestionar el historial de revisiones y retroceder a una versión específica.

Biblioteca NuGet C# para PDF

Instalar con NuGet

Install-Package IronPdf
o
Java PDF JAR

Descargar DLL

Descargar DLL

Instalar manualmente en su proyecto

Guardar y firmar una iteración de revisión en PDF

En el siguiente ejemplo abrimos un archivo PDF, realizamos varias ediciones y, antes de guardarlo, lo firmamos. Para los permisos de firma, sólo permitiremos rellenar formularios como futuras ediciones, de lo contrario la firma quedará invalidada de cualquier otra edición.

A continuación, llamaremos a SaveAsRevision para guardar la revisión en el historial y luego guardar nuestro nuevo documento en el disco.

Tenga en cuenta
Para mejorar el rendimiento de la exportación de PDF, hemos establecido la opción TrackChanges en false. Esta opción debe estar activada para poder utilizar la función de guardado incremental.

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

//  Importar PDF y activar TrackChanges
PdfDocument pdf = PdfDocument.FromFile("annual_census.pdf", TrackChanges: ChangeTrackingModes.EnableChangeTracking);
//  ... varias ediciones ...
pdf.SignWithFile("/assets/IronSignature.p12", "password", null, IronPdf.Signing.SignaturePermissions.FormFillingAllowed);

PdfDocument pdfWithRevision = pdf.SaveAsRevision();

pdfWithRevision.SaveAs("annual_census_2.pdf");
Imports IronPdf
Imports IronPdf.Rendering

'  Importar PDF y activar TrackChanges
Private pdf As PdfDocument = PdfDocument.FromFile("annual_census.pdf", TrackChanges:= ChangeTrackingModes.EnableChangeTracking)
'  ... varias ediciones ...
pdf.SignWithFile("/assets/IronSignature.p12", "password", Nothing, IronPdf.Signing.SignaturePermissions.FormFillingAllowed)

Dim pdfWithRevision As PdfDocument = pdf.SaveAsRevision()

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

Comprender el ahorro incremental para las firmas

Mientras que algunos visores, como el navegador Chrome, sólo muestran una versión, los archivos PDF tienen la capacidad de almacenar versiones anteriores del documento, de forma similar al historial de commits de Git. Lo verá en visores de PDF más avanzados, como Adobe Acrobat.

Cuando se trata de firmas de PDF, es importante saber esto porque la acción de firmar un PDF se aplica a la iteración actual del PDF. Su PDF puede tener firmas de iteraciones anteriores, o puede tener algunas versiones sin firmar. Podemos visualizar un ejemplo como el siguiente:

Iteración de documentos PDFCertificado ACertificado BCertificado CCertificado D
0 (primera parada)
1
2
3
(sólo edición de campos de formulario)

(sólo edición de campos de formulario)
4 (sólo campos de formulario editados)
5
(no se permiten más ediciones)

(no se permiten más ediciones)

(no se permiten más ediciones)

Arriba tenemos un documento que ha pasado por 6 iteraciones diferentes. Este documento puede estar pasando por los departamentos de una empresa con aprobación hasta ser finalizado en la iteración 3. En esta iteración, tanto la Persona A como la Persona B firmaron el documento con el permiso "Sólo edición de campos de formulario". Esto significa que se permite rellenar los campos del formulario en el documento PDF, pero cualquier otro cambio en el documento invalidará sus firmas.

En el ejemplo anterior, podemos suponer que la Persona C es la que ha rellenado el formulario y lo ha devuelto a las Personas A, C y D, que han firmado el documento por última vez con el permiso "No se permiten modificaciones". Dado que en este documento no se han realizado acciones ilegales que invaliden las firmas, cuando ejecutemos el método de firma de IronPDF obtendremos true.

Volver a una revisión anterior

Para volver a una revisión anterior de un PDF, puede utilizar el método GetRevision. Esto olvidará cualquier cambio realizado desde esta revisión, incluidas las firmas más recientes. Para ello, utilice:

: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; //  revisiones totales

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 '  revisiones totales

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