Signing a PDF in Node.js so that Adobe Reader shows the green tick — "Signed and all signatures are valid" — with a trusted timestamp and long-term validation (LTV) has always been awkward in the Node ecosystem.
ATick makes it a few lines.
Install
npm install atick
Sign with a green tick, timestamp and LTV
const atick = require("atick");
const fs = require("fs");
const pdf = fs.readFileSync("doc.pdf");
const pfx = fs.readFileSync("my.pfx");
const signed = atick.signPfx(pdf, pfx, JSON.stringify({
password: "your-password", cn: "Axonate Tech", reason: "Approved",
green_tick: true, page: 1, rect: [300, 55, 575, 175],
pades: true, timestamp: true, ltv: true, // PAdES-B-LT
}));
fs.writeFileSync("signed.pdf", signed);
TypeScript works the same (import * as atick from "atick"). Open signed.pdf in Adobe Reader — with a trusted certificate it shows the green tick and "Signed and all signatures are valid."
-
green_tick→ the validity mark Adobe greens for a valid + trusted certificate -
pades/timestamp/ltv→ PAdES-B-LT (addltafor B-LTA)
More than the basics
-
USB token / smart-card / HSM via PKCS#11 —
atick.signPkcs11(...). -
Deferred / remote-key / eSign —
atick.prepareDeferred(...)thenatick.embed(...). - Certified (no-changes) signatures, encrypted output, and a fully customizable appearance.
The same API exists in Python, Java, .NET and PHP — one engine, five languages.
Links
- Docs: https://atick.readthedocs.io/docs/node/
- PAdES & LTV: https://atick.readthedocs.io/docs/node/pades/
ATick is free under AGPL-3.0 (a commercial license is only needed to resell it). A product by Axonate Tech.


Top comments (0)