Inhaltsverzeichnis

  1. Einführung

  2. Übersicht über das PDF-Generierungssystem von Dolibarr

  3. Standarddokumentmodelle in Dolibarr

  4. Auffinden und Verstehen von PDF-Vorlagendateien

  5. So funktioniert die PDF-Generierung in Dolibarr

  6. Auswählen eines Standard-PDF-Modells

  7. Hinzufügen Ihres Firmenlogos und Brandings

  8. Anpassen von Kopf- und Fußzeilen

  9. Bearbeiten des Layouts von PDF-Elementen

  10. Anpassen von Schriftarten, -größen und -farben

  11. Tabellenstrukturen für Produkte und Services ändern

  12. Anzeigen oder Ausblenden bestimmter Felder

  13. Hinzufügen benutzerdefinierter Felder zu PDF-Vorlagen

  14. Überlegungen zur Lokalisierung und Sprache

  15. PDF-Vorlagen und Modulintegration

  16. Erstellen eines neuen PDF-Modells von Grund auf

  17. Best Practices für Upgrades ohne Verlust benutzerdefinierter PDFs

  18. Testen und Debuggen der PDF-Ausgabe

  19. Leistungsaspekte bei großen Dokumenten

  20. Fazit


1. Einleitung

Der PDF-Dokumentengenerator von Dolibarr ist eine seiner wichtigsten Funktionen. Ob Sie Rechnungen, Angebote, Bestellungen oder Lieferscheine drucken – diese Dokumente dienen oft der offiziellen Kommunikation mit Kunden, Lieferanten und Partnern. Diese Anleitung beschreibt, wie Sie die PDF-Dokumente von Dolibarr an Ihre Marke, Geschäftslogik und Layoutpräferenzen anpassen.


2. Übersicht über das PDF-Generierungssystem von Dolibarr

Dolibarr verwendet PHP-basierte PDF-Vorlagen zur Dokumenterstellung. Diese Vorlagen sind PHP-Dateien, die je nach Dokumenttyp (z. B. Rechnungen, Bestellungen) in bestimmten Verzeichnissen abgelegt sind. Dolibarr verwendet TCPDF, eine weit verbreitete Open-Source-PHP-Bibliothek, zur Darstellung dieser PDFs.

Jedes Modul (wie Rechnungen oder Angebote) verfügt über seine eigene PDF-Generierungslogik und Vorlagendateien.


3. Standarddokumentmodelle in Dolibarr

Für jeden Dokumenttyp gibt es mehrere Standardmodelle:

  • Rechnungen: crabe, azur, fraise

  • Vorschläge: Elyse, Azur

  • Bestellungen: Einstein, Caracole

  • Sendungen: Rouget, Expedition_lettre

Diese Modelle können aus der Konfiguration jedes Moduls ausgewählt werden und dienen als Ausgangspunkt für die individuelle Anpassung.


4. PDF-Vorlagendateien finden und verstehen

Vorlagendateien werden gespeichert in:

/htdocs/core/modules/<module>/doc/

Rechnungsvorlagen finden sich beispielsweise in:

/htdocs/core/modules/facture/doc/

Jedes Modell entspricht einem .php Datei, zB pdf_crabe.modules.php. Diese Dateien definieren das Layout, die Kopf-/Fußzeilenlogik und die Art und Weise, wie Daten gerendert werden.


5. So funktioniert die PDF-Generierung in Dolibarr

Beim Generieren einer PDF-Datei:

  1. Dolibarr lädt die ausgewählte Vorlagenklasse

  2. Ruft Geschäftsdaten ab (Rechnung, Angebot usw.)

  3. Verwendet TCPDF, um Inhalte zeilenweise zu schreiben

  4. Speichert die Ausgabe im /documents/ Flyer

Der gesamte Vorgang wird durch Klicken auf das PDF erzeugen Schaltfläche innerhalb eines Dokuments.


6. Auswählen eines Standard-PDF-Modells

  1. Gehe zu Setup > Module > [Modulname]

  2. Scrollen Sie zum PDF-Vorlagen Abschnitt

  3. Wählen Sie das bevorzugte Modell als Standard

  4. Optional andere deaktivieren, um Benutzer am Wechseln zu hindern

Dadurch wird das Layout festgelegt, das für alle generierten Dokumente dieses Typs verwendet wird.


7. Hinzufügen Ihres Firmenlogos und Brandings

Logos werden verwaltet von: Setup > Firma/Organisation

So fügen Sie ein benutzerdefiniertes Logo hinzu:

  1. Laden Sie ein Logobild hoch (vorzugsweise JPEG oder PNG)

  2. Stellen Sie sicher, dass es in /logos/

  3. Vorlagen wie pdf_crabe wird es automatisch einbetten

Für mehr Kontrolle bearbeiten Sie die write_file() Methode in der Vorlagendatei, um die Position oder Größe des Logos zu ändern.


8. Kopf- und Fußzeilen anpassen

Header enthalten normalerweise:

  • Firmenname

  • Adresse

  • Dokumenttitel

  • Kennziffer

Fußzeilen können enthalten:

  • Seitenzahlen

  • Rechtliche Hinweise

  • AGB

Diese können in der Vorlage angepasst werden. pdf->SetHeader() und pdf->SetFooter() Logik oder direkt innerhalb write_file().


9. Bearbeiten des Layouts von PDF-Elementen

Sie können Folgendes anpassen:

  • Ränder und Polsterungen

  • Schriftarten für Titel, Tabellen und Notizen

  • Abstand zwischen Abschnitten

  • Bildplatzierungen

Verwenden Sie TCPDF-Methoden wie SetXY(), MultiCell() und Line() um Inhalte zu positionieren und zu formatieren.


10. Anpassen von Schriftarten, -größen und -farben

Dolibarr verwendet die Style-Engine von TCPDF. Beispiele:

$pdf->SetFont('dejavusans', 'B', 10);
$pdf->SetTextColor(0, 0, 0);
$pdf->SetFillColor(230, 230, 230);

Sie können die Schriftart (DejaVu, Courier, Helvetica) wechseln und nach Bedarf Fettdruck/Kursivschrift/Unterstrichen anwenden.


11. Tabellenstrukturen für Produkte und Dienstleistungen ändern

Die Hauptprodukttabelle umfasst:

  • Beschreibung

  • Anzahl

  • Einzelpreis

  • Gesamt

Sie können:

  • Spaltenreihenfolge ändern

  • Spalten hinzufügen/entfernen (z. B. SKU, Lieferanteninformationen)

  • Währungsanzeige formatieren

Suchen Sie die Schleife, die verarbeitet $object->lines[] in der Vorlagendatei und passen Sie sie entsprechend an.


12. Anzeigen oder Ausblenden bestimmter Felder

So blenden Sie Felder aus bzw. zeigen sie an:

  • Verwenden Sie Konfigurationskonstanten (eingestellt über Setup > Anderes Setup)

  • Fügen Sie bedingte Logik in PHP hinzu, zB:

if (!empty($line->ref)) {
    $pdf->MultiCell(...);
}

Sie können auch Benutzerberechtigungen oder Dokumenttypen überprüfen, um Inhalte bedingt wiederzugeben.


13. Hinzufügen benutzerdefinierter Felder zu PDF-Vorlagen

Wenn Sie zusätzliche Felder hinzugefügt haben:

  1. Stellen Sie sicher, dass sie aktiviert und in der Benutzeroberfläche ausgefüllt sind

  2. Zugriff darauf über $object->array_options['options_fieldname']

  3. Formatieren und einfügen mit MultiCell() oder andere TCPDF-Funktionen

Benutzerdefinierte Felder funktionieren für Drittanbieter, Produkte und die meisten Dokumentzeilen.


14. Lokalisierung und Sprachüberlegungen

PDFs berücksichtigen die Spracheinstellungen von Dolibarr. Bei der Erstellung mehrsprachiger Dokumente:

  • Sprache einstellen in $outputlangs vor dem Schreiben von Inhalten

  • Nutzen Sie load_langs('bills') oder ähnlich

Stellen Sie die UTF-8-Kodierung und Schriftarten sicher, die Sonderzeichen unterstützen.


15. PDF-Vorlagen und Modulintegration

Einige Module wie Verträge oder Projekte verfügen über eigene Vorlagen. Bei der Integration von Daten aus anderen Modulen:

  • Erweitern Sie die Vorlagenlogik, um zusätzliche Felder abzufragen

  • Verwenden Sie bei Bedarf Hooks oder überschreiben Sie Kernvorlagen

Dokumentieren Sie stets die Abhängigkeiten zwischen Modulen.


16. Erstellen eines neuen PDF-Modells von Grund auf

  1. Kopieren Sie ein vorhandenes Modell (z. B. pdf_crabe.modules.php)

  2. Benennen Sie die Datei und Klasse um (z. B. pdf_mycustom.modules.php und pdf_mycustom)

  3. Registrieren Sie es, indem Sie die Moduleinstellungsseite aktualisieren

  4. Testen und iterieren

Bewahren Sie Ihre benutzerdefinierten Vorlagen draußen auf /core/ wenn möglich, um Überschreibungen während Upgrades zu vermeiden.


17. Best Practices für Upgrades ohne Verlust benutzerdefinierter PDFs

  • Ändern Sie niemals integrierte Vorlagen direkt

  • Speichern Sie benutzerdefinierte Dateien in einem /custom/ oder Backup-Verzeichnis

  • Verwenden Sie die Versionskontrolle (Git), um Änderungen zu verfolgen

  • Testen Sie nach jedem Dolibarr-Upgrade

Dokumentieren Sie außerdem Ihre Anpassungen, damit das Team darüber informiert ist.


18. Testen und Debuggen der PDF-Ausgabe

So debuggen Sie:

  • Nutzen Sie print_r() or var_dump() (Protokoll in Datei, nicht auf dem Bildschirm)

  • Einblick in das $object Struktur

  • Überprüfen Sie die TCPDF-Ausgabe auf Layoutfehler

Verwenden Sie Sandbox-Rechnungen für sichere Tests.


19. Leistungsüberlegungen bei großen Dokumenten

Für Rechnungen mit vielen Zeilen:

  • Minimieren Sie die Verwendung von Bildern und Schriftarten

  • Richtig paginieren

  • Vermeiden Sie unnötige Schleifen

  • Nutzen Sie SetAutoPageBreak(true) um abgeschnittene Inhalte zu verhindern

Durch Leistungsoptimierung können Timeouts oder Speicherfehler vermieden werden.


20. Fazit

Durch die Anpassung der PDF-Dokumente von Dolibarr können Unternehmen professionelle, markengerechte und funktionale Ergebnisse erzielen. Von kleinen Layoutanpassungen bis hin zur Erstellung völlig neuer Vorlagen – das Verständnis der Funktionsweise des PDF-Systems gibt Ihnen die volle Kontrolle über die Dokumenterstellung.