Fixed bug in file conversion on node, cleaned up warnings

This commit is contained in:
Saud Fatayerji
2023-11-15 15:33:04 +03:00
parent 57415bea85
commit 667583984f
3 changed files with 20 additions and 13 deletions

View File

@@ -15,12 +15,19 @@ export async function fileToPdf(byteArray: Uint8Array, filename: string): Promis
await writeBytesToFile(srcFile, byteArray);
const messages = await runLibreOfficeCommand(randFolderName, ["--headless","--convert-to","pdf",srcFile,"--outdir",tempDir]);
const lastMessage = messages[messages.length-1]
const outputFilePath = lastMessage.split(" -> ")[1].split(".pdf")[0]+".pdf";
const outputFileName = path.parse(outputFilePath).base;
const files = fs.readdirSync(tempDir).filter(file => file.endsWith(".pdf"));
if (files.length > 1) {
console.warn("Ambiguous file to pdf outputs: Returning first result", files);
} else if (files.length == 0) {
throw new Error("File to pdf failed: no output files found. Messages: "+messages);
}
const outputFileName = files[0];
const outputFilePath = path.join(tempDir, outputFileName);
const outputBytes = await readBytesFromFile(outputFilePath);
fs.rmdirSync(tempDir);
fs.rmdirSync(tempDir, {recursive: true});
return new PdfFile(outputFileName, outputBytes, RepresentationType.Uint8Array);
}