javascript - Hur man genererar pdf från docx - NodeJS + TypeScript
Jag försöker generera en PDF från en tidigare genererad DOCX-fil i NodeJS. Jag använder NestJS och TypeScript. Jag har testat många sätt, men allt misslyckas:
- @nativedocuments/docx-wasm: NativeDocuments fungerar inte längre.
- word2pdf: Är arkiverad på GitHub och otillgänglig på npm.
- docx-pdf: Genererar en ostylad PDF. Den tar bort mina tabeller, indrag, justerad text osv.
- libreoffice-convert: Kastar ett fönsterfel: Applikationen kan inte startas. Konfigurationsfilen "C:/Program Files/LibreOffice/program/bootstrap.ini" är korrupt (Men LibreOffice-programvaran fungerar utan problem).
Vet du någon lösning på problemen jag har haft med någon av de tidigare nämnda alternativen för att konvertera docx till pdf? Eller kanske något annat alternativ som jag kan använda (Gratis, tack)?
Tack på förhand!
Svar #1
Det bästa jag vet om är att använda LibreOffice. Du behöver egentligen inte ett wrapper-bibliotek för det.
Du kan bara köra libreoffice direkt med exec:
const { exec } = require("child_process");
exec("libreoffice --headless file.xyz", (error, stdout, stderr) => {
if (error) {
console.log(`error: ${error.message}`);
return;
}
if (stderr) {
console.log(`stderr: ${stderr}`);
return;
}
console.log(`stdout: ${stdout}`);
});
Du måste först skriva din DOCX till en fil någonstans på disken där Libreoffice kan öppna den, och den resulterande PDF:en skulle också skrivas på disken - sedan kan du ladda den i Node med fs.
Svar #2
Jag har haft framgång med att använda Puppeteer för att skapa PDF:er från HTML-dokument. Om du kunde lyckas omvandla din DOCX-fil till HTML kan detta vara ett genomförbart alternativ. Det verkar finnas alternativ tillgängliga för att göra det, men jag kan inte intyga för dem.
