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
2025-10-01 21:14:31 +02:00
2025-10-01 21:14:31 +02:00
2025-10-01 19:55:38 +02:00
2025-10-01 19:55:38 +02:00
2025-10-01 19:55:38 +02:00
2025-10-01 19:55:38 +02:00
2025-10-01 19:55:38 +02:00
2025-10-01 19:55:38 +02:00
2025-10-01 21:14:31 +02:00
2025-10-01 19:55:38 +02:00
2025-10-01 19:55:38 +02:00
2025-10-01 19:55:38 +02:00

DOCX Template Server mit WebDAV

Ein Node.js Webserver zum Befüllen von DOCX-Templates mit Daten aus Web-Requests, erweitert um WebDAV-Funktionalität für direktes Bearbeiten der Dokumente.

Features

  • 📄 DOCX-Templates mit Daten befüllen
  • 🌐 Daten über Web-Requests empfangen
  • 📊 Unterstützung für Tabellen und Listen
  • 🔄 Integration mit externen APIs
  • 💾 Download generierter Dokumente
  • 🎯 Einfache Web-Oberfläche
  • 🗂️ WebDAV-Server für direktes Bearbeiten der Dateien
  • 📝 Office-Integration (Word, LibreOffice)
  • 🔐 Benutzerauthentifizierung

Installation

npm install

Start

# Entwicklung mit Auto-Reload
npm run dev

# Production
npm start

Der Server läuft standardmäßig auf http://localhost:3000 WebDAV Server läuft auf http://localhost:8080

WebDAV-Zugriff

Server URLs

Anmeldedaten

  • Admin: admin / password123
  • User: user / docx2024

Verbindung aufbauen

  • Windows: Als Netzlaufwerk verbinden: http://localhost:8080/output
  • macOS: Finder → Mit Server verbinden: http://localhost:8080/output
  • Linux: Dateimanager → dav://localhost:8080/output

Siehe WEBDAV-ANLEITUNG.md für detaillierte Anleitungen.

API Endpoints

📄 Dokument erstellen

POST /generate-document
Content-Type: application/json

{
  "templateName": "template.docx",
  "data": {
    "name": "Max Mustermann",
    "email": "max@beispiel.de",
    "items": [
      {"product": "Produkt A", "quantity": 2, "price": 29.99}
    ]
  }
}

🌐 Mit externen Daten

POST /generate-from-external/:id
Content-Type: application/json

{
  "templateName": "template.docx"
}

📋 Templates auflisten

GET /templates

📥 Dokument herunterladen

- `GET /download/:filename` - Dokumente herunterladen
- **`GET /webdav-info` - WebDAV-Konfigurationsinformationen**
- **`GET /files/output` - Liste aller Output-Dateien mit WebDAV-URLs**
- **`DELETE /files/output/:filename` - Datei löschen**

🔍 Status prüfen

GET /health

Template-Syntax

Verwenden Sie diese Platzhalter in Ihren DOCX-Templates:

Einfache Werte

{{name}} → Max Mustermann
{{email}} → max@beispiel.de
{{date}} → 30.09.2025

Tabellen

Erstellen Sie eine Tabelle in Word und verwenden Sie:

{{#items}}
{{product}} | {{quantity}} | {{price}}
{{/items}}

Bedingungen

{{#name}}
Dieser Text wird nur angezeigt wenn 'name' existiert
{{/name}}

Ordnerstruktur

/home/nodejs/
├── server.js          # Hauptserver
├── package.json       # Dependencies
├── public/
│   └── index.html     # Web-Interface
├── templates/         # DOCX-Templates hier ablegen
└── output/           # Generierte Dokumente

Templates hinzufügen

  1. Erstellen Sie ein DOCX-Template in Word
  2. Fügen Sie Platzhalter wie {{name}} ein
  3. Speichern Sie die Datei im templates/ Ordner

Beispiel-Template

Erstellen Sie eine Word-Datei mit folgendem Inhalt:

Rechnung

Name: {{name}}
E-Mail: {{email}}
Datum: {{date}}

Artikel:
{{#items}}
- {{product}} ({{quantity}}x) - {{price}}€
{{/items}}

Gesamt: {{total}}€

Verwendung

  1. Server starten: npm run dev
  2. Browser öffnen: http://localhost:3000
  3. Template im templates/ Ordner ablegen
  4. Über die Web-Oberfläche Dokumente generieren

Externe APIs integrieren

Bearbeiten Sie die server.js und ersetzen Sie die Beispiel-Daten in der /external-data/:id Route:

app.get('/external-data/:id', async (req, res) => {
    try {
        const id = req.params.id;
        
        // Hier Ihren API-Call einfügen
        const response = await fetch(`https://ihre-api.com/data/${id}`);
        const data = await response.json();
        
        res.json(data);
    } catch (error) {
        res.status(500).json({ error: 'API-Fehler' });
    }
});
Description
No description provided
Readme 3.3 MiB
Languages
JavaScript 74.4%
HTML 20.3%
Shell 5.3%