我正在使用 xdocreport 生成生成 WORD 文件的报告。
从生成的报告中,我InputStreamContent
使用 MIME-TYPE "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
(MS WORD - DOCX) 创建了一个写入 Google Drive 的文件:
// create Word file stream using xdocreport
OutputStream2InputStream outputStream = new OutputStream2InputStream(); // buffer
report.process(context, outputStream);
// create inputstream for Google Drive
InputStreamContent inputStream = new InputStreamContent("application/vnd.openxmlformats-officedocument.wordprocessingml.document",
outputStream.getInputStream());
inputStream.setLength(outputStream.size());
编写 MSWORD 文档工作正常(CONVERT= FALSE):
File file = new File();
Insert insertOperation = service.files().insert(file, inputStream).setConvert(false);
file.setTitle("test.docx");
file.setMimeType(inputstream.getType());
File result = insertOperation.execute();
结果在我的 Google Drive 上创建了一个 WORD DOCX 文件。
使用 CONVERT=TRUE 编写相同的输入流失败
File file = new File();
Insert insertOperation = service.files().insert(file, inputStream).setConvert(true);
file.setTitle("test");
//file.setMimeType(inputstream.getType()); // what here ?
File result = insertOperation.execute();
结果
1.不设置mime类型时:新创建的文件result
有0字节和MIME类型:application/vnd.google-apps.kix
2. 设置 mime 类型时: MIME-TYPE 设置为“application/vnd.google-apps.document”并且 convert = true,结果为 400: BAD REQUEST。
我究竟做错了什么 ?