PDF-Druck

Benötigte Lesezeit: 11 Minuten


Einleitung

Wenn man per Knopfdruck einen verwendbaren Lieferschein und eine verwendbare Rechnung drucken kann, erspart man sich viel Aufwand und damit Kosten. Mit diesem Modul für PDF Lieferschein- und Rechnungsdruck lassen sich elegante PDF-Dokumente zu jeder eingegangenen Bestellung erzeugen. Es kann auch eine eigene PDF-Vorlage importiert werden, die dann als Briefvorlage verwendet wird. Das Modul ist optional für den PepperShop erhältlich und muss separat erworben werden.

Modulkonfiguration

Zuerst geht man in die PDF Modulverwaltung: Hauptmenü der Shop-Administration > Module > PDF

In der Verwaltungsmaske des dieses PepperShop Moduls kann man nun die eigenen PDF-Vorlagen hochladen, das Modul aktivieren und die Platzierung der einzelnen Elemente (Anschrift, Titel, Artikelpositionen, …) ganz genau konfigurieren.

Abbildung 1: Ausschnitt aus dem PDF Modul Konfigurationsdialog

In der PDF Modulverwaltung gibt es folgende Einstellungsmöglichkeiten:

Abbildung 2: Fortsetzung von Abbildung 1

  • Standardwerte wiederherstellen: Das Modul wird auf seine Standardwerte zurück gesetzt, jegliche Konfigurationen gehen verloren und die Standardwerte werden gesetzt.

Konfiguration für die Darstellung der Artikel

  • Aktivierung: Soll das Modul aktiv sein?
  • PDF-Vorlage für die erste Seite: Hier wird eine PDF-Vorlage für die erste Seite hochgeladen. Das Hochladen geschieht ohne den Speichern-Button.
  • PDF-Vorlage für die Folgeseite: Hier wird eine PDF-Vorlage für die Folgeseite hochgeladen. Das Hochladen geschieht ohne den Speichern-Button.
  • Testansicht: Es wird ein Test-PDF erzeugt.

Konfigurationseinstellungen Adressblock (Anschrift)

  • maximale Zeilenlänge (längere Zeilen werden umgebrochen): Hier wird die die Anzahl Zeichen erwartet, welche maximal auf einer Zeilen stehen dürfen.
  • Adressblock Abstand vom linken Dokumentrand (in mm): Wie gross soll der gesamte Abstand vom linken Dokumentrand bis zum Adressblock sein? Die Angabe muss in Millimetern erfolgen.
  • Adressblock Abstand vom oberen Dokumentrand (in mm): Wie gross soll der gesamte Abstand vom oberen Dokumentrand bis zum Adressblock sein? Die Angabe muss in Millimetern erfolgen.
  • Breite des Adressblocks (in mm): Die Breite des gesamten Adressblocks. Die Angabe muss in Millimetern erfolgen.
  • Adressblock-Schriftstil: leer, B, I, U: Legen sie fest, ob der Text Bold (Fett), Italic (Kursiv), Underlined (Unterstrichen) sein soll, oder einfach unformatiert (leer).
  • Adressblock-Schriftgrösse in Punkten: Welche Grösse soll die normale Schrift im Adressblock vorweisen?

Konfigurationseinstellungen Dokumenttitel (z.B Rechnung, Lieferschein)

  • Titelblock Abstand vom linken Dokumentrand (in mm): Wie gross soll der gesamte Abstand vom linken Dokumentrand bis zum Titelblock sein? Die Angabe muss in Millimetern erfolgen.
  • Titelblock Abstand vom oberen Dokumentrand (in mm): Wie gross soll der gesamte Abstand vom oberen Dokumentrand bis zum Titelblock sein? Die Angabe muss in Millimetern erfolgen.
  • Breite der linken Spalte (Bezeichnungen): Wie gross soll die linke Spalte sein? Die Angabe soll in Millimetern erfolgen.
  • Textausrichtung linke Spalte: Die Breite des gesamten Adressblocks. Die Angabe muss in Millimetern erfolgen.
  • Titelblock-Schriftstil: leer, B, I, U: Legen sie fest, ob der Text Bold ( Fett ), Italic ( Kursiv ), Underlined ( Unterstrichen) sein soll, oder einfach unformatiert(leer).
  • Titelblock-Schriftgrösse in Punkten: Welche Grösse soll die normale Schrift im Titelblock vorweisen?

Konfigurationseinstellungen Infoblock (Rechnungs-Nr,Bestelldatum,..)

  • Infoblock Abstand vom linken Dokumentrand (in mm): Wie gross soll der gesamte Abstand vom linken Dokumentrand bis zum Infoblock sein? Die Angabe muss in Millimetern erfolgen.
  • Infoblock Abstand vom oberen Dokumentrand (in mm): Wie gross soll der gesamte Abstand vom oberen Dokumentrand bis zum Infoblock sein? Die Angabe muss in Millimetern erfolgen.
  • Breite der linken Spalte (Bezeichnungen): Wie gross soll die linke Spalte sein? Die Angabe soll in Millimetern erfolgen.
  • Breite der rechten Spalte (Inhalte): Wie gross soll die rechte Spalte sein? Die Angabe soll in Millimetern erfolgen.
  • Breite der zweiten linken Spalte (bei zweispaltig eingeschaltet): Wie gross soll die zweite linke Spalte sein? Die Angabe soll in Millimetern erfolgen.
  • Breite der zweiten rechten Spalte (bei zweispaltig eingeschaltet): Wie gross soll die zweite rechte Spalte sein? Die Angabe soll in Millimetern erfolgen.
  • Textausrichtung linke Spalte: Die Ausrichtung des Textes innerhalb der linken Spalte. L für Links oder R für Rechts eintragen.
  • Textausrichtung rechte Spalte: Die Ausrichtung des Textes innerhalb der rechten Spalte. L für Links oder R für Rechts eintragen.

Konfigurationseinstellungen Artikeltabelle

  • Rechnung, maximale Zeilenlänge des Artikelnamens(längere Zeilen werden umgebrochen): Nach wie vielen Buchstaben soll der Inhalt umgebrochen werden?
  • Lieferung, maximale Zeilenlänge des Artikelnamens(längere Zeilen werden umgebrochen): Nach wie vielen Buchstaben soll der Inhalt umgebrochen werden?
  • Artikeltabellen-Abstand vom linken Dokumentrand (in mm): Wie gross soll der gesamte Abstand vom linken Dokumentrand bis zur Artikeltabelle sein? Die Angabe muss in Millimetern erfolgen.
  • Artikeltabellen-Abstand vom oberen Dokumentrand (in mm): Wie gross soll der gesamte Abstand vom oberen Dokumentrand bis zur Artikeltabelle sein? Die Angabe muss in Millimetern erfolgen.
  • Breite Positionsspalten: Wie breit soll die Spalte sein, welche die einzelnen Positionen anzeigt? Die Angabe muss in Millimetern erfolgen.
  • Breite Bezeichnungsspalte: Wie breit soll die Spalte sein, welche die Bezeichnungen enthält? Die Angabe soll in Millimetern erfolgen.
  • Breite Spalte Anzahl: Wie breit soll die Spalte sein, welche die Anzahl Artikel enthält? Die Angabe soll in Millimetern erfolgen.
  • Breite Spalte Einheit: Wie breit soll die Spalte sein, welche die Einheit (Stück., kg etc.) enthält? Die Angabe soll in Millimetern erfolgen.
  • Breite Preisspalte: Wie breit soll die Spalte sein, welche die Preise enthält? Die Angabe soll in Millimetern erfolgen.
  • Breite Mehrwertsteuerspalte: Wie breit soll die Spalte sein, welche die Mehrwertsteuer enthält? Die Angabe soll in Millimetern erfolgen.
  • Breite Totalspalte: Wie breit soll die Spalte sein, welche die Totale enthält? Die Angabe soll in Millimetern erfolgen.
  • Textausrichtung Positionsspalten: Die Ausrichtung des Textes innerhalb der Positionsspalten. L für Links oder R für Rechts eintragen.
  • Textausrichtung Bezeichnungsspalte: Die Ausrichtung des Textes innerhalb der Bezeichnungsspalte. L für Links oder R für Rechts eintragen.
  • Textausrichtung Spalte Anzahl: Die Ausrichtung des Textes innerhalb der Spalte Anzahl. L für Links oder R für Rechts eintragen.
  • Textausrichtung Spalte Einheit: Die Ausrichtung des Textes innerhalb der Spalte Einheit. L für Links oder R für Rechts eintragen.
  • Textausrichtung Preisspalte: Die Ausrichtung des Textes innerhalb der Preisspalte. L für Links oder R für Rechts eintragen.
  • Textausrichtung Mehrwertsteuerspalte: Die Ausrichtung des Textes innerhalb der Mehrwertsteuerspalte. L für Links oder R für Rechts eintragen.
  • Textausrichtung Totalspalte: Die Ausrichtung des Textes innerhalb der Totalspalte. L für Links oder R für Rechts eintragen.

Konfigurationseinstellungen Artikelzusatzinformationen (Varianten, Optionen, Textfelder)

  • Artikelzusatzinformationen-Schriftgrösse in Punkten: Welche Grösse soll die normale Schrift in den Artikelzusatzinformationen vorweisen?
  • Artikelzusatzinformationen-Schriftstil: leer, B, I, U: Legen sie fest, ob der Text Bold ( Fett ), Italic ( Kursiv ), Underlined ( Unterstrichen) sein soll, oder einfach unformatiert(leer).

Konfigurationseinstellungen (Artikel)Bilder

  • Artikelbilder in Rechnung anzeigen
  • Artikelbilder in Lieferschein anzeigen
  • Artikelbilder: Maximale Höhe
  • Artikelbilder: Maximale Breite
  • Allgemein Bilder: Auflösung in dpi (dpi = Dots per Inch = Punkte pro Inch)

Artikelbilder werden immer vom aktuellen Sortiment genommen (identifiziert durch die interne Artikel-ID). Falls ein Artikel aus dem Sortiment entfernt wird oder dessen Bild in der Zwischenzeit geändert hat, so wird sich dies auch auf den Rechnungs-/Lieferscheindruck auswirken. Weiter muss berücksichtigt werden, dass nur Bilder in den Formaten JPG und PNG (nur 8-Bit) angezeigt werden können.

Konfigurationseinstellungen Total-Positionen

  • Breite Währungs-Spalte: Wie breit soll die Spalte sein, welche die Währungs-Spalte enthält? Die Angabe soll in Millimetern erfolgen.
  • Breite Totalspalte: Wie breit soll die Spalte sein, welche die Totalspalte enthält? Die Angabe soll in Millimetern erfolgen.
  • Textausrichtung Bezeichnungsspalte: Die Ausrichtung des Textes innerhalb der Bezeichnungsspalte. L für Links oder R für Rechts eintragen.
  • Textausrichtung Spalte Währung: Die Ausrichtung des Textes innerhalb der Spalte Währung. L für Links oder R für Rechts eintragen.
  • Textausrichtung Total-Spalte: Die Ausrichtung des Textes innerhalb der Total-Spalte. L für Links oder R für Rechts eintragen.

Konfigurationseinstellungen Seitenanzahl/Seitentotal

  • Seitenangabe Abstand vom linken Dokumentrand (in mm): Wie gross soll der gesamte Abstand vom linken Dokumentrand bis zur Seitenzahl/Seitentotal sein? Die Angabe muss in Millimetern erfolgen.
  • Seitenangabe Abstand vom oberen Dokumentrand (in mm): Wie gross soll der gesamte Abstand vom oberen Dokumentrand bis zur Seitenzahl/Seitentotal sein? Die Angabe muss in Millimetern erfolgen.
  • Schriftstil: leer, B, I, U: Legen sie fest, ob der Text Bold ( Fett ), Italic ( Kursiv ), Underlined ( Unterstrichen) sein soll, oder einfach unformatiert(leer).
  • Schriftgrösse in Punkten: Welche Grösse soll die Schrift der Seitenzahl/Seitentotal haben?
  • Ausrichtung: Die Ausrichtung des Textes der Seitenzahl/des Seitentotals. L für Links oder R für Rechts eintragen.

Konfigurationseinstellungen Rechnung Zahlungsfrist

  • Anzeige der Zahlungsfrist (nur bei Rechnungs PDF-Dokument): in Rechnung anzeigen
  • Zahlungsfrist: Anzahl Tage: Angabe in Tagen

Allgemeine Konfiguration

  • Textfarbe Rotanteil des RGB: Der Rotanteil der Textfarbe für das PDF.
  • Textfarbe Grünanteil des RGB: Der Grünanteil der Textfarbe für das PDF.
  • Textfarbe Blauanteil des RGB: Der Blauanteil der Textfarbe für das PDF.
  • Name der Schriftart: Wählen sie hier die Schriftart für das PDF.
  • Schriftstil: leer, B, I, U: Legen sie fest, ob der Text Bold (Fett), Italic (Kursiv), Underlined (Unterstrichen) sein soll, oder einfach unformatiert(leer).
  • Schriftgrösse in Punkten: Welche Grösse soll die normale Schrift vorweisen?
  • Seitenrand Oben: Den Seitenrand in Millimetern vom oberen Rand angeben.
  • Seitenrand Rechts: Den Seitenrand in Millimetern vom rechten Rand angeben.
  • Seitenrand Unten: Den Seitenrand in Millimetern vom unteren Rand angeben.
  • Seitenrand Links: Den Seitenrand in Millimetern vom linken Rand angeben.
  • Orientierungsraster über das ganze Dokument ausgeben: Legt ein Hilfsgrid über das ganze PDF, so dass die Ausrichtung überprüft werden kann.
  • Anzeige von Preisen inkl. MWST.

Bedienung

Um nun einen Lieferschein oder eine Rechnung zu erzeugen, kann man einfach auf den neuen PDF-Button unter Kunden/Bestellungen > Kundenmanagement klicken und dort den entsprechenden Link anwählen.

Abbildung 3: Kundenmanagement und Bestellungen Ansicht

Die generierten PDF-Dateien werden in folgendem Verzeichnis abgelegt:

{shopdir}/shop/Admin/pdf/generiert/

Eigene Schriften importieren (für fortgeschrittene Benutzer)

Im PepperShop werden PDFs mittels der FPDF Library erzeugt. Diese kann nur spezifisch aufbereitete Schriften verwenden. Dazu muss eine TrueType Schriftart zuerst konvertiert werden. Es gibt hierfür ein einfach zu bedienender Online Generator: http://fpdf.fruit-lab.de/

Hier gibt man eine TrueType Schriftart an (.TTF Datei) und speichert nach der Konvertierung die beiden Dateien .php und .z ab. Diese beiden Dateien müssen für jeden Schriftschnitt (normal, fett, kursiv und fett+kursiv) ins folgende Verzeichnis kopiert werden:

{shop_verzeichnis}shop/Admin/pdf/fpdf/font/

Damit die Schfrift von FPDF verwendet werden kann, muss diese aber einem speziellen Namensschema entsprechen: Nur Kleinbuchstaben und keine Sonderzeichen (Bsp. Schriftart: Lars Sans):

  • Normal:{Schriftart Name}.ttf Beispiel: larssans.ttf
  • Fett:{Schriftart Name}b.ttf Beispiel: larssansb.ttf
  • Kursiv:{Schriftart Name}i.ttf Beispiel: larssansi.ttf
  • Fett+Kursiv:{Schriftart Name}bi.ttf Beispiel: larssansbi.ttf

Eigene Schrift via PepperShop Batchimport konvertieren

Mit diesem Tool, das ab PepperShop v.3.2 verfügbar ist, kann man viele Schriften schnell für FPDF konvertieren.

Per FTP oder via Konsole auf den Webserver verbinden. Im Shop folgende zwei Verzeichnisse neu anlegen, falls diese noch nicht vorhanden sind:

{shop_verzeichnis}/shop/Admin/pdf/fpdf/src (ggf. Verzeichnisrecht auf 777 anpassen)

{shop_verzeichnis}/shop/Admin/pdf/fpdf/dest (ggf. Verzeichnisrecht auf 777 anpassen)

Im src Verzeichnis die zu konvertierenden TTF-Dateien ablegen

Die TTF Dateien müssen die im vorigen Kapitel genannte Namenskonvention erfüllen und es müssen immer alle vier Schriftschnitte vorhanden sein!

a) Im Browser oder via Kommandozeile folgenden Aufruf tätigen (Safe-Mode muss aus sein!):

http://www.example.com/mein/pfad_zum_webshop/shop/Admin/pdf/makefont_batch.php

b) …oder via Command-Line:

cd {shopverzeichnis}/shop/Admin && php pdf/makefont_batch.php commandline

Die nun erzeugten Fonts (.php + .z Dateien) vom Ordner

.../shop/Admin/pdf/fpdf/makefont/dest

in den Ordner

shop/Admin/pdf/fpdf/font verschieben. Die Fonts können nun verwendet werden.

UTF-8 Support

Standardmässig unterstützt das zugrunde liegende FPDF System nur den Latin1 Zeichensatz. Soll der umfangreiche UTF-8 Zeichensatz verwendet werden, mit welchem auch viele Zeichen von anderen Sprachen angezeigt werden können, so muss wie folgt vorgegangen werden:

Voraussetzungen:

  • Systemvoraussetzung ist ein PepperShop ab der Version 5.0.0.24
  • Es muss direkter Filezugriff vorhanden sein (FTP oder SCP)
  • PHP-Kenntnisse und ein Editor, der mit UNIX Zeilenumbrüchen arbeiten kann

UTF-8 Umschaltung / Aktivierung:

  • Admin/pdf/tfpdf.tar.gz entpacken
  • Wenn man eine TrueType-Schriftart (.ttf) hat, welche UTF-8 unterstützt (!), kann man das Modul entsprechend konfigurieren, so dass es mit UTF-8 funktioniert.
  • In der Datei {shop_verzeichnis}/shop/Admin/pdf/pdf_config.php muss man die Steuerungskonstante PDF_USE_UTF8 auf true umstellen.
  • In die Konstante PDF_USE_UTF8_FONT_NAME trägt man den Namen der UTF-8 fähigen TTF-Schriftart ein.
  • In die Konstante PDF_USE_UTF8_FONT wird der Dateiname der Schriftart eingetragen.
  • Die Schriftart muss im Verzeichnis {shop_verzeichnis}/Admin/pdf/tfpdf/font/unifon/ liegen.
  • Die Konstante PDF_USE_UTF8_FONTB ist das gleiche wie PDF_USE_UTF8_FONT für ‘fett’.
  • Die Konstante PDF_USE_UTF8_FONTI ist das gleiche wie PDF_USE_UTF8_FONT für ‘kursiv’.

Installation

Systemanforderungen

Um das PDF Druck Modul einsetzen zu können, ist ein PepperShop v.3.0 Professional oder Enterprise erforderlich.

Dateien kopieren und hochladen

Das Modul besteht aus einigen Dateien und Unterverzeichnissen, die man in seinen installierten PepperShop kopieren muss. Dazu entpackt man zuerst das mitgelieferte ZIP-Archiv. Darin sind die Unterordner mit den Dateien enthalten:

{shopdir}/shop/Admin/pdf
{shopdir}/shop/Admin/module/pdf
{shopdir}/shop/module/pdf

Die Dateien lassen sich einfach via FTP oder SCP zum Webserver hochladen. Der Platzhalter {shopdir} steht dabei für das Shopverzeichnis auf dem Webserver, wo die Datei index.php zusammen mit der Datei README.txt zu finden ist.

Nun wird das Modul vom Shop erkannt und eingebunden. Es wird im Menü Shop-Einstellungen > Shop Konfiguration unten bei den internen Modulinfos aufgelistet.

Modulinstallation

Nach dem Kopieren der Dateien kann man in die Shop-Administration gehen und dort ins Menü Module wechseln. Auf der linken Seite, bei den noch nicht installierten Modulen, sieht man nun das PDF Modul aufgelistet.

Nun muss das PDF Modul angewählt werden und auf den Installieren-Button geklickt werden. Wenn die Installationsroutine ohne Probleme durchläuft, wird dies auf der darauf folgenden Seite kommuniziert. Das Modul ist nun installiert. Wir klicken nun auf den Button Zurück zur Modulverwaltung und dort Zurück zur Moduladministration. Wir sehen jetzt einen Button für das PDF Modul. Wenn man auf diesen Button klickt, erscheint die Verwaltung dieses Moduls.

Abbildung 4: Moduladministration (die angezeigten Module können abweichen)

Weitere Installationsschritte

Das PDF-Druck Modul enthält zwei Pakete, die zur reibungslosen Verwendung des Moduls entpackt werden müssen:

{shopdir}/shop/Admin/pdf/fpdf.tar.gz
{shopdir}/shop/Admin/pdf/fpdi.tar.gz

Wenn PHP auf einem UNIX-Server als Webservermodul läuft (und nur dann):

  • dem Verzeichnis {shopdir}/shop/Admin/pdf die Zugriffsrechte 777 zuteilen
  • dem Verzeichnis {shopdir}/shop/Admin/pdf/generiert die Zugriffsrechte 777 zuteilen
  • dem Verzeichnis {shopdir}/shop/Admin/pdf/template die Zugriffsrechte 777 zuteilen

Die Dateizugriffsrechte lassen sich auch automatisch setzen (FTP basiert): Shop-Einstellungen > Shop-Konfiguration > Operationen sollte man nun noch die Dateirechte anpassen lassen.

Die Installation des PDF Moduls ist nun abgeschlossen. Damit das Modul eingesetzt werden kann, muss das Modul nun noch an die spezifische Konfiguration des Shopbetreibers angepasst werden, siehe dazu das nächste Kapitel Modulkonfiguration, weiter unten.

Anhänge

Anhang 1: Beispiel Rechnung

Anhang 2: Beispiel Lieferschein

🌶️
🔥
🌶️