Google App Script создает файл PDF из базы шаблонов документов - PullRequest
0 голосов
/ 07 января 2020

Относительно моего поста:

Скрипт приложения Google о том, как создать PDF-файл из данных, полученных из формы html его электронной таблицы, и отправить файл PDF по электронной почте

Относительно функции, описанной ниже:

function submitData(form) {
  var subject='New Feedback';
  var body=Utilities.formatString('name: %s <br />Email: %s<br />Comment: %s', form.name,form.email,form.comment);

  var folderId = "my-folder-ID"; // Please set the folder ID.  // Added
  var blob = Utilities.newBlob(body, MimeType.HTML, form.name).getAs(MimeType.PDF);  // Added
  var file = DriveApp.getFolderById(folderId).createFile(blob);  // Added

  var aliases = GmailApp.getAliases()
   Logger.log(aliases); //returns the list of aliases you own
   Logger.log(aliases[0]); //returns the alias located at position 0 of the aliases array

  GmailApp.sendEmail('my-email@my-email.com','From an alias', 'A message from an alias!', {'from': aliases[0],subject: subject,htmlBody: body, attachments: [blob]});  // Modified

//  return file.getUrl();  // Modified
  return Utilities.formatString('name: %s <br />Email: %s<br />Comment: %s<br />PDF: %s', form.name,form.email,form.comment,file.getUrl());
}

Я хотел бы использовать документ в качестве базового шаблона для создания PDF-файла, похожего на этот: https://jeffreyeverhart.com/2018/09/17/auto-fill-google-doc-from-google-form-submission/ Как мне выполнить sh это с моим заявлением? Это пользовательская форма html, как вы можете видеть сверху.

Заранее благодарим за любую помощь!

1 Ответ

2 голосов
/ 07 января 2020
  • Вы хотите создать файл PDF с использованием шаблона документа Google.
  • Вы хотите установить form.name,form.email,form.comment шаблон документа, а затем экспортировать его как файл PDF.

Если мое понимание верно, как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.

Точки изменения:

  • Сначала подготовьте документ Google, который используется в качестве шаблона.
  • При наличии шаблона Document сначала скопируйте шаблон Document и замените значения для замены на form.name,form.email,form.comment. Затем документ преобразуется в данные PDF.

Использование:

Перед запуском сценария подготовьте документ Google, который используется в качестве шаблона.

В этом случае {{name}}, {{email}} и {{comment}} заменяются на form.name, form.email и form.comment соответственно. Поэтому, пожалуйста, включите {{name}}, {{email}} и {{comment}} в шаблон документа.

Модифицированный скрипт:

Когда ваш скрипт модифицируется, он становится следующим. И, пожалуйста, установите для идентификатора файла шаблона Google Document значение templateDocumentId.

С:
var blob = Utilities.newBlob(body, MimeType.HTML, form.name).getAs(MimeType.PDF);
Кому:
var templateDocumentId = "###"; // Please set the file ID of the template Google Document

var docId = DriveApp.getFileById(templateDocumentId).makeCopy("temp").getId();
var doc = DocumentApp.openById(docId);

// Please modify as follows.
// var body = doc.getBody();
// body.replaceText("{{name}}", form.name).replaceText("{{email}}", form.email).replaceText("{{comment}}", form.comment);
doc.getBody().replaceText("{{name}}", form.name).replaceText("{{email}}", form.email).replaceText("{{comment}}", form.comment); // Modified

doc.saveAndClose();
var blob = doc.getBlob().setName(form.name);
DriveApp.getFileById(docId).setTrashed(true);
  • В этом измененном сценарии скопированный документ перемещается на тра sh поле последней строкой. Поэтому, пожалуйста, будьте осторожны.

Примечание:

  • Я не уверен насчет шаблона документа, который вы хотите использовать. Так что, если этот измененный скрипт не может быть использован для вашего шаблона документа, вы можете предоставить его?

Ссылки:

Если я неправильно понял ваш вопрос, и это было не то направление Вы хотите, я прошу прощения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...