Print A Word Document with Domo Data Using Word Template

I am not sure if anyone has done something similar, but I am trying to print a WORD document /PDF that contains DOMO information from a row.

For instance, I have a table that contains 10 columns of data, I want to be able to insert data from specific columns to specific fields in the WORD doc and print it as a PDF

Best Answer

  • MattTheGuru
    MattTheGuru Contributor
    Answer ✓

    This is something where you could use workflows to upload the text you want changed and use some simple javascript to modify the text and then download it.

    Here is an example:

    function downloadAsWordDoc(content, filename) {
    const zip = new PizZip();
    const doc = new Docxtemplater(zip); doc.loadZip( new PizZip( `<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"> <w:body> <w:p> <w:r> <w:t>${content}</w:t> </w:r> </w:p> </w:body> </w:document>` ) ); const blob = doc.getZip().generate({ type: 'blob', mimeType: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' }); saveAs(blob, filename); } const template = Hello <USERNAME>!
    I wanted to inform you that your <YEAR> <MAKE> <MODEL> vehicle is due for service.
    You should contact 801-833-XXXX and plan a date to bring in your vehicle.; const values = {
    USERNAME: 'John Doe',
    YEAR: '2021',
    MAKE: 'Toyota',
    MODEL: 'Camry'
    }; const result = replacePlaceholders(template, values);
    downloadAsWordDoc(result, 'document.docx');



    ————————

    This type of implementation could take just a little bit of custom code to get working in my opinion, but the connecting it up will just take some tweaking.

    ** Was this post helpful? Click 💡/💖/👍/😊 below. **
    ** If it solved your problem. Accept it as a solution! ✔️ **

    Or do you need more help? https://calendly.com/matthew-kastner/15-minute-chat
    Did I help you out? Feedback is priceless and will help me more than you know.Write a review!

Answers

  • Would all of the values that you wanting to use to populate the Word document be from the same row? Would you only want to pull in a single row at a time?

    David Cunningham

    ** Was this post helpful? Click Agree 😀, Like 👍️, or Awesome ❤️ below **
    ** Did this solve your problem? Accept it as a solution! ✔️**

  • fhtechllc
    fhtechllc Member

    @david_cunningham
    Would all of the values that you wanting to use to populate the Word document be from the same row? Would you only want to pull in a single row at a time?
    Yes, to both.

  • MattTheGuru
    MattTheGuru Contributor
    Answer ✓

    This is something where you could use workflows to upload the text you want changed and use some simple javascript to modify the text and then download it.

    Here is an example:

    function downloadAsWordDoc(content, filename) {
    const zip = new PizZip();
    const doc = new Docxtemplater(zip); doc.loadZip( new PizZip( `<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"> <w:body> <w:p> <w:r> <w:t>${content}</w:t> </w:r> </w:p> </w:body> </w:document>` ) ); const blob = doc.getZip().generate({ type: 'blob', mimeType: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' }); saveAs(blob, filename); } const template = Hello <USERNAME>!
    I wanted to inform you that your <YEAR> <MAKE> <MODEL> vehicle is due for service.
    You should contact 801-833-XXXX and plan a date to bring in your vehicle.; const values = {
    USERNAME: 'John Doe',
    YEAR: '2021',
    MAKE: 'Toyota',
    MODEL: 'Camry'
    }; const result = replacePlaceholders(template, values);
    downloadAsWordDoc(result, 'document.docx');



    ————————

    This type of implementation could take just a little bit of custom code to get working in my opinion, but the connecting it up will just take some tweaking.

    ** Was this post helpful? Click 💡/💖/👍/😊 below. **
    ** If it solved your problem. Accept it as a solution! ✔️ **

    Or do you need more help? https://calendly.com/matthew-kastner/15-minute-chat
    Did I help you out? Feedback is priceless and will help me more than you know.Write a review!