Created
December 8, 2016 19:30
-
-
Save cashweaver-zz/18bac71b28d1e6a7e95babff33726c82 to your computer and use it in GitHub Desktop.
Cover Letter Customizer (Google App Script)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* Reference: | |
* - https://developers.google.com/apps-script/guides/html/templates | |
* - https://developers.google.com/apps-script/guides/html/ | |
* - https://developers.google.com/apps-script/guides/dialogs#custom_sidebars | |
* - https://developers.google.com/apps-script/reference/document/body#replacetextsearchpattern-replacement | |
*/ | |
function customizeAndDownloadPDF(form) { | |
var ui = DocumentApp.getUi(); | |
var doc = DocumentApp.getActiveDocument(); | |
var activeDocumentId = doc.getId(); | |
var file = DriveApp.getFileById(activeDocumentId); | |
// I have a directory below the directory my Master Cover Letter is in named Cover Letters. | |
// You may have a different folder structure. Reference the documentation! | |
// https://developers.google.com/apps-script/reference/drive/folder#getfoldersbynamename | |
var coverLetterFolder = DriveApp.getFoldersByName('Cover Letters').next(); | |
// Clone the document | |
var clonedDocId = file.makeCopy(form.companyName + ' Cover Letter', coverLetterFolder).getId(); | |
// Update the document | |
var clonedDoc = DocumentApp.openById(clonedDocId); | |
var body = clonedDoc.getBody(); | |
body.replaceText('COMPANY_NAME', form.companyName); | |
body.replaceText('SPECIFIC_NAME', form.addressee); | |
body.replaceText('WHERE_I_FOUND_THE_JOB', form.jobDiscovery); | |
body.replaceText('LINK_TO_JOB_POSTING', form.jobLink); | |
body.replaceText('WHY_I_LIKE_THE_COMPANY. EXPRESS_EXCITEMENT.', form.companySpecific); | |
clonedDoc.saveAndClose(); | |
// Reopen the document after saveAndClose() | |
clonedDoc = DocumentApp.openById(clonedDocId); | |
saveAsPDF(clonedDoc, clonedDoc.getName() + '.pdf', coverLetterFolder); | |
ui.alert('Your new cover letter is ready.', ui.ButtonSet.OK); | |
} | |
function saveAsPDF(document, fileName, folder) { | |
var pdfBlob = document.getAs('application/pdf'); | |
pdfBlob.setName(fileName); | |
var pdf = DriveApp.createFile(pdfBlob); | |
folder.addFile(pdf); | |
} | |
function onOpen() { | |
// Adds the menu item which activates this script when your document loads | |
DocumentApp.getUi() | |
.createMenu('Customize') | |
.addItem('Customize Cover Letter', 'showSidebar') | |
.addToUi(); | |
} | |
function showSidebar() { | |
var html = HtmlService.createHtmlOutputFromFile('sidebar') | |
.setTitle('Customize Cover Letter') | |
.setWidth(300); | |
DocumentApp.getUi() | |
.showSidebar(html); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment