Crie um arquivo png a partir de um desenho do Google usando o App Script
Aug 19 2020
Eu tenho uma pasta cheia de Desenhos Google. Eu tenho os nomes dos arquivos do Desenhos Google em uma planilha do Google. Posso extrair os nomes dos arquivos da planilha do Google, percorrer os nomes dos arquivos, encontrar todos os desenhos do Google e ... é aqui que fico preso. Eu gostaria de converter os desenhos em arquivos PNG e armazenar os arquivos PNG em uma pasta de unidade separada.
Este é o roteiro que tenho até agora ...
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());
}
}
}
Quando eu executo isso, todos os desenhos do Google são convertidos em arquivos PDF e armazenados na pasta da minha unidade.
Respostas
1 ziganotschka Aug 19 2020 at 15:02
Você precisa especificar para qual mimeType deseja converter o desenho
No entanto, a conversão de drawings
para png
não é possível diretamente, você precisa realizar as seguintes etapas:
- Crie um link de exportação para exportar o arquivo como
image/png
- Busque este link com o UrlFetchApp
- Crie um arquivo a partir do blob do resultado
Amostra
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);
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
Christopher Nolan uma vez se arrependeu de ter lido o 'roteiro de Pulp Fiction' de Quentin Tarantino