signpdfkit
v1.0.7
Published
JavaScript/WebAssembly library for signing PDF files directly in Node.js
Maintainers
Readme
SignPDFKit
SignPDFKit is a JavaScript/WebAssembly library for signing PDF files directly in Node.js or the browser.
It bundles a high-performance WebAssembly backend for handling PDF signing without external dependencies.
📦 Installation
npm install signpdfkit
## Example Usageimport { sign, verify } from 'signpdfkit';
(async () => {
// Add this at the very top of your main.js, before any WASM-related code const callbackFunc = function(base64Digest, optionParams) { return new Promise((resolve, reject) => {
// Process CMS using base64Digest and optionParams which pass in sign function
try {
const jsonData = {
cms: base64CMS, // base64 of CMS
ocsp: [], // List base64 of OCSP Response (if DSS = 1)
crl: [] // List base64 of CRL (if DSS = 1)
};
const jsonStr = JSON.stringify(jsonData);
// Choose the right encoding method based on environment
let jsonBase64;
if (typeof Buffer !== 'undefined') {
// Node.js
jsonBase64 = Buffer.from(jsonStr).toString('base64');
} else {
// Browser
jsonBase64 = btoa(unescape(encodeURIComponent(jsonStr)));
}
resolve(jsonBase64);
} catch (err) {
reject(err);
}
});}; const optionParams = { email: "[email protected]", password: "P@ssw0rd" };
const outputData = await sign( JSON.stringify(optionParams, null, 2), callbackFunc, "./input/sample.pdf", // input pdf "./assets/output/js.pdf", // output pdf "./input/visualization.png", // visualization image "https://example.com", // url for qrcode "Jakarta", // location "Need to sign", // reason "[email protected]", // contact info "BSrE", // field id "#", // Character 0, // signature_type 1, // page 1, // is_pades 0, // typ 100.0, // Rect x 100.0, // Rect y 100.0, // Rect width 100.0, // Rect height 0, // dss ); // outputData is buffer of signed PDF
let verificationResult = await verify("./input/sample_signed.pdf"); // verificationResult is json string })();
