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.