@alchemistenag/aws-lambda-libreoffice
v2.2.2
Published
85 MB LibreOffice to fit inside AWS Lambda compressed with Brotli
Downloads
12
Maintainers
Readme
aws-lambda-libreoffice
THIS PACKAGES WAS FORKED FROM shelfio/aws-lambda-libreoffice
85 MB LibreOffice to fit inside AWS Lambda compressed with Brotli
Inspired by chrome-aws-lambda
:information_source: Compiled LibreOffice version: 6.1.0.0.alpha0
Install
$ yarn add @shelf/aws-lambda-libreoffice
NOTE: Since version 2.0.0 npm package no longer ships the 85 MB LibreOffice but relies upon libreoffice-lambda-layer instead. Follow the instructions on how to add a lambda layer in that repo.
Usage
const {convertTo, canBeConvertedToPDF} = require('@shelf/aws-lambda-libreoffice');
module.exports.handler = async () => {
// assuming there is a document.docx file inside /tmp dir
// original file will be deleted afterwards
if (!canBeConvertedToPDF('document.docx')) {
return false;
}
return convertTo('document.docx', 'pdf'); // returns /tmp/document.pdf
};
Or if you want more control:
const {getExecutablePath, defaultArgs} = require('@shelf/aws-lambda-libreoffice');
const loBinary = await getExecutablePath(); // /tmp/instdir/program/soffice
execSync(`${loBinary} ${defaultArgs.join(' ')} --convert-to pdf file.docx --outdir /tmp`);
See Also
- libreoffice-lambda-layer
- serverless-libreoffice
- aws-lambda-tesseract
- aws-lambda-brotli-unpacker
- chrome-aws-lambda
Test
Smoke test that it works: ./test.sh
.
Make sure to clone libreoffice-lambda-layer repo alongside
License
MIT © Shelf