Node.js Express Tutorial to Transform Raw XML to PDF Document Using xml-pdf Module Full Project For Beginners

 

 

Welcome folks today in this blog post we will be converting raw xml to pdf document in node.js and express using xml-pdf module. All the full source code of the application is shown below.

 

 

 

Installation

 

 

You need to install the below library inside your node.js express project using the npm command as shown below

 

npm i express

 

npm i xml-pdf

 

 

Get Started

 

 

Now you need to make the index.js file inside the express project and copy paste the below code

 

index.js

 

 

const xml = require('xml-pdf');
var options = {};

xml.xmlpdf('./files/in.xml', './files/output.pdf', './files/template.mustache', options, function (error, response) {
    if (error) {
      console.log(error);
    } else {
      console.log(response);
    }
});

 

 

Now make a folder files inside the project and make below files inside it

 

 

in.xml

 

 

<?xml version="1.0" encoding="UTF-8"?>
<CATALOG>
  <PLANT>
    <COMMON>Bloodroot</COMMON>
    <BOTANICAL>Sanguinaria canadensis</BOTANICAL>
    <ZONE>4</ZONE>
    <LIGHT>Mostly Shady</LIGHT>
    <PRICE>$2.44</PRICE>
    <AVAILABILITY>031599</AVAILABILITY>
  </PLANT>
  <PLANT>
    <COMMON>Columbine</COMMON>
    <BOTANICAL>Aquilegia canadensis</BOTANICAL>
    <ZONE>3</ZONE>
    <LIGHT>Mostly Shady</LIGHT>
    <PRICE>$9.37</PRICE>
    <AVAILABILITY>030699</AVAILABILITY>
  </PLANT>
  <PLANT>
    <COMMON>Marsh Marigold</COMMON>
    <BOTANICAL>Caltha palustris</BOTANICAL>
    <ZONE>4</ZONE>
    <LIGHT>Mostly Sunny</LIGHT>
    <PRICE>$6.81</PRICE>
    <AVAILABILITY>051799</AVAILABILITY>
  </PLANT>
  <PLANT>
    <COMMON>Cowslip</COMMON>
    <BOTANICAL>Caltha palustris</BOTANICAL>
    <ZONE>4</ZONE>
    <LIGHT>Mostly Shady</LIGHT>
    <PRICE>$9.90</PRICE>
    <AVAILABILITY>030699</AVAILABILITY>
  </PLANT>
  <PLANT>
    <COMMON>Dutchman's-Breeches</COMMON>
    <BOTANICAL>Dicentra cucullaria</BOTANICAL>
    <ZONE>3</ZONE>
    <LIGHT>Mostly Shady</LIGHT>
    <PRICE>$6.44</PRICE>
    <AVAILABILITY>012099</AVAILABILITY>
  </PLANT>
  <PLANT>
    <COMMON>Ginger, Wild</COMMON>
    <BOTANICAL>Asarum canadense</BOTANICAL>
    <ZONE>3</ZONE>
    <LIGHT>Mostly Shady</LIGHT>
    <PRICE>$9.03</PRICE>
    <AVAILABILITY>041899</AVAILABILITY>
  </PLANT>
  <PLANT>
    <COMMON>Hepatica</COMMON>
    <BOTANICAL>Hepatica americana</BOTANICAL>
    <ZONE>4</ZONE>
    <LIGHT>Mostly Shady</LIGHT>
    <PRICE>$4.45</PRICE>
    <AVAILABILITY>012699</AVAILABILITY>
  </PLANT>
  <PLANT>
    <COMMON>Liverleaf</COMMON>
    <BOTANICAL>Hepatica americana</BOTANICAL>
    <ZONE>4</ZONE>
    <LIGHT>Mostly Shady</LIGHT>
    <PRICE>$3.99</PRICE>
    <AVAILABILITY>010299</AVAILABILITY>
  </PLANT>
  <PLANT>
    <COMMON>Jack-In-The-Pulpit</COMMON>
    <BOTANICAL>Arisaema triphyllum</BOTANICAL>
    <ZONE>4</ZONE>
    <LIGHT>Mostly Shady</LIGHT>
    <PRICE>$3.23</PRICE>
    <AVAILABILITY>020199</AVAILABILITY>
  </PLANT>
  <PLANT>
    <COMMON>Mayapple</COMMON>
    <BOTANICAL>Podophyllum peltatum</BOTANICAL>
    <ZONE>3</ZONE>
    <LIGHT>Mostly Shady</LIGHT>
    <PRICE>$2.98</PRICE>
    <AVAILABILITY>060599</AVAILABILITY>
  </PLANT>
  <PLANT>
    <COMMON>Phlox, Woodland</COMMON>
    <BOTANICAL>Phlox divaricata</BOTANICAL>
    <ZONE>3</ZONE>
    <LIGHT>Sun or Shade</LIGHT>
    <PRICE>$2.80</PRICE>
    <AVAILABILITY>012299</AVAILABILITY>
  </PLANT>
  <PLANT>
    <COMMON>Phlox, Blue</COMMON>
    <BOTANICAL>Phlox divaricata</BOTANICAL>
    <ZONE>3</ZONE>
    <LIGHT>Sun or Shade</LIGHT>
    <PRICE>$5.59</PRICE>
    <AVAILABILITY>021699</AVAILABILITY>
  </PLANT>
  <PLANT>
    <COMMON>Spring-Beauty</COMMON>
    <BOTANICAL>Claytonia Virginica</BOTANICAL>
    <ZONE>7</ZONE>
    <LIGHT>Mostly Shady</LIGHT>
    <PRICE>$6.59</PRICE>
    <AVAILABILITY>020199</AVAILABILITY>
  </PLANT>
  <PLANT>
    <COMMON>Trillium</COMMON>
    <BOTANICAL>Trillium grandiflorum</BOTANICAL>
    <ZONE>5</ZONE>
    <LIGHT>Sun or Shade</LIGHT>
    <PRICE>$3.90</PRICE>
    <AVAILABILITY>042999</AVAILABILITY>
  </PLANT>
  <PLANT>
    <COMMON>Wake Robin</COMMON>
    <BOTANICAL>Trillium grandiflorum</BOTANICAL>
    <ZONE>5</ZONE>
    <LIGHT>Sun or Shade</LIGHT>
    <PRICE>$3.20</PRICE>
    <AVAILABILITY>022199</AVAILABILITY>
  </PLANT>
  <PLANT>
    <COMMON>Violet, Dog-Tooth</COMMON>
    <BOTANICAL>Erythronium americanum</BOTANICAL>
    <ZONE>4</ZONE>
    <LIGHT>Shade</LIGHT>
    <PRICE>$9.04</PRICE>
    <AVAILABILITY>020199</AVAILABILITY>
  </PLANT>
  <PLANT>
    <COMMON>Trout Lily</COMMON>
    <BOTANICAL>Erythronium americanum</BOTANICAL>
    <ZONE>4</ZONE>
    <LIGHT>Shade</LIGHT>
    <PRICE>$6.94</PRICE>
    <AVAILABILITY>032499</AVAILABILITY>
  </PLANT>
  <PLANT>
    <COMMON>Adder's-Tongue</COMMON>
    <BOTANICAL>Erythronium americanum</BOTANICAL>
    <ZONE>4</ZONE>
    <LIGHT>Shade</LIGHT>
    <PRICE>$9.58</PRICE>
    <AVAILABILITY>041399</AVAILABILITY>
  </PLANT>
  <PLANT>
    <COMMON>Anemone</COMMON>
    <BOTANICAL>Anemone blanda</BOTANICAL>
    <ZONE>6</ZONE>
    <LIGHT>Mostly Shady</LIGHT>
    <PRICE>$8.86</PRICE>
    <AVAILABILITY>122698</AVAILABILITY>
  </PLANT>
  <PLANT>
    <COMMON>Grecian Windflower</COMMON>
    <BOTANICAL>Anemone blanda</BOTANICAL>
    <ZONE>6</ZONE>
    <LIGHT>Mostly Shady</LIGHT>
    <PRICE>$9.16</PRICE>
    <AVAILABILITY>071099</AVAILABILITY>
  </PLANT>
  <PLANT>
    <COMMON>Bee Balm</COMMON>
    <BOTANICAL>Monarda didyma</BOTANICAL>
    <ZONE>4</ZONE>
    <LIGHT>Shade</LIGHT>
    <PRICE>$4.59</PRICE>
    <AVAILABILITY>050399</AVAILABILITY>
  </PLANT>
  <PLANT>
    <COMMON>Bergamot</COMMON>
    <BOTANICAL>Monarda didyma</BOTANICAL>
    <ZONE>4</ZONE>
    <LIGHT>Shade</LIGHT>
    <PRICE>$7.16</PRICE>
    <AVAILABILITY>042799</AVAILABILITY>
  </PLANT>
  <PLANT>
    <COMMON>Black-Eyed Susan</COMMON>
    <BOTANICAL>Rudbeckia hirta</BOTANICAL>
    <ZONE>Annual</ZONE>
    <LIGHT>Sunny</LIGHT>
    <PRICE>$9.80</PRICE>
    <AVAILABILITY>061899</AVAILABILITY>
  </PLANT>
  <PLANT>
    <COMMON>Buttercup</COMMON>
    <BOTANICAL>Ranunculus</BOTANICAL>
    <ZONE>4</ZONE>
    <LIGHT>Shade</LIGHT>
    <PRICE>$2.57</PRICE>
    <AVAILABILITY>061099</AVAILABILITY>
  </PLANT>
  <PLANT>
    <COMMON>Crowfoot</COMMON>
    <BOTANICAL>Ranunculus</BOTANICAL>
    <ZONE>4</ZONE>
    <LIGHT>Shade</LIGHT>
    <PRICE>$9.34</PRICE>
    <AVAILABILITY>040399</AVAILABILITY>
  </PLANT>
  <PLANT>
    <COMMON>Butterfly Weed</COMMON>
    <BOTANICAL>Asclepias tuberosa</BOTANICAL>
    <ZONE>Annual</ZONE>
    <LIGHT>Sunny</LIGHT>
    <PRICE>$2.78</PRICE>
    <AVAILABILITY>063099</AVAILABILITY>
  </PLANT>
  <PLANT>
    <COMMON>Cinquefoil</COMMON>
    <BOTANICAL>Potentilla</BOTANICAL>
    <ZONE>Annual</ZONE>
    <LIGHT>Shade</LIGHT>
    <PRICE>$7.06</PRICE>
    <AVAILABILITY>052599</AVAILABILITY>
  </PLANT>
  <PLANT>
    <COMMON>Primrose</COMMON>
    <BOTANICAL>Oenothera</BOTANICAL>
    <ZONE>3 - 5</ZONE>
    <LIGHT>Sunny</LIGHT>
    <PRICE>$6.56</PRICE>
    <AVAILABILITY>013099</AVAILABILITY>
  </PLANT>
  <PLANT>
    <COMMON>Gentian</COMMON>
    <BOTANICAL>Gentiana</BOTANICAL>
    <ZONE>4</ZONE>
    <LIGHT>Sun or Shade</LIGHT>
    <PRICE>$7.81</PRICE>
    <AVAILABILITY>051899</AVAILABILITY>
  </PLANT>
  <PLANT>
    <COMMON>Blue Gentian</COMMON>
    <BOTANICAL>Gentiana</BOTANICAL>
    <ZONE>4</ZONE>
    <LIGHT>Sun or Shade</LIGHT>
    <PRICE>$8.56</PRICE>
    <AVAILABILITY>050299</AVAILABILITY>
  </PLANT>
  <PLANT>
    <COMMON>Jacob's Ladder</COMMON>
    <BOTANICAL>Polemonium caeruleum</BOTANICAL>
    <ZONE>Annual</ZONE>
    <LIGHT>Shade</LIGHT>
    <PRICE>$9.26</PRICE>
    <AVAILABILITY>022199</AVAILABILITY>
  </PLANT>
  <PLANT>
    <COMMON>Greek Valerian</COMMON>
    <BOTANICAL>Polemonium caeruleum</BOTANICAL>
    <ZONE>Annual</ZONE>
    <LIGHT>Shade</LIGHT>
    <PRICE>$4.36</PRICE>
    <AVAILABILITY>071499</AVAILABILITY>
  </PLANT>
  <PLANT>
    <COMMON>California Poppy</COMMON>
    <BOTANICAL>Eschscholzia californica</BOTANICAL>
    <ZONE>Annual</ZONE>
    <LIGHT>Sun</LIGHT>
    <PRICE>$7.89</PRICE>
    <AVAILABILITY>032799</AVAILABILITY>
  </PLANT>
  <PLANT>
    <COMMON>Shooting Star</COMMON>
    <BOTANICAL>Dodecatheon</BOTANICAL>
    <ZONE>Annual</ZONE>
    <LIGHT>Mostly Shady</LIGHT>
    <PRICE>$8.60</PRICE>
    <AVAILABILITY>051399</AVAILABILITY>
  </PLANT>
  <PLANT>
    <COMMON>Snakeroot</COMMON>
    <BOTANICAL>Cimicifuga</BOTANICAL>
    <ZONE>Annual</ZONE>
    <LIGHT>Shade</LIGHT>
    <PRICE>$5.63</PRICE>
    <AVAILABILITY>071199</AVAILABILITY>
  </PLANT>
  <PLANT>
    <COMMON>Cardinal Flower</COMMON>
    <BOTANICAL>Lobelia cardinalis</BOTANICAL>
    <ZONE>2</ZONE>
    <LIGHT>Shade</LIGHT>
    <PRICE>$3.02</PRICE>
    <AVAILABILITY>022299</AVAILABILITY>
  </PLANT>
</CATALOG>

 

See also  Build a Badminton Court Design in Browser Using HTML5 and CSS3 Grid Full Project For Beginners

 

 

<!DOCTYPE html>
<html>
<head>
    <title>XML-PDF</title>
    <style type="text/css">
            table {
          border-collapse: collapse;
          border-spacing: 0; }
        td,
        th {
          padding: 0; }
        table, th, td {
          border: none; }
        table {
          width: 100%;
          display: table; }
          table.bordered > thead > tr,
          table.bordered > tbody > tr {
            border-bottom: 1px solid #d0d0d0; }
          table.striped > tbody > tr:nth-child(odd) {
            background-color: #f2f2f2; }
          table.striped > tbody > tr > td {
            border-radius: 0; }
          table.highlight > tbody > tr {
            transition: background-color .25s ease; }
            table.highlight > tbody > tr:hover {
              background-color: #f2f2f2; }
          table.centered thead tr th, table.centered tbody tr td {
            text-align: center; }
        thead {
          border-bottom: 1px solid #d0d0d0; }
        td, th {
          padding: 15px 5px;
          display: table-cell;
          text-align: left;
          vertical-align: middle;
          border-radius: 2px; }
    </style>
</head>
<body>
    <table class="striped">
        <thead>
            <tr>
                <th>COMMON</th>
                <th>BOTANICAL</th>
                <th>ZONE</th>
                <th>LIGHT</th>
                <th>PRICE</th>
                <th>AVAILABILITY</th>
            </tr>
        </thead>
        <tbody>
        {{#CATALOG.PLANT}}
          <tr>
            <td>{{COMMON}}</td>
            <td>{{BOTANICAL}}</td>
            <td>{{ZONE}}</td>
            <td>{{LIGHT}}</td>
            <td>{{PRICE}}</td>
            <td>{{AVAILABILITY}}</td>
          </tr>
        {{/CATALOG.PLANT}}
        </tbody>
    </table>
</body>
</html>

Leave a Reply