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

Chaknith Bin
Chaknith Bin
6 de noviembre, 2023
Actualizado 10 de diciembre, 2024
Compartir:
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.

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

[{i:(Para mejorar el rendimiento de exportación de PDFs, hemos configurado la opción TrackChanges en falso. Esta opción debe establecerse en verdadero para 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");

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:

PDF Document IterationCertificate ACertificate BCertificate CCertificate D
0 (first save)
1
2
3
(form field edits only)

(form field edits only)
4 (only form fields edited)
5
(no further edits allowed)

(no further edits allowed)

(no further edits allowed)

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 realizaron acciones que invaliden este documento, cuando ejecutemos el método de firma de IronPDF, obtendremos true.

Volver a una revisión anterior

Para revertir a una revisión anterior de un PDF, puedes usar 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");
Chaknith Bin
Ingeniero de software
Chaknith trabaja en IronXL e IronBarcode. Tiene una gran experiencia en C# y .NET, ayudando a mejorar el software y a apoyar a los clientes. Sus conocimientos de las interacciones con los usuarios contribuyen a mejorar los productos, la documentación y la experiencia general.