Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

JorgeRocha

PDF - Assinaturas .net

Recommended Posts

JorgeRocha

Boas

Alguem conhece como se pode fazer uma assinatura digital de um PDF a partir de um .pfx ? Ou seja gerar um PDF assinado eletronicamente. 

Isto nada tem a ver com as faturas eletrónicas do estado...

Share this post


Link to post
Share on other sites
desconfiado

Este tópico já é antigo mas aqui fica para quem necessitar.

Para assinar um PDF através de uma assinatura digital em .pfx eu utilizo o SPIRE.PDF que podem obter gratuitamente. Depois o código (em VB .NET) é muito simples e passo a apresentar abaixo. Este código é um utilitário command line que eu criei para assinar PDFs. Basta chamar o comando com os parâmetros indicados.

Imports Spire.Pdf
Imports Spire.Pdf.Security

Module Module1

    Sub Main()

        ' Get the values of the command line in an array
        ' Index  Discription
        ' 0      Full path of executing prograsm with program name
        ' 1      Documento PDF a assinar
        ' 2      Certificado (ficheiro .PFX) a usar na assinatura
        ' 3      Password do ficheiro .PFX
        Dim clArgs() As String = Environment.GetCommandLineArgs()
        ' Hold the command line values
        Dim pdf As String
        Dim pfx As String
        Dim pwd As String
        ' Test to see if two switchs and two values were passed in
        ' if yes parse the array
        If clArgs.Count() = 4 Then
            pdf = clArgs(1)
            pfx = clArgs(2)
            pwd = clArgs(3)

            Try
                Dim doc As PdfDocument = New PdfDocument()
                doc.LoadFromFile(pdf)
                Dim pfxPath As String = pfx
                Dim digi As PdfCertificate = New PdfCertificate(pfxPath, pwd)
                Dim signature As PdfSignature = New PdfSignature(doc, doc.Pages(0), digi, "Assinatura")
                signature.ContactInfo = "*****"
                signature.Certificated = True
                signature.DocumentPermissions = PdfCertificationFlags.AllowFormFill
                doc.SaveToFile(pdf)
                Console.WriteLine("Documento assinado com sucesso.")
            Catch ex As Exception
                Console.WriteLine(ex.Message)
            End Try
        Else
            Console.WriteLine("Aplicação de assinatura de ficheiros PDF.")
            Console.WriteLine("Parametros da aplicação:")
            Console.WriteLine("AssinaPDF FicheiroPDF FicheiroPFX Password")
            Console.WriteLine(" - FicheiroPDF - Ficheiro PDF a assinar")
            Console.WriteLine(" - FicheiroPFX - Ficheiro PFX com certificado a usar.")
            Console.WriteLine(" - Password    - Password acesso ao ficheiro PFX")
            Console.WriteLine("")
        End If
    End Sub

End Module

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.