Jede Gruppe von 'Zeilenpositionen' in einer Tabellenkalkulation erzeugt eine E-Mail mit angehängter PDF.

Benachbarte Zeilen in der Tabellenkalkulation mit derselben E-Mail-Adresse werden verwendet, um eine einzelne PDF-Rechnung mit Zeilenpositionen zu erstellen. Dies ist ein erweitertes Beispiel, bei dem die Methode 'Zeilen zu E-Mail' 'Eine oder mehrere Zeilen erzeugt eine E-Mail' ist. Dieses Beispiel zeigt auch die Verwendung einer HTML-Datei als Vorlage.

HTML-Vorlagen eignen sich hierfür ideal, da sie JavaScript oder die liquid-Vorlagensprache zur Formatierung des Dokuments verwenden können.

Schritt 1. CSV- oder Excel-Tabellenkalkulation erstellen

Die Tabellenkalkulation hat Seriendruckfelder als Spaltenüberschriften. Jede Zeile muss eine E-Mail-Adresse haben. Erstellen Sie aufeinanderfolgende Zeilen mit derselben E-Mail-Adresse für jede Zeilenposition, die Sie in der PDF haben möchten.

In diesem Beispiel werden 3 E-Mails gesendet, jede mit einem einzelnen Anhang.

  • Die erste hat 5 Zeilenpositionen
  • Die zweite hat 4 Zeilenpositionen
  • Die dritte hat 1 Zeilenposition

Schritt 2. HTML mit JavaScript erstellen.

pdfMachine merge wird mit fertigen Profilen geliefert, um Ihnen den Einstieg zu erleichtern.
Dieses Beispiel ist "Test Profile - HTML template with line items"

Umschließen Sie die Seriendruckfelder, die nicht als Zeilenpositionen verwendet werden sollen, mit {{ }}. Die Namen der Seriendruckfelder müssen genau den Spaltennamen in der Daten- quelle entsprechen. Die Seriendruckfelder können mithilfe der liquid-Vorlagensprache formatiert werden.

<tr>
   <td>Invoice Number</td>
   <td>{{invoice_id}}</td>
</tr>

Erstellen Sie das JavaScript, um durch die gebündelten Zeilen zu iterieren (wie unten gezeigt).

Beispiel-JavaScript

Ihre HTML-Vorlage sollte das folgende spezielle Tag enthalten:

var data = {{json_here}};

Wenn pdfMachine merge HTML-Vorlagen verarbeitet, wird dies durch eine JSON-Zeichenfolge (JavaScript Object Notation) ersetzt, die alle Daten für die gebündelten Zeilen enthält. Dies ermöglicht es Ihnen, JavaScript zu schreiben, das durch die Daten iteriert für Berechnungen oder Darstellungen. Dieses ermöglicht es Ihnen, JavaScript zu schreiben, das durch die Daten iteriert, für Berechnungen oder Darstellungen. Das "json_here"-Tag sieht so aus:

                                
                                var data = [
{"email": "[email protected]","customer": "Acme Corp","invoice_id":223,"invoice_date": "23/01/2011 12:00:00 AM","item": "blue widget","unit_cost":23,"quantity":4,"amt_due":391},
{"email": "[email protected]","customer": "Acme Corp","invoice_id":223,"invoice_date": "23/01/2011 12:00:00 AM","item": "red widget","unit_cost":21,"quantity":2,"amt_due":391},
];

JavaScript kann dann verwendet werden, um durch das Daten-Array zu iterieren, um HTML zu erstellen, um die Zeilenpositionen anzuzeigen.

function generateLineItems()
{
   var html = "<table class='hor-minimalist-b'><thead><tr><th>Item</th><th>Quantity</th><th>Unit Cost</th><th>Price</th></tr></thead>\
   <tfoot><tr><td></td><td></td><td></td><td class='amountDue'>${{amt_due}}</td></tr></tfoot><tbody>";

   for (var i = 0; i < data.length; i++)
   {
      var ob = data[i];
      html += "<tr><td>" +
      ob.item + "</td><td>" +
      ob.quantity + "</td><td>" +
      ob.unit_cost + "</td><td>" +
      "$" + ob.quantity*ob.unit_cost + "</td></tr>";
   }
   html += "</tbody></table>";

   document.getElementById("lineItemsTable").innerHTML =html;
}
        

Vergessen Sie bei der Verwendung von HTML-Vorlagen nicht, Ihre Seiteneinrichtung im Internet Explorer für Dinge wie Papiergröße und Ausrichtung, Kopf- und Fußzeilen, Ränder, Hintergrunddrucken und Anpassen an Seite einzurichten. Sie sollten auch Ihre Broadgun pdfMachine-Druckeinstellungen konfigurieren. Dieses Beispiel sollte wie folgt eingerichtet werden:

 

Schritt 3. 'Zeilen-zu-E-Mails-Methode' auf 'Eine oder mehrere Zeilen erzeugt eine E-Mail' einstellen.