尝试使用 Drive API 将 docx 文件转换为另一种格式 (pdf)
Trying to convert docx file to another format(pdf) using Drive API
我试图使用驱动器 api 将 .docx 文件转换为 .pdf,这听起来很合理,因为您可以手动完成。
这是我的代码:
FilesResource.CreateMediaUpload request;
using (var stream = new System.IO.FileStream(@"test.docx",
System.IO.FileMode.Open))
{
request = driveService.Files.Create(
fileMetadata, stream, "application/vnd.openxmlformats-officedocument.wordprocessingml.document");
request.Fields = ""id, webViewLink, webContentLink, size";
var x = request.Upload();
Console.WriteLine(x);
}
var file = request.ResponseBody;
之后,我正在获取此文件的 ID 并尝试执行以下操作:
var downloadRequest = driveService.Files.Export(file.Id, "application/pdf");
失败并出现错误:"Export only supports Google Docs"
Ofc!我想它还没有变成 "Google DOC",但是,如前所述 here and here,这种格式支持转换。
好的,我注意到如果您转到驱动器并手动打开文件,它将变成 google doc 文件,并且还会获得新的 ID。此 ID 上的导出将正常工作。但是,手动执行某些操作对于我们的需求来说是不可接受的方法。
尝试了另一种方法,您可以使用直接 link 和 &export=pdf 参数来转换 google doc 文件。
https://docs.google.com/document/d/FILE_ID/export?format=doc
但是在这种情况下将 FILEID 传递给那个 link 不起作用(与 "DOC" 文件一起工作就好)尝试做一些类似于 的事情。没办法。
所以。有什么方法可以触发 File 成为 Google DOC 并等待它转换?还有别的办法吗?
提前致谢!
感谢@bash.d 我能够从 docx 转换为 pdf。
实际上必须使用 API 的 v2 及其 "Insert" 方法。
https://developers.google.com/drive/v2/reference/files/insert#examples
使用此 link 中的代码并指定
request.Convert = true;
之后我用了
var downloadRequest = driveService.Files.Export(file.Id, "application/pdf");
瞧!有效!就我而言,转换文件大约需要 30 秒。
我试图使用驱动器 api 将 .docx 文件转换为 .pdf,这听起来很合理,因为您可以手动完成。 这是我的代码:
FilesResource.CreateMediaUpload request;
using (var stream = new System.IO.FileStream(@"test.docx",
System.IO.FileMode.Open))
{
request = driveService.Files.Create(
fileMetadata, stream, "application/vnd.openxmlformats-officedocument.wordprocessingml.document");
request.Fields = ""id, webViewLink, webContentLink, size";
var x = request.Upload();
Console.WriteLine(x);
}
var file = request.ResponseBody;
之后,我正在获取此文件的 ID 并尝试执行以下操作:
var downloadRequest = driveService.Files.Export(file.Id, "application/pdf");
失败并出现错误:"Export only supports Google Docs" Ofc!我想它还没有变成 "Google DOC",但是,如前所述 here and here,这种格式支持转换。
好的,我注意到如果您转到驱动器并手动打开文件,它将变成 google doc 文件,并且还会获得新的 ID。此 ID 上的导出将正常工作。但是,手动执行某些操作对于我们的需求来说是不可接受的方法。 尝试了另一种方法,您可以使用直接 link 和 &export=pdf 参数来转换 google doc 文件。
https://docs.google.com/document/d/FILE_ID/export?format=doc
但是在这种情况下将 FILEID 传递给那个 link 不起作用(与 "DOC" 文件一起工作就好)尝试做一些类似于
所以。有什么方法可以触发 File 成为 Google DOC 并等待它转换?还有别的办法吗? 提前致谢!
感谢@bash.d 我能够从 docx 转换为 pdf。
实际上必须使用 API 的 v2 及其 "Insert" 方法。
https://developers.google.com/drive/v2/reference/files/insert#examples
使用此 link 中的代码并指定
request.Convert = true;
之后我用了
var downloadRequest = driveService.Files.Export(file.Id, "application/pdf");
瞧!有效!就我而言,转换文件大约需要 30 秒。