Script app: How do I view a Google PDF after I save a feature to Google Drive?

To let users view the PDF version of the Google Sheet that they just saved on Google Drive, follow these steps: How to add PDF viewer function to this code? Offers on the Internet do not work fully.

function checkSheet() { var sheetName = "POTemplate"; var folderID = "Eric"; var sourceSpreadsheet = SpreadsheetApp.getActive(); var sourceSheet = sourceSpreadsheet.getSheetByName(sheetName); var poNo = sourceSheet.getRange("b2").getValue(); var pdfName = "Sample PO Hi Eric - Happy Valentine's" + poNo; var folder = DriveApp.getFoldersByName(folderID); var destSpreadsheet = SpreadsheetApp.open(DriveApp.getFileById(sourceSpreadsheet.getId()).makeCopy(folder)); var sheets = destSpreadsheet.getSheets(); for (i = 0; i < sheets.length; i++) { if (sheets[i].getSheetName() != sheetName){ destSpreadsheet.deleteSheet(sheets[i])}}; var theBlob = destSpreadsheet.getBlob().getAs('application/pdf').setName(pdfName); var newFile = folder.next().createFile(theBlob); DriveApp.getFileById(destSpreadsheet.getId()).setTrashed(true); } 
0
source share
1 answer

To add a view function, you can get a link to a new file using file.getUrl() and present the link to the user in a dialog like

  var strUrl = newFile.getUrl() var html = HtmlService.createTemplateFromFile("NewTab") html.strUrl = strUrl SpreadsheetApp.getUi().showModelessDialog(html.evaluate(), "Pdf Link") 

Your HTML NewTab file will be encoded like this

 <!DOCTYPE html> <html> <head> <base target="_top"> </head> <body> <a href ="<?!= strUrl ?>"> Link </a> to your PDF File </body> <script> var evLink = document.getElementsByTagName('a')[0] //evLink.click(); //If you try to programmatically activate link, // pop-up blocker stops the link from opening. </script> </html> 

Reference:
file.getUrl()
Dialog box
SO request when opening a new tab / link

0
source

Source: https://habr.com/ru/post/1275673/


All Articles