我正在使用encodingmachine / gotenberg将Office文档转换为PDF文件(gotenberg使用unoconv): Documentation
我有以下用javascript编写的代码(使用NodeJS库请求),用于将带有本地文件的请求发送到gotenberg:
function openFile(file, fullPath) {
return new Promise((resolve, reject) => {
const filePath = pathModule.join(fullPath, file);
var formData = {
files: fs.createReadStream(filePath),
};
request.post({url:"http://docker:3000/convert/office", formData: formData}, function(err, httpResponse, body) {
if (err) {
reject('Upload failed!');
}
else {
resolve(body);
}
});
});}
当我发送给goenberg英文名称的文件时,它可以工作。
但是当我尝试发送带有特殊字符的文件名(以希伯来语编写:בדיקה。docx)时,gotenberg失败并返回错误:
unoconv:非零退出代码:退出状态1
这可能是因为unoconv不支持带有希伯来语文件名的文件。
是否可以在不重命名服务器上文件的情况下,将文件的ReadStream中的文件名更改为temp.docx而不是בדיקה。docx呢?
谢谢
答案 0 :(得分:2)
您需要将formData对象更改为以下内容:
let formData = {
files: {
value: fs.createReadStream(filePath),
options: {
filename: 'test.docx'
}
}
};
为我解决了这个问题:)