OfficeServer/create-simple-template.js
dgsoft 5371d5e479 Add WebDAV integration and template improvements
 Frontend-Verbesserungen:
- WebDAV-Integration für direktes Template-Bearbeiten
- 'In Word öffnen' Button für ms-word: URLs
- Verbesserte Template-Karten mit Tag-Informationen
- WebDAV-Info-Sektion mit Anleitungen
- Korrigierte API-Endpunkte für docxtemplater

🔧 Template-Updates:
- Alle Templates auf docxtemplater-Syntax aktualisiert
- create-*-fixed.js Scripts für korrekte {tag} Syntax
- Entfernt alte ++tag++ und ++INS++ Syntax
- Neue create-new-table-template.js für echte Loops

🌐 WebDAV-Features:
- Direkter Template-Download über /webdav/templates/
- Template-Bearbeitung in Word möglich
- Automatische Speicherung über WebDAV
- Fallback auf Download bei Word-Problemen

📊 Template-Syntax-Migration:
- {variable} statt ++variable++
- {#array}{field}{/array} statt ++INS array++
- Echte dynamische Tabellen ohne fixe Indizes
- Verbesserte Tag-Erkennung und Analyse
2025-10-01 22:27:29 +02:00

96 lines
3.0 KiB
JavaScript

const fs = require('fs');
const path = require('path');
const { Document, Packer, Paragraph, TextRun, Table, TableRow, TableCell } = require('docx');
// Erstelle ein einfaches Test-Template mit der richtigen Syntax für docx-templates
async function createTestTemplate() {
const doc = new Document({
sections: [{
properties: {},
children: [
new Paragraph({
children: [
new TextRun({
text: "RECHNUNG",
bold: true,
size: 32,
}),
],
}),
new Paragraph({
children: [
new TextRun({
text: "Kunde: {name}",
}),
],
}),
new Paragraph({
children: [
new TextRun({
text: "E-Mail: {email}",
}),
],
}),
new Paragraph({
children: [
new TextRun({
text: "Datum: {datum}",
}),
],
}),
new Paragraph({
children: [
new TextRun({
text: "",
}),
],
}),
new Paragraph({
children: [
new TextRun({
text: "ARTIKEL",
bold: true,
}),
],
}),
new Paragraph({
children: [
new TextRun({
text: "Projekt: {projekt}",
}),
],
}),
new Paragraph({
children: [
new TextRun({
text: "Status: {status}",
}),
],
}),
new Paragraph({
children: [
new TextRun({
text: "",
}),
],
}),
new Paragraph({
children: [
new TextRun({
text: "Gesamtsumme: {betrag}€",
bold: true,
}),
],
}),
],
}],
});
const buffer = await Packer.toBuffer(doc);
const outputPath = path.join(__dirname, 'templates', 'simple-template.docx');
fs.writeFileSync(outputPath, buffer);
console.log('✅ Einfaches Template erstellt:', outputPath);
}
createTestTemplate().catch(console.error);