Version 3.2.0
A release about getting out of your way. The improvements below smooth over the rough edges you hit while signing: less guessing when something goes wrong, and fewer surprises when it goes right.
- Sign into an existing signature field — documents that pre-place a signature box for each signer can now be signed into those boxes instead of getting a new field on top. Pick the field from the new Signature field combo in the JavaFX Signature Appearance panel, or on the command line with
--sig-field(a field name,#Nfor the N-th field in document order, orautofor the first empty one);--list-sig-fieldsprints what a document offers. The field's own rectangle and page are used, so the position options are ignored and the appearance is drawn even without-V. A name that matches no empty field is an error rather than a silently created stray field, and--overwrite/ PDF encryption are refused because a non-incremental rewrite would drop your co-signers' signatures. Both bundled engines support it. See issue 223. - New
debugoutput for signing diagnostics — enable it on the new General tab of Preferences, or withdebug=trueinadvanced.properties(or-o debug=truefor a single CLI run), to log the signing certificate chain (subject, issuer, serial, validity, key usage, QC statements, and the AIA and CRL distribution-point URLs of each certificate) plus, for the DSS engine, the trust anchors it loaded and every AIA, CRL, and OCSP request with the target URL, the certificate it is for, the response size, the outcome, and the elapsed time. It is off by default so normal runs stay quiet;-qsilences everything regardless. See issue 452. - Preferences dialog gains a General tab gathering the signing-engine selection and the new
debugtoggle; both apply immediately. - Visible signature images keep their aspect ratio with the DSS engine — background and graphic images were previously stretched to fill the signature box and came out distorted. A
--bg-scaleof zero still stretches to fill; any other value fits the image and centers it, matching the OpenPDF engine. See issue 460. - Clear list in the Recent files menu — the File menu's recent-files trail can now be emptied on its own, which previously required a factory reset that discarded every other setting as well. The item appears only when there is something to clear. See issue 453.
- Pick the interface language — a new Language selector on the General tab of Preferences lets you choose the UI language explicitly instead of always following the operating-system locale; System default stays the default. It is stored as
ui.languageinadvanced.propertiesand works on the command line too (-o ui.language=de, e.g. to read--helpin German). The setting is read at startup, so restart to apply it, and it affects interface text only — number/date formatting and the signed output are unchanged. See issue 444. - Sign very large PDFs without a bigger heap — set
buffering.mode=tempinadvanced.properties(or-o buffering.mode=tempfor a single run) to stage the document in temporary files instead of on the Java heap, so its size no longer has to fit in-Xmx. A 400 MB document that fails with an out-of-memory error under a 512 MB heap signs fine on both engines with this on. Optionally pointbuffering.tempDirat a fast disk; with the DSS engine, add-Djava.io.tmpdirtoo if your system temporary directory is small or RAM-backed. The signed output is identical either way; the cost is disk space and a little speed. See issue 178. - Norwegian translation is now loaded — the bundled Norwegian Bokmål translation shipped under a file name (
messages_nb-NO.properties) that Java's resource loader never matched, so it silently rendered English. Renaming it tomessages_nb.propertiesmakes it apply for bothnbandnb-NOlocales.