Performance Optimization Request for DOCX to PDF Conversion Using LibreOffice/Unoconv
-
We are currently generating PDF files from DOCX templates using both JSReport and a custom Node.js script that utilizes LibreOffice (via libre.convert) and unoconv. Below are the two approaches we've tested:
Approach 1: JSReport Configuration
{ "template": { "recipe": "docx", "engine": "handlebars", "unoconv": { "format": "pdf" }, "docx": { "templateAsset": { "content": "<base64-encoded-wordDocumentBuffer>" } } }, "data": "Objects" }
Approach 2: Node.js Script Using LibreOffice (LibreOffice Convert)
function convertDocxToPdf(docxBuffer) { return new Promise((resolve, reject) => { const extend = ".pdf"; libre.convert(docxBuffer, extend, undefined, (err, pdfBuffer) => { if (err) { return reject( new Error("Error during DOCX to PDF conversion: " + err?.message) ); } resolve(pdfBuffer); }); }); }
Issue Observed:
On Linux systems, the conversion is fast and works as expected.
On Windows systems with high configuration (e.g., 16GB+ RAM, SSD), the performance is acceptable.
However, on Windows systems with lower specs (e.g., 8GB RAM), both methods take around 15–20 seconds for a single DOCX to PDF conversion.We have tested with:
LibreOffice direct CLI conversion
Unoconv package
JSReport with unoconv recipeBut in all cases, the conversion time is consistently slow on low-end Windows systems.
Here, We are looking to consistently reduce conversion time to under 10 seconds on all environments.
-
I'm afraid you'll have better luck at a LibreOffice forum as this is directly related to it...
But maybe someone else has a solution to improve LibreOffice perf when converting on Windows and poor HW specs?