I have this script that emails the content of a speadsheet to all the collaborators on a regular basis.
function myFunction() {
var document = SpreadsheetApp.openById("123documentid456");
var editors = document.getEditors();
for(var i = 0; i < editors.length; i++){
MailApp.sendEmail(editors[i].getEmail(), "Subject", "Some message", {
attachments : [document.getAs(MimeType.PDF)]
});
}
}
It creates a PDF and emails it. The thing is the content does not display nicely as the PDF's orientation is portrait. Is there any way to make it export to landscape?
From here, this code could help
*************************************************
function savePDFs() {
SpreadsheetApp.flush();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var url = ss.getUrl();
//remove the trailing 'edit' from the url
url = url.replace(/edit$/,'');
//additional parameters for exporting the sheet as a pdf
var url_ext = 'export?exportFormat=pdf&format=pdf' + //export as pdf
//below parameters are optional...
'&size=letter' + //paper size
'&portrait=false' + //orientation, false for landscape, true for portrait
'&fitw=true' + //fit to width, false for actual size
'&sheetnames=false&printtitle=false&pagenumbers=false' + //hide optional headers and footers
'&gridlines=false' + //hide gridlines
'&fzr=false' + //do not repeat row headers (frozen rows) on each page
'&gid=' + sheet.getSheetId(); //the sheet's Id
var token = ScriptApp.getOAuthToken();
var response = UrlFetchApp.fetch(url + url_ext, {
headers: {
'Authorization': 'Bearer ' + token
}
});
var blob = response.getBlob().setName(sheet.getName() + '.pdf');
//from here you should be able to use and manipulate the blob to send and email or create a file per usual.
//In this example, I save the pdf to drive
DocsList.createFile(blob);
//OR DriveApp.createFile(blob);
}
*************************************************
Notice this bit: '&portrait=false' + //orientation, false for landscape, true for portrait