const PizZip = require('pizzip');
const fs = require('fs');
const path = require('path');
// Erstelle ein Template mit professioneller Tabelle für docxtemplater
function createTableTemplate() {
const zip = new PizZip();
// Content Types
zip.file('[Content_Types].xml', `
`);
// Main relationships
zip.file('_rels/.rels', `
`);
// Document relationships
zip.file('word/_rels/document.xml.rels', `
`);
// Styles
zip.file('word/styles.xml', `
`);
// Document content optimiert für docxtemplater
zip.file('word/document.xml', `
RECHNUNG
Firma: {firma}
Ansprechpartner: {vorname} {nachname}
E-Mail: {email}
Adresse: {adresse}, {plz} {stadt}
Rechnungsdatum: {datum}
Rechnungsnummer: {nummer}
RECHNUNGSPOSITIONEN
Pos.
Beschreibung
Betrag (EUR)
Datum
{#items}{items_position}{/items}
{items_name}
{items_value}
{items_date}
∑
GESAMTBETRAG
{betrag}
Bemerkungen:
{beschreibung}
Mit freundlichen Grüßen
{firma}
`);
return zip.generate({ type: 'nodebuffer' });
}
// Erstelle das Template
const templateBuffer = createTableTemplate();
const templatePath = path.join(__dirname, 'templates', 'rechnung_mit_tabelle.docx');
fs.writeFileSync(templatePath, templateBuffer);
console.log('Template mit Tabelle erstellt:', templatePath);
console.log('Features:');
console.log('- Erste Seite: Rechnungskopf');
console.log('- Zweite Seite: Professionelle Tabelle mit Spalten für Position, Beschreibung, Betrag und Datum');
console.log('- Automatische Positionsnummerierung');
console.log('- Summenzeile am Ende der Tabelle');