pdf-firma-pades
v1.0.1
Published
Libreria Node.js para firma digital de PDF con PAdES Baseline (B-B).
Maintainers
Readme
PDF Firma
Solucion minima para firmar PDFs con PAdES-B-B usando Node.js.
Uso como libreria
const fs = require('fs');
const PdfSigner = require('pdf-firma-pades');
async function main() {
const signer = new PdfSigner('./certificado.pfx', 'TU_PASSWORD_PFX');
const input = fs.readFileSync('./documento.pdf');
const signed = await signer.sign(input);
fs.writeFileSync('./documento-firmado.pdf', signed);
}
main();Levantar en local
Requisitos
- Node.js 20+
- npm
1) Instalar dependencias
npm install2) Ejecutar firma por CLI
npm run sign:cli -- \
--p12 ./certificado.pfx \
--password TU_PASSWORD_PFX \
--input ./documento.pdf \
--output ./documento-firmado.pdfSalida esperada:
documento-firmado.pdf
3) Verificar que la firma incluya SigningCertificateV2
npm run sign:verify -- ./data/documento-firmado-nodered.pdfVariables de entorno (alternativa)
P12_PASSWORD=TU_PASSWORD_PFX \
P12_PATH=./certificado.pfx \
INPUT_PDF=./documento.pdf \
OUTPUT_PDF=./documento-firmado.pdf \
npm run sign:cliEjecucion con Docker
1) Preparar archivos
Crea una carpeta data/ en la raiz del proyecto y coloca:
data/certificado.pfxdata/documento.pdf
2) Definir contraseña del certificado
Crea un archivo .env en la raiz:
P12_PASSWORD=tu_password_pfx3) Ejecutar firma con Docker Compose
docker compose run --rm pdf-firmaSalida esperada:
data/documento-firmado.pdf
4) Cambiar nombres/rutas de archivos (opcional)
docker compose run --rm \
-e P12_PATH=/data/mi-cert.pfx \
-e INPUT_PDF=/data/mi-doc.pdf \
-e OUTPUT_PDF=/data/mi-doc-firmado.pdf \
pdf-firmaUso directo con docker run
docker build -t pdf-firma .
docker run --rm \
--user "$(id -u):$(id -g)" \
-v "$(pwd)/data:/data" \
-e P12_PASSWORD=tu_password_pfx \
-e P12_PATH=/data/certificado.pfx \
-e INPUT_PDF=/data/documento.pdf \
-e OUTPUT_PDF=/data/documento-firmado.pdf \
pdf-firmaNode-RED basico con la libreria
Este proyecto incluye una instancia Node-RED preconfigurada para usar PdfSigner.
1) Levantar Node-RED
docker compose up -d nodered2) Abrir editor
- URL:
http://localhost:1880
3) Ejecutar flow de firma
En el tab PDF Firma:
- Haz clic en
Deploy. - Presiona el nodo
Firmar documento.
Entrada/salida por defecto:
- Entrada:
/documents/documento.pdf - Certificado:
/documents/certificado.pfx - Salida:
/documents/documento-firmado-nodered.pdf
/documents apunta a la carpeta local ./data.
4) Contraseña del certificado
Node-RED usa P12_PASSWORD del .env del proyecto.
