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

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

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 permite gestionar el historial de revisiones y volver a una versión específica.

Comience con IronPDF

Comience a usar IronPDF en su proyecto hoy con una prueba gratuita.

Primer Paso:
green arrow pointer


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.

Atención
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;

// 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#

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 este:

Iteración de documentos PDFCertificado ACertificado BCertificado CCertificado D
(primera parada)

(sólo edición de campos de formulario)

(sólo edición de campos de formulario)
(sólo campos de formulario editados)

(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 enviado de vuelta a las Personas A, B y D, que han firmado el documento una última vez con el permiso "No se permiten ediciones". Dado que no se han realizado acciones de invalidación en este documento, 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; // 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#