无头模式下的 LibreOffice应提供文件到 PDF 的转换。您可以将它与LibreOffice-Convert集成到节点中。
但是,您的机器中需要 LibreOffice,因为它没有与 npm 一起安装。根据您的系统,请参见此处了解位置。
这是它在命令行中的使用方式,因此它支持 RTF 到 PDF 的转换:
soffice --headless --convert-to pdf file_name.rtf (来源)
理论上它应该这样实现(改编自npmjs):
const libre = require('libreoffice-convert');
const path = require('path');
const fs = require('fs');
const enterPath = path.join(__dirname, '/resources/example.rtf');
const outputPath = path.join(__dirname, '/resources/example.pdf');
// Read file
const file = fs.readFileSync(enterPath);
// Convert it to pdf format with undefined filter (see Libreoffice doc about filter)
libre.convert(file, '.pdf', undefined, (err, done) => {
if (err) {
console.log(`Error converting file: ${err}`);
}
// Here in done you have pdf file which you can save or transfer in another stream
fs.writeFileSync(outputPath, done);
});