Your spreadsheet might have many empty cells which get converted into the pdf the way you do it.
I recommend you instead to convert in a more manual way, with the UrlfetchApp
- this allows you to specify different options, among others the range you want to convert.
The following sample shows how to export only the data with contents (dataRange
) for a spreadsheet that contains onlyone sheet:
function myFunction() {
var token = ScriptApp.getOAuthToken();
var ss = SpreadsheetApp.openById("<<Google Sheet ID>>");
var sheet = ss.getActiveSheet();
var name = ss.getName();
var url = "https://docs.google.com/spreadsheets/d/" + "<<Google Sheet ID>>" + "/export?";
var options = 'exportFormat=pdf&format=pdf' // export format
+ '&size=A4' // paper size
+ '&portrait=true' // orientation
var range = sheet.getDataRange().getA1Notation();
var response = UrlFetchApp.fetch(url + options + '&gid=' + sheet.getSheetId() + "&range=" + range,
{
headers: {
'Authorization': 'Bearer ' + token
},
muteHttpExceptions:true
});
var blob = DriveApp.createFile(response.getBlob().setName(name));
}