Точное расширение насадки .PDF - PullRequest
3 голосов
/ 07 октября 2019

Код уже отправляет электронное письмо с вложением, хотя расширение не указано.

Также, вы можете объяснить, как назвать вложение следующим образом:

Pré-emploi -CandidateName.PDF

Я пытался изменить имя в этой строке "var newSpreadsheet = SpreadsheetApp.create("Spreadsheet to export");" Также я пытался добавить var CandidateName в конце этой строки

var blob = newSpreadsheet.getAs('application/pdf').setName(spreadsheet.getName()+ " - ".CandidateName);

function emailAsPDF() {
  var emailAddress=Session.getActiveUser().getEmail();
  var mess="Voulez-vous envoyer votre rapport  à l'adresse : " + emailAddress;
  var ans= Browser.msgBox("Courriel", mess, Browser.Buttons.YES_NO);
  if (ans===Browser.Buttons.NO){return;}
  var mess="Votre rapport a été envoyé à l'adresse : " + emailAddress;
  var ss=SpreadsheetApp.getActiveSpreadsheet();
  var sheet=ss.getSheetByName("Recherche");
  //var range = sheet.getActiveCell();
  var CandidateName=ss.getRangeByName("Nom.Candidat").getValue();
  var emailSubject="Vérifications pré-emploi complétées" +" - "+ CandidateName;
  var emailMessage="Bonjour," + "\n\n" + "J’ai le plaisir de vous informer que les vérifications sont complétées pour le candidat indiqué au tableau de résultats pré-emploi suivant:" + "\n\n" + "Bonne journée !";
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();//.getSheetByName("Formation");
  var sheet=spreadsheet.getSheetByName("Recherche");
  var newSpreadsheet = SpreadsheetApp.create("Spreadsheet to export");
  sheet.copyTo(newSpreadsheet);
  var sheetNames=newSpreadsheet.getSheets();
  newSpreadsheet.deleteActiveSheet();
  var blob = newSpreadsheet.getAs('application/pdf').setName(spreadsheet.getName());
  var folderID = parentFolder(); // Folder id to save the PDF
  Logger.log(folderID);
  var folder = DriveApp.getFolderById(folderID);
  var pdfFile = folder.createFile(blob);
  MailApp.sendEmail(emailAddress, emailSubject, emailMessage,{attachments:[pdfFile]});
  //DriveApp.getFileById(pdfFile.getId()).setTrashed(true);
  DriveApp.getFileById(newSpreadsheet.getId()).setTrashed(true);  
  DriveApp.getFileById(pdfFile.getId()).setTrashed(true);
  Browser.msgBox("Courriel", mess, Browser.Buttons.OK); 
}


function parentFolder() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var file = DriveApp.getFileById(ss.getId()); 
  var ParentFolder= file.getParents();
  while ( ParentFolder.hasNext() ) {
    var folder = ParentFolder.next();
    folderID=folder.getId();
     Logger.log(folderID);
  }
  return folderID;
}

function test() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var file = DriveApp.getFileById(ss.getId()); 
  var ParentFolder= file.getParents();
  var folder = ParentFolder.next();
   Logger.log(folder);
//  while ( ParentFolder.hasNext() ) {
//    var folder = ParentFolder.next();
//    folderID=folder.getId();
//     Logger.log(folderID);
//  }
//  return folderID;
}

Я ожидаю получить вложение в формате PDF с таким именем: Pré-emploi - CandidateName Кроме того, как мне изменить ориентацию документа?

Если вам нужен доступ к файлу, просто спросите меня.

Ответы [ 2 ]

2 голосов
/ 08 октября 2019

Ответ:

Вместо установки имени blob при создании необходимо указать имя файла при создании.

Код:

function emailPDF() {
  // previous code...
  var blob = newSpreadsheet.getAs('application/pdf').setName(spreadsheet.getName());
  // code...
  var pdfFile = folder.createFile(blob);
}

Необходимо изменить на:

function emailPDF() {
  // previous code...
  var blob = newSpreadsheet.getAs('application/pdf');
  // code...
  var pdfName = spreadsheet.getName() + " - " + CandidateName + '.pdf';
  var pdfFile = folder.createFile(blob).setName(pdfName);
}
0 голосов
/ 08 октября 2019

Отлично! это помогло решить проблему с добавлением имени. Теперь можно ли получить вложение с расширением .pdf? Вот изображение: https://www.photobox.co.uk/my/photo/full?photo_id=502217785914

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