Firma electrónica de informes |
Responder |
Autor | |
main
Colaborador Unido: 31/Agosto/2009 Localización: OVIEDO Estado: Sin conexión Puntos: 1258 |
Opciones de entrada
Gracias(1)
Enviado: 06/Diciembre/2021 a las 12:38 |
Hola Aunque yo no lo he probado, pero si lo tenia por un cajón, lo he rescatado y lo pongo aqui por si fuera de interes apara mejorar esas rutinas. 1.- Con GUI, para que el usuario seleccione certificado, pero pasando los archivos para Facturae: 'AutoFirmaCommandLine.exe sign -gui -i "path\archivo.xml" -o "path\archivo.xml_signed.xsig" -format facturae -store auto 'SACADO CON KEYTOOL 2.- Sin GUI, pasando los datos del certificado: 'AutoFirmaCommandLine.exe sign -i "path\archivo.xml" -o "path\archivo.xml_signed.xsig" -format facturae -store auto -password XXXXXXXX -alias 3 Sin GUI, para firma de PDF, pasando los datos 'AutoFirmaCommandLine.exe sign -i "path\archivo.pdf" -o "path\archivo_signed.pdf" -format pades -store auto -password XXXXXXXX -alias Saludos
|
|
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 13990 |
Opciones de entrada
Gracias(0)
|
Utiliza el Shell de WScript, te permite ejecución síncrona / asíncrona ...
Edito: por cierto, la misma rutina que te funcione en VBA-Excel te funciona en VBA-Access.
Editado por Mihura - 04/Diciembre/2021 a las 15:54 |
|
robertocm
Nuevo Unido: 04/Diciembre/2021 Localización: Undisclosed Estado: Sin conexión Puntos: 2 |
Opciones de entrada
Gracias(0)
|
Buenos días,
Creo que la función Shell no se adapta bien para esperar a que AutoFirma finalice (pensando en abrir el pdf tras la firma y/o firmar varios archivos en una carpeta). Estoy haciendo unas pruebas con AutoFirma desde Excel VBA (de Access ni idea...) #If VBA7 Then 'http://www.jkp-ads.com/articles/apideclarations.asp Public Declare PtrSafe Function PlayWavSound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long Public Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As LongPtr, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPtr #Else Public Declare Function PlayWavSound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal LpszSoundName As String, ByVal uFlags As Long) As Long Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long #End If Sub test() Dim sFolder As String, SoundName As String sFolder = CreateObject("WScript.Shell").specialfolders("Desktop") '===== AutoFirma ===== Dim sFileAutoFirma As String Dim sInputFile As String Dim sOutputFile As String Dim sFileCert As String Dim sPwdCert As String Dim sNIF As String Dim sConfig As String Dim iPositionOnPageUpperRightX As Integer Dim iPositionOnPageUpperRightY As Integer Dim iPositionOnPageLowerLeftX As Integer Dim iPositionOnPageLowerLeftY As Integer Dim sFontColor As String Dim iFontSize As Integer Dim iFontFamily As Integer Dim iFontStyle As Integer Dim iSignaturePage As Integer Dim slayer2Text As String sFileAutoFirma = "C:\Archivos de programa\AutoFirma\AutoFirma\AutoFirma.exe" 'sFileAutoFirma = "C:\Program Files\AutoFirma\AutoFirma\AutoFirma.exe" 'sFileAutoFirma = "C:\Program Files\AutoFirma\AutoFirma\AutoFirmaCommandLine.exe" sInputFile = sFolder & "\test.pdf" sOutputFile = Replace(sInputFile, ".pdf", "_signed.pdf") sFileCert = sFolder & "\Ciudadano_autenticación_activo.pfx" sPwdCert = "369258" sNIF = "99999018D" iPositionOnPageUpperRightX = 540 iPositionOnPageUpperRightY = 174 iPositionOnPageLowerLeftX = 350 iPositionOnPageLowerLeftY = 92 sFontColor = "black" iFontSize = 8 iFontFamily = 1 iFontStyle = "0" iSignaturePage = -1 'Sólo para versión 1.6 o superior 'slayer2Text = "\nlayer2Text=Firma $$ORGANIZATION$$ $$SIGNDATE=dd/MM/yyyy$$ (cert FNMT)" sConfig = "signaturePositionOnPageLowerLeftX=" & iPositionOnPageLowerLeftX & "\n" _ & "signaturePositionOnPageLowerLeftY=" & iPositionOnPageLowerLeftY & "\n" _ & "signaturePositionOnPageUpperRightX=" & iPositionOnPageUpperRightX & "\n" _ & "signaturePositionOnPageUpperRightY=" & iPositionOnPageUpperRightY & "\n" _ & "layer2FontColor=" & sFontColor & "\n" _ & "layer2FontSize=" & iFontSize & "\n" _ & "layer2FontFamily=" & iFontFamily & "\n" _ & "layer2FontStyle=" & iFontStyle & "\n" _ & "signaturePage=" & iSignaturePage _ & slayer2Text Dim s As String s = AutoFirma(sFileAutoFirma, sInputFile, sOutputFile, sFileCert, sPwdCert, sNIF, sConfig) Debug.Print s SoundName = "C:\WINDOWS\Media\Chimes.wav" 'tada.wav, ir_begin.wav PlayWavSound SoundName, 1 Call ShellExecute(0&, vbNullString, sOutputFile, vbNullString, vbNullString, vbNormalFocus) End Sub Function AutoFirma(sFileAutoFirma As String, _ sInputFile As String, _ sOutputFile As String, _ sFileCert As String, _ sPwdCert As String, _ sNIF As String, _ sConfig As String) As String 'https://github.com/ctt-gob-es/clienteafirma/issues/20 'AutoFirma: Firmar desde linea de comandos 'Author: Joaquín Ferrero, Mar 6 '21 (joaquinferrero) Dim objShell As Object, objCmdExec As Object, sCmd As String On Error Resume Next Set objShell = CreateObject("WScript.Shell") 'Check if the Windows Script Host object was created. If Err.Number <> 0 Then MsgBox "Couldn't create the WshShell object", vbCritical, "Error" GoTo CleanUp End If On Error GoTo ExceptionHandling sCmd = Chr(34) & sFileAutoFirma & Chr(34) _ & " sign -i " & Chr(34) & sInputFile & Chr(34) _ & " -o " & Chr(34) & sOutputFile & Chr(34) _ & " -format pades" _ & " -store pkcs12:" & Chr(34) & sFileCert & Chr(34) _ & " -password " & sPwdCert _ & " -filter subject.contains:" & sNIF _ & " -config " & Chr(34) & sConfig & Chr(34) Set objCmdExec = objShell.exec(sCmd) AutoFirma = objCmdExec.StdOut.ReadAll CleanUp: On Error Resume Next Exit Function ExceptionHandling: MsgBox "Error: " & Err.Description Resume CleanUp Resume 'for debugging End Function |
|
acilu55
Asiduo Unido: 27/Septiembre/2011 Estado: Sin conexión Puntos: 214 |
Opciones de entrada
Gracias(0)
|
mas sencillo todavia
shell AutoFirmaCommandLine.exe sign -certgui -i c:\su\fichero.pdf -o c:\su\ficherofirmado.pdf
|
|
Gracias a todos de antemano
|
|
acilu55
Asiduo Unido: 27/Septiembre/2011 Estado: Sin conexión Puntos: 214 |
Opciones de entrada
Gracias(0)
|
el parametro -certgui te permite colocar la firma donde quieras y hacerla visible, incluso poner una firma reducida en todas las paginas, si usas -cert la firma será invisible. Dado que es una firma digital, la validez en ambos casos es la misma, dependerá de tu certificado únicamnte.
|
|
Gracias a todos de antemano
|
|
acilu55
Asiduo Unido: 27/Septiembre/2011 Estado: Sin conexión Puntos: 214 |
Opciones de entrada
Gracias(0)
|
el programa Autofirma es gratuito y con el puedes firmar un documento desde access, e incluso hacer o no visible la firma digital con multiples variables.
puedes hacerlo mediante una llamada a un .bat desde la consola o abrirlo con Shell., seleccionar el certificado si tienes varios (FMNT, DNI etc) en fin bastante completo y facil de usar ruta = "AutoFirmaCommandLine.exe sign -certgui -i " & Me.Lista23.ItemData(n) & " -o " & Left(Me.Lista23.ItemData(n), Len(Me.Lista23.ItemData(n)) - 4) & "-firmado.pdf" & " -format auto -store auto -password ******* -alias CertFirmaDigital" Shell ruta 'en la lista23 está el fichero que quiero firmar si son varios hago un bucle, pero en este caso tengo que colocar la posición de la firma uno por no si esta es diferente.
|
|
Gracias a todos de antemano
|
|
Istb
Nuevo Unido: 13/Abril/2021 Localización: Madrid Estado: Sin conexión Puntos: 2 |
Opciones de entrada
Gracias(0)
|
Hola Mihura, Si quieres utilizar en tu empresa la firma electrónica, te recomiendo la aplicación de Firmafy. La he estado probando y está muy bien de precio en comparación a otras, y la recomiendo para firmar rápido cualquier documento. Espero poder ayudarte con esto, por aquí te dejo el enlace a la página:[URL=http://firmafy.com/] |
|
Maverick2019
Habitual Unido: 10/Junio/2019 Localización: Madrid Estado: Sin conexión Puntos: 145 |
Opciones de entrada
Gracias(0)
|
jregistros, si tienes algún resultado (positivo o negativo) indícanoslo en éste hilo, para tener documentado el tema para futuros usuarios
|
|
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 13990 |
Opciones de entrada
Gracias(0)
|
jregistros,
No era a ti la pregunta, sino a Curcile que pone el link de una web y no se ver en ésta dónde está lo de la firma digital. |
|
jregistros
Nuevo Unido: 28/Noviembre/2019 Localización: españa Estado: Sin conexión Puntos: 5 |
Opciones de entrada
Gracias(0)
|
En la última versión de pdf creator free 3.5.1:
Perfiles-> seguridad -> activas firma y eliges el archivo con el certificado digital. |
|
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 13990 |
Opciones de entrada
Gracias(0)
|
Curcile,
¿Y en dónde te permite incluir la firma digital? .... no lo encuentro
|
|
Curcile
Nuevo Unido: 09/Diciembre/2019 Localización: España Estado: Sin conexión Puntos: 4 |
Opciones de entrada
Gracias(0)
|
Yo en vez del pdf creator, lo que hago es convertir con esta web www.convertidor.es y me va perfecto
|
|
jregistros
Nuevo Unido: 28/Noviembre/2019 Localización: españa Estado: Sin conexión Puntos: 5 |
Opciones de entrada
Gracias(0)
|
Muchas gracias, utilizo la impresora de pdf creator para crear pdf's pero desconocía la sección pdf/signature. Lo investigaré.
Saludos.
|
|
Maverick2019
Habitual Unido: 10/Junio/2019 Localización: Madrid Estado: Sin conexión Puntos: 145 |
Opciones de entrada
Gracias(0)
|
Hola
Prueba el PDF Creator, tal como indican aquí: https://www.emezeta.com/articulos/como-firmar-pdf-con-certificado-digital Salu2,
|
|
jregistros
Nuevo Unido: 28/Noviembre/2019 Localización: españa Estado: Sin conexión Puntos: 5 |
Opciones de entrada
Gracias(0)
|
Hola a tod@s. Necesito crear un informe a través de Access y remitirlo vía email. Previamente debe ser firmado con certificado electrónico reconocido.
Ahora lo estoy haciendo manualmente: el informe se convierte a pdf, lo firmo con el certificado de la FNMT y lo envío por email. ¿Alguna idea de cómo automatizar el proceso? Un saludo. |
|
Responder | |
Tweet
|
Ir al foro | Permisos de foro Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |