
This is quite a technical update. If you’d prefer a non-technical overview, jump to the Summary right at the end; otherwise, read on for the details.
Today we’re rolling out a major upgrade to Annature’s PDF processing pipeline. We process millions of PDFs every week, so faster uploads, far more reliable conversions and much better output fidelity make a real, day-to-day difference when preparing and signing documents.
Every time a PDF is uploaded we rasterise each page to a PNG so the document can be displayed, annotated and signed in the browser.
That’s standard for web-based digital signing: you don’t interact with the PDF directly in the browser — you interact with page images (one PNG per page) and signature/field overlays rendered on top of those images.
For this to work reliably a PDF needs to be reasonably well-formed; when PDFs are malformed the rasterisation step becomes slow, lossy or error-prone.
Many PDFs aren’t produced “to spec”. Systems that generate PDFs (accounting software, portals, CRMs and government sites) often emit files that are technically malformed. In fact, roughly 90% of files uploaded to Annature aren’t fully compliant with the ISO 32000 PDF specification.
The result: conversions fail, pages take ages to render, text gets scrambled, form fields don’t flatten correctly and hyperlinks disappear. In December 2025 the main library we relied on reached end-of-life, so we used that moment to move to a modern, actively supported processing stack.
Over the past month we handled bug reports where malformed PDFs were a) not uploading, b) uploading but taking ages to process, or c) uploading but being modified in ways that damaged content. We fixed those issues and completed a wholesale migration to the new processor.
Migrated the PDF processor to a modern, actively supported processing stack with much better handling of malformed PDFs.
Reworked our normalisation and optimisation steps so malformed documents are sanitised and standardised automatically.
Hardened field flattening, text handling and hyperlink preservation so documents remain intact during processing.
Tuned PDF compression: small files get better compression; large files now prioritise speed.
Extensive end-to-end testing and regression work to ensure full fidelity for previously problematic documents.
Uploads are 5–6× faster once your file reaches our servers (your local network speed still applies, so if you have poor internet you won’t see much difference on the client side).
PDF → PNG processing is 11–12× faster — and that’s the big practical win. When you upload a PDF to prepare an envelope we show a page tally (e.g. 1/32, 2/32) while we rasterise each page to a PNG. You must wait for that processing to finish before you can add fields and prepare the document. Because rasterisation is now an order of magnitude faster, that wait time is dramatically reduced — you can start adding fields and preparing envelopes much sooner.
Signing and viewing large documents feels snappier thanks to better compression. For PDFs under 5 MB compression is ~100% better, which means the browser downloads far less image data (we’re often sending ~50% less data than before). The result: pages load faster while signers move through a large document and scrolling or navigating pages is noticeably quicker.
API behaviour improves too — for integrations that send envelopes via the API, the “envelope_sent” webhook is only fired after page processing completes. Faster processing therefore means webhooks and downstream automation trigger sooner.
Fidelity: malformed PDFs that previously produced scrambled text, broken fields or missing links now process correctly and preserve original content.
Reliability: far fewer edge-case failures and one-off fixes — the pipeline is much more robust and predictable.
Note on large files: for PDFs over 5 MB we now prioritise processing speed over the absolute smallest output size. Practically this means very large files will process much faster, but the resulting images or outputs may be larger than before. For PDFs under 5 MB we’ve improved compression without compromising quality.
Faster uploads and dramatically faster processing mean envelopes are ready sooner, signers see document pages load and navigate much faster, API-driven envelopes trigger webhooks earlier, and your teams spend less time waiting or re-uploading documents. Better fidelity means fewer manual interventions and far fewer cases where PDF content is changed or lost during conversion.
Because of these upgrades we’ve increased some of the limits across the app:
Individual document size (pre-processing): 30 MB → 50 MB.
Total envelope size (pre-processing): 30 MB → 50 MB (sum of all documents uploaded to an envelope).
Pages per document: 500 → 2,000.
Pages per envelope (total): 500 → 2,000.
These are significant increases and have only been possible because of the performance, reliability and compression improvements in the new pipeline. Note: we measure the file-size limits at upload (pre-processing).
We rebuilt the part of Annature that turns PDFs into the images you see when preparing and signing documents.
Uploads and page processing are much faster: you’ll see 5–12× improvements depending on the step. The page tally you watch when preparing an envelope now completes much quicker, letting you add fields and send envelopes sooner.
Smaller PDFs compress much better; very large PDFs now process much faster. This also means signers download less data when browsing large documents.
We’ve increased document limits: up to 50 MB per document, 50 MB total per envelope, and up to 2,000 pages per document / per envelope.
Fewer broken documents and far fewer edge-case failures — text, fields and links are preserved much more reliably.
No action required: just upload documents as before. If something looks wrong, send us the PDF and we’ll sort it.
This update is live in production. We’ll keep monitoring for any remaining edge cases — and a big thank-you to everyone who reported problematic PDFs and for your patience while we completed the upgrade.