xdocreportを使用してWORDファイルを生成するレポートを生成しています。
生成されたレポートから、Googleドライブに書き込むためのInputStreamContent
MIME-TYPE (MS WORD-DOCX)を使用して作成します。"application/vnd.openxmlformats-officedocument.wordprocessingml.document"
// 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ドライブにWORDDOCXファイルが作成されました。
CONVERT=TRUEで同じINPUTSTREAMを書き込むと失敗します
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 type: MIME-TYPEを「application / vnd.google-apps.document」に設定し、convert = trueに設定すると、400:BADREQUESTになります。
私は何を間違っているのですか?