Convert your not-so-fancy PDF to an ISO 19005-3 specified PDF/A-3
- PDF is ready with embedded fonts and files that are necessary for safer archival before converting it to PDF/A-3.
- PDF is available as Base64 in the project.
You can install this package via npm:
npm install pdfa3-maker
In Typescript, you can use it like:
import { makePDFA3, A3Options } from 'pdfa3-maker';
import fs from 'fs';
async function main() {
// Define the PDF/A-3 options
const options: A3Options = {
author: 'Your Name',
title: 'My PDF/A-3 Document',
};
// Load a PDF from base64
const base64Pdf = '...'; // Replace with your base64-encoded PDF
try {
const result = await makePDFA3(base64Pdf, options);
// Save the PDF/A-3 to a file
fs.writeFileSync('output.pdf', result, 'base64');
} catch (error) {
console.error('Error:', error);
}
}
main();
Now to use it in Javascript, you may implement like:
const { makePDFA3 } = require('pdfa3-maker');
const fs = require('fs');
// Define the PDF/A-3 options
const options = {
author: 'Your Name',
title: 'My PDF/A-3 Document',
};
// Load a PDF from base64
const base64Pdf = '...'; // Replace with your base64-encoded PDF
makePDFA3(base64Pdf, options)
.then((result) => {
// `result` is the base64-encoded PDF/A-3
// You can save it to a file or use it as needed
fs.writeFileSync('output.pdf', result, 'base64');
})
.catch((error) => {
console.error('Error:', error);
});
or else you can directly receive base64 in your project:
const pdfa3Base64 = await makePDFA3(base64Pdf, options);
The makePDFA3 function accepts the following options:
author : (string) - The author's name for the PDF.
title : (string) - The title of the PDF document.
This package is licensed under the MIT License.
If you'd like to contribute to this project, please follow these guidelines:
- Fork the repository on GitHub.
- Create a new branch with a meaningful name.
- Make your changes and ensure that the code lints without errors.
- Write tests for your changes if applicable.
- Create a pull request, describing your changes in detail.
- Thank you for contributing!
If you encounter any issues or have suggestions for improvements, please open an issue on GitHub.