node-signpdf
node-signpdf copied to clipboard
Document partially signed
Hi! I signed an existing pdf with the following code:
import fs from 'fs';
import { SignPdf, plainAddPlaceholder } from 'node-signpdf';
const signer = new SignPdf()
const p12Buffer = fs.readFileSync("./cert.p12");
let pdfBuffer = fs.readFileSync("./original.pdf");
let pdfWithPlaceHolderBuffer = plainAddPlaceholder({
pdfBuffer,
reason: 'Some reason',
location: 'Some City',
signatureLength: 15708,
});
let signedPdfBuffer = signer.sign(pdfWithPlaceHolderBuffer, p12Buffer, {
passphrase: process.env.CERTIFICATE_PASSPHRASE,
});
fs.createWriteStream("./signed.pdf").write(signedPdfBuffer);
Adobe Acrobat says the signature is not valid and that the certificate has "invalid policy constraint":
LibreOffice Draw, however, says the document is only partially signed and that the certificate is good:
When I use Acrobat to sign the same document with the same certificate (although from the Windows Certificate Store, not from a p12 file), the signature is considered valid by LibreOffice:
I don't have a lot of experience signing pdf files with x.509 certificates, so this is all very confusing to me. I don't know how to interpret these errors. Any help is appreciated!
I tried your code, but show me this error:
SignPdfError: Expected xref at NaN but found other content.
at getXref (/home/hermes/Projetos/pdf/pdf_sign/node_modules/node-signpdf/dist/helpers/plainAddPlaceholder/readRefTable.js:36:13)
at getFullXrefTable (/home/hermes/Projetos/pdf/pdf_sign/node_modules/node-signpdf/dist/helpers/plainAddPlaceholder/readRefTable.js:88:25)
at readRefTable (/home/hermes/Projetos/pdf/pdf_sign/node_modules/node-signpdf/dist/helpers/plainAddPlaceholder/readRefTable.js:108:25)
at readPdf (/home/hermes/Projetos/pdf/pdf_sign/node_modules/node-signpdf/dist/helpers/plainAddPlaceholder/readPdf.js:47:46)
at plainAddPlaceholder (/home/hermes/Projetos/pdf/pdf_sign/node_modules/node-signpdf/dist/helpers/plainAddPlaceholder/index.js:58:37)
at Object.<anonymous> (/home/hermes/Projetos/pdf/pdf_sign/dist/pfx.js:15:69)
at Module._compile (node:internal/modules/cjs/loader:1105:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12) {
type: 3
}
error Command failed with exit code 1.
Você é Brasileiro?
Sim, eu sou brasileiro. Você tá com o certificado e o pdf original no mesmo diretório do script? Os nomes são cert.p12 e original.pdf?
Sim, eu sou brasileiro. Você tá com o certificado e o pdf original no mesmo diretório do script? Os nomes são cert.p12 e original.pdf?
Sim, os arquivos são encontrados.
Topa um freela? https://www.99freelas.com.br/project/assinar-pdf-com-node-signpdf-em-vue3-compostion-api-365076
Sim, eu sou brasileiro. Você tá com o certificado e o pdf original no mesmo diretório do script? Os nomes são cert.p12 e original.pdf?
Sim, os arquivos são encontrados.
Topa um freela? https://www.99freelas.com.br/project/assinar-pdf-com-node-signpdf-em-vue3-compostion-api-365076
Não, obrigado. Brother, não vou poder te ajudar. Boa sorte!
This issue has been automatically marked as stale because it has not had activity in the past 90 days. It will be closed if no further activity occurs. Thank you for your contributions.