如何解决使用应用脚本从Google绘图创建png文件
我有一个充满Google绘图的文件夹。 我已经在Google电子表格中找到了Google绘图的文件名。 我可以从Google电子表格中提取文件名,遍历文件名,找到所有Google绘图,然后...就在这里。 我想将图形转换为PNG文件,并将PNG文件存储在单独的驱动器文件夹中。
这是我到目前为止拥有的脚本...
function load_list_of_images() {
var course_workbook_name = "SPREADSHEET"; // Title of spreadsheet to download files
var course_workbooks = DriveApp.getFilesByName(course_workbook_name); // There may be more than one!
try{
var course_workbook_id = course_workbooks.next();
Logger.log("Spreadsheet ID : " + course_workbook_id);
} catch(error) {
Logger.log("Spreadsheet doesn't exist");
return(null);
}
var course_workbook = SpreadsheetApp.open(course_workbook_id);
var image_list_sheet = course_workbook.getSheetByName("image_list");
// Get list of image names (without extensions)
var list_of_images = [];
var images = image_list_sheet.getRange(1,1,1000).getValues();
for (var row in images) {
for (var col in images[row]) {
if (images[row][col] == "") {
return(list_of_images);
}
list_of_images.push(images[row][col]);
}
}
}
function download_images() {
var list = load_list_of_images();
if (list == null){
return(null);
}
for (var row in list){
var image_name = list[row];
var image_exists = DriveApp.getFilesByName(image_name);
// There may be more than one
if (image_exists.hasNext()) {
var image = image_exists.next()
var gDraw_file = DriveApp.getFileById(image.getId());
DriveApp.createFile(gDraw_file.getBlob());
}
}
}
运行此命令时,所有Google绘图都将转换为PDF文件并存储在驱动器文件夹中。
解决方法
您需要指定要将图形转换为哪个mimeType
但是,无法直接从drawings
转换为png
,您需要执行以下步骤:
- 创建一个导出链接以将文件导出为
image/png
- 通过UrlFetchApp 获取此链接
- 从结果的斑点创建文件
样品
var id = image.getId();
var exportUrl = "https://www.googleapis.com/drive/v3/files/" + id + "/export?mimeType=image/png";
var urlFetchOptions = {
headers: {Authorization : "Bearer " + ScriptApp.getOAuthToken()}
};
var blob= UrlFetchApp.fetch(exportUrl,urlFetchOptions).getBlob();
DriveApp.createFile(blob);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。