INHALTSVERZEICHNIS
- Allgemeines
- Einstellungen im Amadeus Backend
- Formatierung
- A4 Beispielrechnung
- Dokumentenname
- Properties Files
- Ausdrucken über externes Programm
- Document Erstellung
- Template
- Sektion Kopf
- Sektion zwkopf
- Sektion pageheader
- Sektion detail
- Sektion pagefooter
- Sektion summe
- Sektion zahlung
- Sektion steuer
- Sektion fuss
- TSE-Daten drucken
HINWEIS: Zum Bearbeiten der invoice.docx-Datei empfehlen wir Microsoft Word aus Office365.
Allgemeines
Der Amadeus Treiber Printer A4 wurde mit Docx4J entwickelt. Ein Rechnungsdruck erfolgt auf den Windows Standard Drucker, jenes PC's an dem dieser Treiber ausgeführt wird. Für jede erstellte Rechnung werden mindestens 2 Dokumente erstellt.
• Rechnung im Word Format ( *.docx ) • Rechnung im PDF Format ( für jede Seite eine PDF-Datei )
Da pro Betrieb mehrere DinA4 Treiber mit unterschiedlichen Templates laufen können, wird ein KonfigurationsFile benötigt. Diese Files werden durch die DruckerID unterschieden. printerA4.properties_[DruckerId].properties
Einstellungen im Amadeus Backend
Wenn ein DIN A4 Printer mit dazugehörenden Beleg richtig im Amadeus Backend angelegt wurde, wird bei Druckauftrag zuerst im Spool Verzeichnis ein temporäres Dokument angelegt. Somit wird sichergestellt, dass bei Ende des ACF's keine Dokumente verloren gehen.
(Druckereinstellung im Backend)
(Einstellung bei Belegen) : Hier wird das Design ignoriert
Der Printer A4-Treiber holt sich vom Spool Verzeichnis die Dateien und erstellt die Dokumente. Diese werden im Unterverzeichnis docinvoices gespeichert. Anschließend wird die Datei vom Spool Verzeichnis gelöscht.
Formatierung
Eine A4 Rechnung muss immer in einzelne Tabellen und Spalten unterteilt sein damit die Formatierung beim Ausdruck der Rechnung korrekt aus dem Drucker heraus kommt.
Beispiel:
{header.address|address} | {header.bill|type&Rechnung&}{header.interim|type&Zwischenrechnung&}{header.copy|type&Rechnungskopie&}-Nr. {header.document|document.number} Rechnungsdatum: {header.document|business.date} Uhrzeit: {header.document|document.time} Es bediente Sie: {header.waiter|waiter.name} Tisch Nummer: {header.table|table.number}
{sek=kopf} |
*** Absatz ***
Übertrag {sek=pageheader} | {balance} |
*** Absatz ***
Anzahl | Bezeichnung | Einzelpreis | Gesamt | |
{count} | {name} {sek=detail} | {balanceUnit} | {balance} |
*** Absatz ***
usw...
A4 Beispielrechnung
Hier eine Beispielrechnung:
Dokumentenname
Der Dokumentenname wird wie folgt erstellt.
p_[Druckerid]_[documentnumber]_[Zeit in ms].docx und bei Einseitigen Dokument p_[Druckerid]_[documentnumber]_[Zeit in ms].pdf bei Mehrseitigen Dokument p_[Druckerid]_[documentnumber]_[Zeit in ms]_[Seite]v[GesamtSeite] Beispiel: 2 Seitiges Dokument hat folgende Files p_2_71_1373521074797.docx p_2_71_1373521074797_1v2.pdf p_2_71_1373521074797_2v2.pdf
Properties Files
z. B printerA4_2.properties
Das ist das Property File für die Druckernummer 2 im Amadeus Backend:
Beispiel eines Property Files TemplateName=invoice.docx MaxDetail_Zeilen=14 MaxZeichen_ArtikelName=20 PrinterCommando=PDF
Im ACF-Verzeichnis muss das Template "invoice.docx" vorhanden sein. Sobald mehr als 14 Zeilen im DetailBlock ( = Tender + Artikel ) vorhanden sind wird ein Seitenumbruch erstellt.
Der Artikelname wird nach 20 Zeichen abgeschnitten.
Ausdrucken über externes Programm
Wenn kein PDF erstellt werden soll, muss das docx File über den SWriter von LibreOffice im Property File per PrinterComando definiert sein. Hierzu muss der SWriter von LibreOffice Version 5 oder 7 installiert sein.
Download LibreOffice 5: http://updates.amadeus-software.at/files/LibreOffice_5.0.6.3_Win_x86.msi.
Die LibreOffice Version 7.1.2 (64bit) konnte auch erfolgreich getestet werden.
Download LibreOffice 7: http://updates.amadeus-software.at/files/LibreOffice_7.1.2_Win_x64.msi..
Bitte unbedingt eine der LibreOffice-Versionen im oben aufgeführten Link verwenden, damit der A4 Rechnungsdruck reibungslos funktioniert.
Automatische Ausdrucke über SWriter von LibreOffice: "C\:\\Program Files\\LibreOffice 5\\program\\swriter"
Beispiel des gesamten A4 Properties File:
#changed automaticaly #Thu Mar 20 08:04:59 CET 2014 TemplateName=invoice.docx PageSize=A4 MaxDetail_Zeilen=30 MaxZeichen_ArtikelName=20 PrinterCommando="C\:\\Program Files\\LibreOffice 5\\program\\swriter"
Läuft das ACF über einen Dienst, muss in den Eigenschaften des Dienstes die Anmeldedaten des Windows-/System-Benutzers hinterlegt werden, damit die Rechnung über den
Dienst ausgelöst und zum Drucker gesendet werden können.
Document Erstellung
Wenn man PDF erstellt, d.h. Im Propterty File ist als PrinterCommand=PDF kann es vorkommen, dass sich das Aussehen der PDF-Dateien etwas unterscheidet zum ursprünglichen Windows Dokument. Gewisse Word-Schriftarten sind nicht im PDF definiert, deshalb wird hier auf eine Standard Schrift zurückgegriffen. Die Konvertierung in ein PDF ist notwendig um den automatisierten Druck auszulösen.
Template
Der Name des Templates muss im KonfigurationsFile korrekt eingegeben worden sein. Das Template File muss sich im ACF Verzeichnis befinden. Wird der Treiber das 1. Mal verwendet, so lautet der Standard Template Name: invoice.docx
Existiert das Template Document nicht, so erfolgt ein Eintrag in das LogFile.
Das Template muss aus Tabellen bestehen. Leerzeilen zwischen den Tabellen werden ignoriert. Folgende Sektionen bzw. Tabellen sind möglich. Die einzige Pflichttabelle ist hier die "detail" Tabelle.
• kopf • zwkopf • pageheader • detail • pagefooter • summe • zahlung • steuer • fuss
Damit die Tabellen zugeordnet werden können, muss "{sek=tabellenname}" stehen. Wo dieser Text in der Tabelle steht ist egal. Prinzipiell werden alle Felder in "{" "}" eingeschlossen.
Sektion Kopf
Dieser Bereich wird auf jede Seite gedruckt. Folgende Variablen können hier verwendet werden: Beispiele: Tischnummer: {header.table|table.number}
Neu hinzugekommen:
{header.interim|type&Zwischenrechnung&} Hier wird nur Zwischenrechnung gedruckt sofern es eine Zwischenrechnung ist. Jetzt muss der header.bill und header.billcopy im Formular eingetragen werden, sodass die Zwischenrechnung, Rechnungskopie und Rechnung unterschieden werden können.
Die Rechnungsnummer wird im Kopfbereich mit {header.document|bill.number} ausgegeben.
header.document document.type|BILL document.name|Rechnung Service document.date|27.05.2013 document.number|50 doucment.printername|DinA4Printer type|header.document document.docnumber|32 document.pagetotal|&PAGETOTAL& document.printertyp|Printer A4 business.date|30.04.2013 document.page|&PAGE& document.time|10:33:55 business.zcount|21 document.systemnumber|76 header.address address|Will Smith Main Street 3 Australia
header.organization zum schreiben: organization.street2,| zum schreiben: organization.zcount|21 zum schreiben: organization.number|2596 zum schreiben: organization.name1|KUFFLER California Kitchen zum schreiben: organization.zip|80539 zum schreiben: organization.country| zum schreiben: type|header.organization zum schreiben: organization.name|Das Kuffler München zum schreiben: organization.name2| zum schreiben: organization.street1|Hofgraben 9 zum schreiben: organization.town|München header.waiter zum schreiben: person.firstname|Service zum schreiben: person.lastname|Ebner zum schreiben: waiter.number|999 zum schreiben: waiter.name|Ebner Sevice zum schreiben: person.number|999 zum schreiben: type|header.waiter header.team zum schreiben: type|header.team header.terminal zum schreiben: terminal.number|7 zum schreiben: site.name|Service zum schreiben: profile.name|Service zum schreiben: terminal.name|Kasse 1 - Service zum schreiben: type|header.terminal zum schreiben: site.number|3 zum schreiben: profile.number|4 header.table zum schreiben: table.number|6 zum schreiben: type|header.table bill.detail.header zum schreiben: time.time|10:33:55 zum schreiben: time.date|27.05.2013 zum schreiben: type|bill.detail.header
Sektion zwkopf
Diese Sektion wird nur auf der 1. Seite gedruckt. Informationen die nur einmal gedruckt werden sollten, sollen in dieser Tabelle definiert werden. Es sind dieselben Felder möglich wie bei der Sektion Kopf.
Sektion pageheader
Falls es zu einem Seitenumbruch kommt, werden auf den darauffolgenden Seiten der Übertrag berechnet und gedruckt. Hier gibt es nur als Feld
balance
Sektion detail
Das ist die einzige Tabelle die am Template vorhanden sein muss. Folgende Felder sind zur Zeit definiert. Tender Datensätze werden leicht eingerückt dargestellt.
count name lab balanceUnit balance
Sektion pagefooter
Falls es zu einem Seitenumbruch kommt, wird auf der aktuellen Seiten der Übertrag berechnet und gedruckt. Hier gibt es nur als Feld:
balance
Sektion summe
Diese Sektion hat nur einen Eintrag und beinhaltet folgende Felder:
balance saldo currency
Sektion zahlung
Zahlungen können pro Rechnung mehrfach vorhanden sein. Deshalb werden hier mehrere Zeilen (pro Zahlung eine Zeile) erstellt.
name balance currency
Sektion steuer
Auch hier können mehrere Steuersätze vorhanden sein, daher ist eine Zeilendarstellung notwendig.
lab netto brutto balance name
Sektion fuss
Wird nur am Dokumentende, d.h. einmal gedruckt. Dieselben Felder wie bei der Sektion Kopf sind möglich.
TSE-Daten drucken
Ab der Version 1.4.9 ist es möglich die TSE-Daten auch auf die A4 Rechnung zu drucken. Dazu sind nachfolgende Parameter im invoice.docx in der Fuss-Sektion einzufügen:
Signatur:
{header.document|bill.tsesignature}
PublicKey:
{header.document|bill.tsepublickey}
SN:
{header.document|bill.tseserialnumber}
SignZähler: {header.document|bill.tsesigcount}
{header.document|bill.tsesignaturealgo}
Transaktion:
{header.document|bill.tsetransactionnumber}
Start:
{header.document|bill.tsestarttime}
Stop:
{header.document|bill.tsestoptime}
{header.document|bill.tsetimeformat}
1.Order:
{header.document|bill.tsestarttimefirstorder}
{header.document|bill.tseqr}
Beispiel Rechnung:
Ein Beispielsdesign wo die Parameter bereits eingefügt sind, findet man am Ende der Seite.