I am trying to merge 2 specific sheets (both have different Data ranges, Sheet1->A2:Q28 , Sheet2->A1:I27) into one pdf. For that, I found this resource that explains about merging of sheets. Specifically, converting all sheets into one pdf (sheets can not be hidden). Here is the code:
function convertSpreadsheetToPdf(spreadsheetId, sheetName, pdfName) {
var spreadsheet = spreadsheetId ? SpreadsheetApp.openById(spreadsheetId) : SpreadsheetApp.getActiveSpreadsheet();
spreadsheetId = spreadsheetId ? spreadsheetId : spreadsheet.getId()
var sheetId = sheetName ? spreadsheet.getSheetByName(sheetName).getSheetId() : null;
var folder = DriveApp.getFolderById('1t6ns346GNX_gP-uGkwE43egGhTCaWgKO');
var pdfName = pdfName ? pdfName : spreadsheet.getName();
var url_base = spreadsheet.getUrl().replace(/edit$/,'');
var url_ext = 'export?exportFormat=pdf&format=pdf' //export as pdf
// Print either the entire Spreadsheet or the specified sheet if optSheetId is provided
+ (sheetId ? ('&gid=' + sheetId) : ('&id=' + spreadsheetId))
// following parameters are optional...
+ '&size=letter' // paper size
+ '&portrait=true' // orientation, false for landscape
+ '&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
var options = {
headers: {
'Authorization': 'Bearer ' + ScriptApp.getOAuthToken(),
}
}
var response = UrlFetchApp.fetch(url_base + url_ext, options);
var blob = response.getBlob().setName(pdfName + '.pdf');
folder.createFile(blob);
folder.createFile(blob);
}
If I run this function for one sheet like this:
function test(){
var pdfName = "123"
convertSpreadsheetToPdf("","Sheet1",pdfName);
}
Here is a sample sheet for which I want to run this function. It shows the following error:
Exception: Request failed for https://docs.google.com returned code 500. Truncated server response: <meta name="viewport" c... (use muteHttpExceptions option to examine full response)
I want to modify it to merge only 2 sheets into one pdf. Let's assume the names of the sheets are Sheet1
and Sheet2
. Any guidance would be much appreciated.