Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

337
Views
How to format PDF body to look like the email using Google Apps Script?

The code below does get the form response and emails it with the body formatted like this:

Question/Title1

Response1

Question/Title2

Response2

The pdf created, though, shows it all in a single line, like this: New Response Form: Question/Title1 Response1 Question/Title2 Response2...

How can I create it so that it looks like the formatted email body above?

function onFormSubmit(e) {
 
  // Get the response that was submitted.
  var formResponse = e.response;

  // Get the items (i.e., responses to various questions)
  // that were submitted.
  var itemResponses = formResponse.getItemResponses();

  // Create a variable emailBody to store the body
  // of the email notification to be sent.
  var emailBody = "New form response:\n\n";

  // Put together the email body by appending all the
  // questions & responses to the variable emailBody.
  itemResponses.forEach(function(itemResponse) {
    var title = itemResponse.getItem().getTitle();
    var response = itemResponse.getResponse();
    emailBody += title + "\n" + response + "\n\n";
  });

  // Send the email notification using the
  // sendEmail() function.
  sendEmail(emailBody);

  var folderID = "SOME_FOLDERID";
  var intermediate = DriveApp.createFile('New Form Response','<b>'+ emailBody +'</b>', MimeType.HTML);
  var blob = intermediate.getAs(MimeType.PDF);
  Logger.log(blob.getContentType());
  var pdfFile = DriveApp.createFile(blob);
  DriveApp.getFolderById(folderID).addFile(pdfFile)
  DriveApp.getFileById(intermediate.getId()).setTrashed(true);
}

// A function that sends the email
// notification.
function sendEmail(emailBody) {
  MailApp.sendEmail("EMAIL_ADDRESS", "New form response", emailBody);
}
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

You need to use <br> tag for your new lines in your emailBody since you are using an HTML type when you create a file. You can use String.replaceAll() to replace \n with <br>.

//Replace all "\n" with "<br>"
emailBody = emailBody.replaceAll("\n","<br>");
var intermediate = DriveApp.createFile('New Form Response','<b>'+ emailBody +'</b>', MimeType.HTML);

Output:

enter image description here

Note:

  • You can actually use \n as line break in your html body, but you need to set it in css. See Line break in HTML with '\n'
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!