i was looking for a solution to digitally sign a pdf with a self-signed certificat and came across a video in youtube explaining the process using pdf-lib and node-signpdf libraries. However, after following the instructions it didnt work as intended and encountered a problem:
repo : https://github.com/RichardBray/pdf_sign
Demo ( 8 mins video ) : https://www.youtube.com/watch?v=OFZK5lc70OI&list=PLXUfmx2SIgyICZP-rA84Sle_ghq30W89N&index=4&t=1s
import SignPDF from "./SignPDF";
import fs from "node:fs";
import path from "node:path";
async function main() {
const pdfBuffer = new SignPDF(
path.resolve("test_assets/minions.pdf"),
path.resolve("test_assets/certificate.p12")
);
const signedDocs = await pdfBuffer.signPDF();
const randomNumber = Math.floor(Math.random() * 5000);
const pdfName = `./exports/exported_file_${randomNumber}.pdf`;
fs.writeFileSync(pdfName, signedDocs);
console.log(`New Signed PDF created called: ${pdfName}`);
}
main();
> pdf_sign@1.0.0 start
> npm run build && node dist/index.js
> pdf_sign@1.0.0 build
> ./node_modules/.bin/babel ./src -d ./dist
'.' is not recognized as an internal command
or external, an executable program or a batch file.
Uncaught SyntaxError c:\\Users\\ACER\\Documents\\GitHub\\pdf_sign\\src\\index.js:1
import SignPDF from "./SignPDF";
^^^^^^
SyntaxError: Cannot use import statement outside a module
at compileFunction (undefined:352:18)
at wrapSafe (undefined:1031:15)
at Module.\_compile (undefined:1065:27)
at Module.\_extensions..js (undefined:1153:10)
at Module.load (undefined:981:32)
at Module.\_load (undefined:822:12)
at executeUserEntryPoint (undefined:81:12)
at \<anonymous\> (undefined:17:47)
SyntaxError: Cannot use import statement outside a module
Means Node doesn't recognize your script as a module.
You can either add "type": "module"
to your package.json
or change the file extension to .mjs
and then Node should allow you to use the import
keyword.