Esta es mi primera pregunta aquí. Estoy tratando de generar archivos PDF a partir de una lista de datos de hojas. El script genera correctamente los archivos doc, pero los PDF no tienen los textos ##educador##, ##ano## y ##disciplina## reemplazados. Parece que los archivos PDF se generan antes de que se actualicen los documentos.
function createCertificates() { var app = SpreadsheetApp; var doc = DocumentApp; var spreadsheet = app.getActiveSheet(); var templateId = (here i type my id google document) var row = spreadsheet.getRange('G2').getValue(); var col = 3; var docIdList = []; for (var i = 1; i<= row; i = i + 1){ var datas = []; for (var j = 0; j< col; j = j + 1){ //j = 0: nome; j = 1: Disciplina; j = 2: ano var value = spreadsheet.getDataRange().getValues(); datas.push(value[i][j]); } var documentId = DriveApp.getFileById(templateId).makeCopy().getId() var name = datas[0] + '_Carta_PodemosMais'; //var name = datas[0] + '_Declaração_PodemosMais'; DriveApp.getFileById(documentId).setName(name) var body = DocumentApp.openById(documentId).getBody() body.replaceText('##educador##', datas[0]) body.replaceText('##ano##', datas[2]) body.replaceText('##disciplina##', datas[1]) docIdList.push(documentId) } Logger.log(docIdList) createPDFs(docIdList) } async function createPDFs(docIdList) { var app = SpreadsheetApp; var doc = DocumentApp; var spreadsheet = app.getActiveSheet(); var row = spreadsheet.getRange('G2').getValue(); var folder = DriveApp.getFolderById( here I type my id folder) Logger.log(docIdList) for (var k = 0; k < row; k = k + 1){ // get file content as PDF blob var file = DriveApp.getFileById(docIdList[k]); var pdfBlob = file.getAs('application/pdf'); // create new PDF file in Google Drive folder folder.createFile(pdfBlob) } }
¿Alguien podría explicar por qué estas funciones se ejecutan al mismo tiempo? ¿Por qué los valores de los archivos pdf no se actualizan?