0

我正在尝试使用 Node.js 中的 watson-developer-cloud Javascript 库,使用 Watson 的文档转换服务将一些文档转换为答案单元。某些(IBM 内部链接中的示例是 .DOCX 文件)返回此错误:

错误:代码:400 错误:提供的数据似乎在 Office 2007+ XML 中。您正在调用处理 OLE2 Office 文档的 POI 部分。您需要调用 POI 的不同部分来处理此数据(例如 XSSF 而不是 HSSF)

如果我尝试通过文档转换演示站点进行转换,它似乎可以正确转换。我的程序从源下载文件,将其写入磁盘,然后通过上述库将其上传到文档转换服务。

有没有办法解决这个错误?考虑到这种转换是数千个文档的大规模自动转换的一部分,因此对这些异常值进行手动处理是不可能的。

4

1 回答 1

1

该服务尝试使用文件的前几个字节和文件名自动检测上传文件的媒体类型。

如果文件名不可用(即,您的用户未传入),您可以在 convert 调用的文件部分提供您正在上传的文件的媒体类型:

file: {
    value: fs.createReadStream('filename'),
    options: {
      contentType: 'application/vnd.openxmlformats officedocument.wordprocessingml.document'
    }
}
于 2016-11-08T17:55:00.543 回答