Generation of PDF using Docs Template using Zoho Forms

Generation of PDF using Docs Template using Zoho Forms

I have created form using Zoho, the responses of which are linked to Google Sheet. The link of google sheet is as below. Once a user submit the form, the data uploaded in google sheet automatically.
I have created a template in google docs to generate the PDFs. the link of Template is as below: Site
The link of the form is as below:
I have written down the below script to generate the PDF once Zoho Form is submitted.
function afterFormSubmit(e) { const info = e.namedValues; const pdfFile = createPDF(info); const entryRow = e.range.getRow(); const ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet2") ws.getRange(entryRow, 63).setValue(pdfFile.getUrl()); ws.getRange(entryRow, 64).setValue(pdfFile.getName()); sendEmail(e.namedValues ['Email address'][0],pdfFile);}function sendEmail(email,pdfFile){ GmailApp.sendEmail(email, "Daily Transation Summary Report", "Please find the attached DTR", { attachments : [pdfFile], name: 'My Company'});} function createPDF(info) { const pdfFolder = DriveApp.getFolderById("1ebglel6vwMGXByeG4wHBBvJu9u0zJeMJ"); const tempFolder = DriveApp.getFolderById("1ebglel6vwMGXByeG4wHBBvJu9u0zJeMJ"); const templateDoc = DriveApp.getFileById("1kyFimRMdHQZV85F5P6JyCHv1DQ3KJFv1hx5o7lIcNZo"); const newTempFile = templateDoc.makeCopy(tempFolder); const openDoc = DocumentApp.openById(newTempFile.getId()); const body = openDoc.getBody(); body.replaceText("{Name of Person}", info['Name of Person'][0]); body.replaceText("{Date of Report}", info['Date of Report'][0]); body.replaceText("{Name of Outlet}", info['Name of Outlet'][0]); body.replaceText("{Opening Petty Cash Balance}", info['Opening Petty Cash Balance'][0]); body.replaceText("{Total Petty Cash Received}", info['Total Petty Cash Received'][0]); body.replaceText("{Closing Petty Cash Balance}", info['Closing Petty Cash Balance'][0]); body.replaceText("{Total Petty Cash Paid}", info['Total Petty Cash Paid'][0]); body.replaceText("{Available Float Cash Balance}", info['Available Float Cash Balance'][0]); body.replaceText("{Milk For Outlet}", info['Milk For Outlet'][0]); body.replaceText("{Staff Milk/Toast etc.}", info['Staff Milk/Toast etc.'][0]); body.replaceText("{Petrol Expenses}", info['Petrol Expenses'][0]); body.replaceText("{Water Tank Charges}", info['Water Tank Charges'][0]); body.replaceText("{Repair And Maintenance}", info['Repair And Maintenance'][0]); body.replaceText("{Freight Paid}", info['Freight Paid'][0]); body.replaceText("{Purchase of Soya Chaap}", info['Purchase of Soya Chaap'][0]); body.replaceText("{Purchase of Rumali Roti}", info['Purchase of Rumali Roti'][0]); body.replaceText("{Purchase of Egg Tray}", info['Purchase of Egg Tray'][0]); body.replaceText("{Other Expenses}", info['Other Expenses'][0]); body.replaceText("{Total Tip Amount (PAYTM & CARD)}", info['Total Tip Amount (PAYTM & CARD)'][0]); body.replaceText("{Cash Sales - Outlet}", info['Cash Sales - Outlet'][0]); body.replaceText("{Cash Sales - KCCO App}", info['Cash Sales - KCCO App'][0]); body.replaceText("{Card Sales}", info['Card Sales'][0]); body.replaceText("{Credit (Udhar) Sales}", info['Credit (Udhar) Sales'][0]); body.replaceText("{Paytm Sales}", info['Paytm Sales'][0]); body.replaceText("{KCCO App Sales Razor Pay}", info['KCCO App Sales Razor Pay'][0]); body.replaceText("{Swiggy Sales}", info['Swiggy Sales'][0]); body.replaceText("{Zomato Sales}", info['Zomato Sales'][0]); body.replaceText("{Dunzo Sales}", info['Dunzo Sales'][0]); body.replaceText("{Zomato Gold Sales}", info['Zomato Gold Sales'][0]); body.replaceText("{Dine Out Sales}", info['Dine Out Sales'][0]); body.replaceText("{Total Cancelled Bill Amount}", info['Total Cancelled Bill Amount'][0]); body.replaceText("{Total Sales of the Day (Total of Above)}", info['Total Sales of the Day (Total of Above)'][0]); body.replaceText("{Total Sales of the Day (As Per PetPooja)}", info['Total Sales of the Day (As Per PetPooja)'][0]); body.replaceText("{Old Due Receipts - Cash}", info['Old Due Receipts - Cash'][0]); body.replaceText("{Old Due Receipts - Other Modes}", info['Old Due Receipts - Other Modes'][0]); body.replaceText("{Tip Receipts - Card}", info['Tip Receipts - Card'][0]); body.replaceText("{Tip Receipts - Paytm}", info['Tip Receipts - Paytm'][0]); body.replaceText("{Currency Note of INR 2000}", info['Currency Note of INR 2000'][0]); body.replaceText("{Currency Note of INR 500}", info['Currency Note of INR 500'][0]); body.replaceText("{ Currency Note of INR 200}", info[' Currency Note of INR 200'][0]); body.replaceText("{Currency Note of INR 100}", info['Currency Note of INR 100'][0]); body.replaceText("{Currency Note of INR 50}", info['Currency Note of INR 50'][0]); body.replaceText("{Currency Note of INR 20}", info['Currency Note of INR 20'][0]); body.replaceText("{Currency Note of INR 10}", info['Currency Note of INR 10'][0]); body.replaceText("{Other Currency Note/Coins}", info['Other Currency Note/Coins'][0]); body.replaceText("{Total Available Cash to Handover}", info['Total Available Cash to Handover'][0]); body.replaceText("{S.No.//Name of Person// Mobile No// Credit Approval By// Bill No// Total Amount of Credit", info['S.No.//Name of Person// Mobile No// Credit Approval By// Bill No// Total Amount of Credit'][0]); body.replaceText("{Total No. of Bills of Credit Recovery}", info['Total No. of Bills of Credit Recovery'][0]); body.replaceText("{S.No.//Name of Person// Mobile No// Mode of Payment// Bill No// Total Amount Received}", info['S.No.//Name of Person// Mobile No// Mode of Payment// Bill No// Total Amount Received'][0]); body.replaceText("{Total No. of Complementary Bills During the Day}", info['Total No. of Complementary Bills During the Day'][0]); body.replaceText("{S.No.//Name of Person// Mobile No//Reason// Bill No//Amount Settled}", info['S.No.//Name of Person// Mobile No//Reason// Bill No//Amount Settled'][0]); body.replaceText("{Total No. of Cancelled Bills During the Day}", info['Total No. of Cancelled Bills During the Day'][0]); body.replaceText("{S.No.//Name of Person// Mobile No// Bill No// Bill Amount}", info['S.No.//Name of Person// Mobile No// Bill No// Bill Amount'][0]); body.replaceText("{S.No.// Bill No// Mode of Payment//Tip Amount Received}", info['S.No.// Bill No// Mode of Payment//Tip Amount Received'][0]); body.replaceText("{No. of Cylinders Received at Outlet}", info['No. of Cylinders Received at Outlet'][0]); openDoc.saveAndClose(); const blobPDF = newTempFile.getAs(MimeType.PDF); const pdfFile = pdfFolder.createFile(blobPDF).setName(info['Name of Outlet'][0]+ " " + info['Date of Report'][0]); tempFolder.removeFile(newTempFile); return pdfFile; }

    Access your files securely from anywhere

        Zoho Developer Community




                                  Zoho Desk Resources

                                  • Desk Community Learning Series


                                  • Digest


                                  • Functions


                                  • Meetups


                                  • Kbase


                                  • Resources


                                  • Glossary


                                  • Desk Marketplace


                                  • MVP Corner


                                  • Word of the Day



                                      Zoho Marketing Automation
                                              • Sticky Posts

                                              • Connect with Zoho users from your industry, virtually!

                                                A couple of years ago, we started setting up industry-wise channels for users with similar businesses to chat and discuss Zoho contextually. We started with Real Estate and E-commerce sectors, creating a chatroom and hosting regular meetups on niche areas
                                              • Feature update: Advanced security settings

                                                We've previously written about how using security policies could be beneficial for admins. To enable you to better protect your organization, we've come up with a few additional settings for security policies in Zoho One that can be used to regulate your users' web sessions. What are web sessions? A web session refers to the period of time you stay signed in to your Zoho One account. You create a new web session every time you sign in to Zoho One (or any of its included apps), and this session exists


                                              Manage your brands on social media



                                                    Zoho TeamInbox Resources

                                                      Zoho DataPrep Resources



                                                        Zoho CRM Plus Resources

                                                          Zoho Books Resources


                                                            Zoho Subscriptions Resources

                                                              Zoho Projects Resources


                                                                Zoho Sprints Resources


                                                                  Qntrl Resources


                                                                    Zoho Creator Resources



                                                                        Zoho Campaigns Resources


                                                                          Zoho CRM Resources

                                                                          • CRM Community Learning Series

                                                                            CRM Community Learning Series


                                                                          • Kaizen

                                                                            Kaizen

                                                                          • Functions

                                                                            Functions

                                                                          • Meetups

                                                                            Meetups

                                                                          • Kbase

                                                                            Kbase

                                                                          • Resources

                                                                            Resources

                                                                          • Digest

                                                                            Digest

                                                                          • CRM Marketplace

                                                                            CRM Marketplace

                                                                          • MVP Corner

                                                                            MVP Corner





                                                                              Design. Discuss. Deliver.

                                                                              Create visually engaging stories with Zoho Show.

                                                                              Get Started Now