Convert PDFs and images to PDF/A using JavaScript
Nutrient Web SDK enables you to convert PDFs, Office documents, and images to PDF/A client-side, without the need for server-side processing. For more information on the supported source file formats, see the list of supported file types.
Nutrient Web SDK supports converting source files into all PDF/A versions and conformance levels:
- PDF/A-1a, PDF/A-1b
- PDF/A-2a, PDF/A-2u, PDF/A-2b
- PDF/A-3a, PDF/A-3u, PDF/A-3b
- PDF/A-4, PDF/A-4e, PDF/A-4f
For more information on the long-term preservation of documents, check out our demo video below, or have a look at our complete guide to PDF/A.
Converting documents to PDF/A
To convert a PDF, an Office file, or an image to PDF/A, follow the steps below.
- Load the source file.
- Use the
exportPDFmethod to convert the source file to PDF/A. This method takes an object as its parameter, which configures the conversion. For conversion to PDF/A, add anoutputFormatkey to the configuration object that you pass to theexportPDFmethod. The value of this key is an object. Within this object, the value of theconformancekey is a member of theConformanceenumeration that specifies the conformance level of the output PDF document. If you set this value totrue, the output is a document with conformance level PDF/A-2b. - Save the output document. The
exportPDFmethod returns aPromisethat resolves to anArrayBufferthat contains the output PDF/A document. You can use the resultingArrayBufferto download or persist the output PDF/A in storage. For more information on downloading or persisting the exportedArrayBuffer, see the guides on saving a document.
The example below loads a PDF document and exports it to a PDF with conformance level PDF/A-4f:
NutrientViewer.load({ container: "#pspdfkit", document: "source.pdf", licenseKey: "YOUR_LICENSE_KEY"}).then((instance) => { instance.exportPDF({ outputFormat: { conformance: NutrientViewer.Conformance.PDFA_4F } });});The example below loads a PDF document in headless mode, exports it to a PDF/A document with conformance level PDF/A-2b, and downloads it in the client’s browser:
NutrientViewer.load({ container: "#pspdfkit", document: "source.pdf", licenseKey: "YOUR_LICENSE_KEY", headless: true}) .then((instance) => instance.exportPDF({ outputFormat: true }) ) .then(function (buffer) { const blob = new Blob([buffer], { type: "application/pdf" }); const objectUrl = window.URL.createObjectURL(blob); downloadPdf(objectUrl); window.URL.revokeObjectURL(objectUrl); });function downloadPdf(blob) { const a = document.createElement("a"); a.href = blob; a.style.display = "none"; a.download = "output.pdf"; a.setAttribute("download", "output.pdf"); document.body.appendChild(a); a.click(); document.body.removeChild(a);}When exporting a document, you have several options. Refer to our guides on flattening annotations and incremental saving for more details.
Auto saving can be configured for different scenarios and use cases. You can find more information in our auto save guide.