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

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

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);
    }
});
<?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>
<!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 Comment