Firma Digital PDF en PoweBuilder

 


Hace tiempo que tengo este ejemplo preparado para ser publicado, pero en los últimos meses no he tenido mucho tiempo para poder hacerlo...

Hoy os traigo otro ejemplo de librería en C# creada para extender las posibilidades que nos ofrece hoy en día PowerBuilder.

En esta ocasión he creado una librería NetCore a la que he llamado NetPdfService, que utiliza la librería iTextSharp para firmar digitalmente los archivos PDF.

En este ejemplo se usa también la librería que creé en el post del 20 de Enero titulado "PowerBuilder FileService (C# System.IO)" para hacer algunas comprabciónes con el archivo pdf y el archivo del certificado digital.

En fin, lo único que nos interesa son los dos métodos of_firmar de la clase nvo_pdfservice que nos permiten firmar digitalmente el pdf. La diferencia entre ambos métodos es que en uno se usa una imagen para firmar visualmente y en el otro no.



La firma visual se podría capturar previamente con una tableta digital, pero eso no lo he desarollado en este ejemplo.

Cabe mencionar que las coordenadas en documento PDF empiezan en la esquina inferior izquierda, cosa que al principio puede resultar un poco liosa. En caso de duda se puede ir probando hasta encontrar la combinación deseada.

Con las corrdenadas que he puesto el documento queda mas o menos así:


Para que se pueda probar el ejemplo he añadido un certificado digital de prueba llamado firma.pfx.

06-12-2022: Proyecto descrito en artículo archivado. Nueva versión en repositorio con librería en .Net6 y PowerBuilder 2022 build 1892.

Os dejo el enlace de proyecto actual en GitHub:

github.com/rasanfe/pdfsign

Y proyecto en Visual Studio 2022:

github.com/rasanfe/NetPdfService

Para los que necesiten versiones anteriores como la descrita en este artículo:

Proyecto PowerBuilder 11.5 Build 2506

Proyecto PowerBuilder 12.6 build 3506

Proyecto Visual Studio 2022 NetCore 3.1 COM/ActiveX

Proyecto PowerBuilder 2019 build 2779

Proyecto PowerBuilder 2021 build 1509

Proyecto Visual Studio 2022 NetCore 3.1

Comentarios