Hola Manuel,
El jSignPDF (
http://jsignpdf.sourceforge.net/) lo uso para firmar documentos en formato PDF.
Una vez descargado e instalado (lleva su propio motor JAVA por lo que es muy compacto y portable), se puede usar como programa windows independiente (jsignpdf.exe) o lo que para mi es mas interesante (porque asà lo puedo incluir en mis programas de forma transparente) desde la linea de comandos via waitRun() por ejemplo.
Para ello creo el siguiente archivo 'mifirma.BAT'
%1 -kst WINDOWS-MY %2 -d %3 -V -llx %4 -lly %5 -urx %6 -ury %7 -q -ki %8
al que hay que pasar los siguientes parámetros:
******* llamada al modulo de firma
%1 -> rutacompleta\jsignpdfC.exe
****** Documento antes y despues de firmado
%2 -> rutacompleta\documentoSinfirmar
%3 -> rutacompleta\documentoFirmado
*******Aquà las coordenadas del PDF donde deb aparecer la firma
%4 -> coordenada inferior X
%5 -> coordenada inferior Y
%6 -> coordenada superior X
%7 -> coordenada superior Y
******* certificado de firma
%8 -> numero de orden del certificado (empezando a contar desde 0)
Desde mi programa llamo al .bat y listo
waitRun( "mifirma.bat " + cFilePath(xModuloFirma)+"jsignpdfC.exe "+xOrigen+" "+xDestino+" "+xllx+" "+xlly+" "+xurx+" "+xury+" "+nOrden, .t. )
En cuanto a XML de la AEAT de momento solo lo utilizo para firmar documentos de la Agencia Tributaria, hasta ahora no he tenido necesidad de firmar facturas en este formato.
Saludos
