// CREATING MENU IN UI OF SPREADSHEETS function onOpen() { var ui = SpreadsheetApp.getUi(); ui.createMenu('PDF Creator by IDM') .addItem('Create PDF', 'savePDFs') .addToUi(); } function savePDFs() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getActiveSheet(); var sheetName = sheet.getName(); var instructionSheet = ss.getSheetByName("Instructions"); var week = instructionSheet.getRange("B2").getValues(); // Get URL of spreadsheet, and remove the trailing 'edit' var url = ss.getUrl().replace(/edit$/,''); var ui = SpreadsheetApp.getUi(); // Get SL Trigram in order to define folder for PDF output var username = Session.getActiveUser().getEmail(); var trigramShiftl = username.toString().substring(0,3).toUpperCase(); if (trigramShiftl == "IDM") { var folder = DriveApp.getFolderById("1zQ48Z5MZKjZs2aHk0HZKerDPjY00VhhF"); } else if (trigramShiftl == "IDM") { var folder = DriveApp.getFolderById("1zQ48Z5MZKjZs2aHk0HZKerDPjY00VhhF"); } else if (trigramShiftl == "GAE") { var folder = DriveApp.getFolderById("1zQ48Z5MZKjZs2aHk0HZKerDPjY00VhhF"); } else if (trigramShiftl == "SLW") { var folder = DriveApp.getFolderById("1zQ48Z5MZKjZs2aHk0HZKerDPjY00VhhF"); } else if (trigramShiftl == "YYA") { var folder = DriveApp.getFolderById("1zQ48Z5MZKjZs2aHk0HZKerDPjY00VhhF"); } else if (trigramShiftl == "DKE") { var folder = DriveApp.getFolderById("1zQ48Z5MZKjZs2aHk0HZKerDPjY00VhhF"); } else if (trigramShiftl == "DBA") { var folder = DriveApp.getFolderById("1zQ48Z5MZKjZs2aHk0HZKerDPjY00VhhF"); } else { var askShiftlTrigram = ui.prompt("In which shift are you performing the report?","Insert shiftleader trigram:", ui.ButtonSet.OK) if (askShiftlTrigram.getSelectedButton() == ui.Button.CLOSE) return; if (askShiftlTrigram.getSelectedButton() == ui.Button.OK) var shiftlTrigram = askShiftlTrigram.getResponseText().toString().toUpperCase(); if (shiftlTrigram == "IDM") { var folder = DriveApp.getFolderById("1zQ48Z5MZKjZs2aHk0HZKerDPjY00VhhF"); } else if (shiftlTrigram == "VYO") { var folder = DriveApp.getFolderById("1zQ48Z5MZKjZs2aHk0HZKerDPjY00VhhF"); } else if (shiftlTrigram == "PNK") { var folder = DriveApp.getFolderById("1zQ48Z5MZKjZs2aHk0HZKerDPjY00VhhF"); } else if (shiftlTrigram == "GNG") { var folder = DriveApp.getFolderById("1zQ48Z5MZKjZs2aHk0HZKerDPjY00VhhF"); } else if (shiftlTrigram == "TPI") { var folder = DriveApp.getFolderById("1zQ48Z5MZKjZs2aHk0HZKerDPjY00VhhF"); } else { var error = SpreadsheetApp.getUi().alert("Shiftleader trigram not recognized!") return; } } // Ask Operator trigram to rename documents var ui = SpreadsheetApp.getUi(); var askTrigramOperator = ui.prompt('PDF Creator (IDM)', 'Insert shiftleader/Op.Lead trigram?', ui.ButtonSet.OK); if (askTrigramOperator.getSelectedButton() == ui.Button.CLOSE) return; if (askTrigramOperator.getSelectedButton() == ui.Button.OK) var trigramOperator = askTrigramOperator.getResponseText(); var trigramOperatorUpper = trigramOperator.toString().toUpperCase(); // Ask Technician trigram to rename documents var askTrigramTech = ui.prompt('PDF Creator (IDM)', 'What is the OP/TN trigram?', ui.ButtonSet.OK); if (askTrigramTech.getSelectedButton() == ui.Button.CLOSE) return; if (askTrigramTech.getSelectedButton() == ui.Button.OK) var trigramTech = askTrigramTech.getResponseText(); var trigramTechUpper = trigramTech.toString().toUpperCase(); // Check for AREA if ( sheetName == "FT Rows Rasco","Ismeca") { var askArea = ui.prompt('PDF Creator (IDM)','What rows did you check? (example: 5/6" Ismeca)', ui.ButtonSet.OK); if (askArea.getSelectedButton() == ui.Button.CLOSE) return; if (askArea.getSelectedButton() == ui.Button.OK) var ftRows = askArea.getResponseText().toString(); var area ="FT " + sheetName+ ftRows ; } else { var area = sheetName } // Additional parameters for exporting the sheet as a pdf var url_ext = 'export?exportFormat=pdf&format=pdf' //export as pdf '&gid=' + sheet.getSheetId() //the sheet's Id '&size=A4' // paper size '&portrait=false' // 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 data = UrlFetchApp.fetch(url + url_ext , options); var report = data.getBlob().getAs("application/pdf").setName("5S report_WK"+week+"_"+area+"_"+ trigramShiftl+"_"+ trigramOperatorUpper+"_"+ trigramTechUpper+".pdf"); folder.createFile(report); }