google do c в pdf конвертирование с GAS игнорирует редактирование текста - PullRequest
0 голосов
/ 27 марта 2020

Я создаю скрипт приложения Google, который генерирует счета на основе данных в электронной таблице. Для каждого счета-фактуры скрипт должен скопировать шаблон файла do c, добавить соответствующие данные и вывести pdf.

Когда я пытаюсь экспортировать измененный файл do c в pdf, он создает PDF на основе исходного файла шаблона. Ни одно из правок не было учтено.

Тем не менее, в моей функции convertToPDF идентификатор файла правильный, а do c, на который он указывает, был правильно изменен. Я пытался дозвониться до convertToPDF извне GenInvoice, но без особого успеха.

Мое понимание ГАЗА ограничено, я просто пытаюсь продвигаться вперед методом проб и ошибок. Здесь я ничего не понимаю.

Вот минимальный пример, который воспроизводит мою проблему:

function GenInvoice(folder, month, restaurant, adresse, forfait, invoiceNr){

  // copy template
  var templateid = "1kDDBHiwUikKHRtywJ_Tfig4Nf_wNbdy814_5SvLerkw" 
  var template = DriveApp.getFileById(templateid);
  var newfile  = template.makeCopy(template.getName() + "_edited" );

  // Open invoice in docs
  var docId  = newfile.getId()
  var doc = DocumentApp.openById(docId);
  var body = doc.getBody();

  // Remplacing place-holders
  body.replaceText("%TemplateText%", "%ModifiedText%");

  // Final print
  body.appendParagraph('Great work! Keep your flow!');

  // convert to PDF
  convertToPDF(docId)
}

function convertToPDF(theId){
  console.log(theId)
  var doc = DriveApp.getFileById(theId);

  /* Add the PDF extension */
  docblob = doc.getAs('application/pdf');
  docblob.setName("Modified_template.pdf"); // doc.getName() + ".pdf")

  var file = DriveApp.createFile(docblob);
}

1 Ответ

2 голосов
/ 27 марта 2020

Попробуйте добавить "do c .saveAndClose ();" до конвертации.

Примерно так:

// Final print
body.appendParagraph('Great work! Keep your flow!');

//Save and close doc
doc.saveAndClose();

// convert to PDF
convertToPDF(docId)
...