谷歌API从谷歌文档下载一个文件为pdf



我有一个文件与一些文本和表格在我的谷歌文档。此文件的内容会不时地手动更新。

我需要一个月多次以pdf格式发送这个文件。它是通过Web UI手动完成的(文件-下载- pdf),然后通过电子邮件发送给我的用户。

我想消除这种人为干预,并创建一个API来下载这个pdf并向我的用户提供端点。

这个用例可以用Google API(最好是JavaScript)完成吗?如果有,怎么做?

如有任何帮助,不胜感激

要将Google Doc下载为PDF,您可以将使用这些文件的Google Developers中的样例代码作为基础。以下载PDF格式的文件。示例如下:

import com.google.api.client.googleapis.json.GoogleJsonResponseException;
import com.google.api.client.http.HttpRequestInitializer;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.gson.GsonFactory;
import com.google.api.services.drive.Drive;
import com.google.api.services.drive.DriveScopes;
import com.google.auth.http.HttpCredentialsAdapter;
import com.google.auth.oauth2.GoogleCredentials;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Arrays;
/* Class to demonstrate use-case of drive's export pdf. */
public class ExportPdf {
/**
* Download a Document file in PDF format.
* @param realFileId file ID of any workspace document format file.
* @return byte array stream if successful, {@code null} otherwise.
* @throws IOException if service account credentials file not found.
*/
private static ByteArrayOutputStream exportPdf(String realFileId) throws IOException{
// Load pre-authorized user credentials from the environment.
// TODO(developer) - See https://developers.google.com/identity for
// guides on implementing OAuth2 for your application.
GoogleCredentials credentials = GoogleCredentials.getApplicationDefault().createScoped(Arrays.asList(DriveScopes.DRIVE_FILE));
HttpRequestInitializer requestInitializer = new HttpCredentialsAdapter(
credentials);
// Build a new authorized API client service.
Drive service = new Drive.Builder(new NetHttpTransport(),
GsonFactory.getDefaultInstance(),
requestInitializer)
.setApplicationName("Drive samples")
.build();
OutputStream outputStream = new ByteArrayOutputStream();
try {
service.files().export(realFileId, "application/pdf")
.executeMediaAndDownloadTo(outputStream);
return (ByteArrayOutputStream) outputStream;
} catch (GoogleJsonResponseException e) {
// TODO(developer) - handle error appropriately
System.err.println("Unable to export file: " + e.getDetails());
throw e;
}
}
}

如果你想自动发送带有附件的电子邮件,你可以使用谷歌开发者指南作为基础来创建带有附件的消息,一旦消息创建,你可以调整示例代码来发送消息。

所有的指南都有Java的示例。如果你点击"在GitHub上查看"选项,你将被重定向到一个GitHub与在线存储库的代码。

**参考:**

  • 下载Google Workspace Document.

  • 文件:出口。

  • 创建带有附件的消息。

  • 方法:users.drafts.send。

  • 方法:users.messages.send。

相关内容

  • 没有找到相关文章

最新更新