Konfiguration¶
Im Ordner "config" befinden sich drei YAML-Dateien:
config_default.yml:
Dient als Standard-Konfigurationsdatei und darf nicht gelöscht oder geändert werden.config.yml:
Diese Konfigurationsdatei dient zur benutzerspezifischen Konfiguration. Hier können Sie Ihren Stempelprozess konfigurieren. Sie können hierfür die Struktur einzelner Punkte aus derconfig_default.yml
kopieren und entsprechend ändern und überschreiben.config_bates_numbering.yml:
Eine beispielhafte Konfiguration für ein Paginiersystem/Nummerierungssystem bzw. eine sogenannte Bates-Nummerierung. Sollten Sie keine Paginierung/Nummerierung benötigen, können Sie diese Konfigurationsdatei ignorieren. Weitere Details finden Sie in der Dokumentation zu Bates-Konfigurationen.
Sie können beliebig viele weitere YAML-Konfigurationsdateien anlegen, um z.B. verschiedene Stempelprozesse abzubilden. Eigene YAML-Konfigurationsdateien können mit dem Parameter -conf
beim Start des QStamper-Services eingesetzt werden.
Nachfolgend werden die unterschiedlichen Einstellungsmöglichkeiten erläutert.
Zugangsdaten¶
In der Sektion licensing
können die Zugangsdaten für Ihren QStamper-Benutzeraccount angegeben werden. Zudem können Sie einen eigenen Ordner für Ihre Lizenzdateien konfigurieren.
# licensing settings
licensing:
# the email used to login on the licensing server
email: 'info@qstamper.de'
# the password used to login on the licensing server
password: 'password'
- Datentyp:
String
- Beschreibung: E-Mail-Adresse um sich auf dem Lizenzserver einzuloggen.
- erforderlich
- Datentyp:
String
- Beschreibung: Password um sich auf dem Lizenzserver einzuloggen.
- erforderlich
- Datentyp:
String
- Beschreibung: Pfad des Ordners, der Ihre Lizenzdateien enthält.
- optional, Standardwert:
var\licenses
Allgemeine Einstellungen¶
Unter general
können allgemeine, optionale Einstellungen für QStamper angepasst werden. Bei nur einem Stempelprozess sind in dieser Sektion normalerweise keinerlei Anpassungen bzw. individuelle Konfigurationen erforderlich.
# general settings
general:
# path to a log file (does not have to exist)
log_filename: var\log\core_log.log
- Datentyp:
String
- Beschreibung: Pfad zur Log-Datei für diese Konfiguration. Bei Verwendung mehrerer Konfigurationen wird empfohlen pro Konfiguration eine eigene Log-Datei zu verwenden.
- optional, Standardwert:
var\log\core_log.log
- Datentyp:
String
- Beschreibung: Pfad zum temporärem QStamper-Verzeichnis.
- optional, Standardwert:
var\tmp
- Datentyp:
String
- Beschreibung: Pfad zur OCR-Tesseract-Bibliothek, falls Sie eine andere Tesseract-Version als die mitgelieferte Version verwenden wollen.
- optional, Standardwert:
lib\tesseract-ocr
Service¶
Unter service
kann der QStamper-Service konfiguriert werden.
# settings for the QStamper service
service:
# a path to a hotfolder
hotfolder: hotfolder
# a path where the stamped files should be moved to
output_folder: results
# a path where the failed files should be moved to
failed_folder: failed
# a flag indicating whether the input file should be deleted or not
delete_input_file: True
# a path where the processed input files should be moved to (only relevant if delete_input_file is false)
processed_folder:
# a flag indicating whether already existing files in the hotfolder should be processed or not (default: True)
process_existing_files: True
# a flag indicating whether an alternative polling method should be used to observe the hotfolder, which can be
# useful if file events from the operating system (e.g. ionotify) are not reliable; for example, this may be the
# case if folders on mounted network drives are observed (default: False)
hotfolder_polling: False
- Datentyp:
String
- Beschreibung: Pfad zu Verzeichnis, in dem PDF-Dokumente automatisch bei Eingang verarbeitet und gestempelt werden.
- optional, Standardwert:
hotfolder
- Datentyp:
String
- Beschreibung: Pfad zu Verzeichnis, in dem PDF-Dokumente nach erfolgreicher Bearbeitung abgelegt werden.
- optional, Standardwert:
results
- Datentyp:
String
- Beschreibung: Pfad zu Verzeichnis, in dem PDF-Dokumente bei fehlerhaften Bearbeitung abgelegt werden.
- optional, Standardwert:
failed
- Datentyp:
Boolean
- Beschreibung: Ein Boolean-Wert der definiert, ob ein eingehendes Dokument im Hotfolder gelöscht werden soll oder nicht.
- optional, Standardwert:
True
- Datentyp:
String
- Beschreibung: Pfad zu Verzeichnis, in welches originale Dokumente nach der Verarbeitung verschoben werden soll (Nur relevant wenn
delete_input_file: False
ist). - optional
- Datentyp:
Boolean
- Beschreibung: Ein Boolean-Wert, der festlegt, ob beim Start des QStamper-Services bereits vorhandene Dokumente im Hotfolder abgearbeitet werden oder nicht. Neu eingehende Dokumente im Hotfolder werden während der Verarbeitung bereits vorhandener Dokumente erkannt und verarbeitet sobald die bereits vorhandenen Dokumente abgearbeitet sind.
- optional, Standardwert:
True
- Datentyp:
Boolean
- Beschreibung: Ein Boolean-Wert, der festlegt, ob zur Überwachung des Hotfolders ein Polling-Mechanismus verwendet werden soll. Dies kann hilfreich sein, falls Datei-Events vom Betriebssystem nicht zuverlässig ausgegeben werden. Das kann zum Beispiel der Fall sein, wenn ein Hotfolder auf einem Netzwerklaufwerk überwacht wird.
- optional, Standardwert:
False
Stempelprozess¶
In der Sektion stamper
kann der Stempelprozess definiert werden.
# settings for the stamper process
stamper:
# type of the stamp: 'qr' (default), 'code128', 'code39', 'image' or 'transparent'
type: 'qr'
# page selection (for documents with multiple pages, possible values: an integer as a string from '1' to 'n' or 'last')
page: '1'
# page selection fallback: always stamp the first page if the configured page does not exist (if set to false the process will fail if the configured page does not exist)
first_page_fallback: true
# page margins (integer, in mm)
margin_top: 1
margin_left: 1
margin_bottom: 1
margin_right: 1
# custom stamp size (integer, in mm). For barcodes 'stamp_width' is ignored since the total stamp width is calculated dynamically.
# For auto sizing of 'image' stamps you can define only one dimension and set the other dimension to 0. Thus the dimension with the value 0 will be calculated automatically based on the other dimension.
stamp_width:
stamp_height:
# custom module width for barcodes (float, in mm, default: 0.35)
stamp_barcode_module_width:
# custom padding for QR codes (float, in points, default: 1.75)
stamp_qr_padding:
# image path for the stamp type 'image' (has to be a valid path if the type 'image' is selected)
stamp_image_path:
# image proportions are maintained by default with the stamp type 'image', set this to false if you want to distort the image with custom proportions defined by 'stamp_width' and 'stamp_height'
stamp_image_keep_proportions: True
# placement strategy ('best_fit_close_to_border', 'best_fit_biggest_area_close_to_border' or 'best_fit_biggest_area_centered')
strategy: 'best_fit_close_to_border'
# strategy options, which only apply to the strategy 'best_fit_close_to_border' ('best_fit_option_prefer_top' and/or 'best_fit_option_prefer_margin')
strategy_options:
- 'best_fit_option_prefer_top'
- 'best_fit_option_prefer_margin'
# Overprinting enables placing the stamp in areas which are not completely free. Specifiying a value between 1 and 100 for 'overprint_area_max_percentage' enables overprinting
# and reduces the required free area by the given percentage (integer). For example, a value of 20 reduces the required free area by 20% to 80% of the stamp area.
overprint_area_max_percentage: 0
# overprinting strategy (options: 'prefer_less_overprinting', which tries to prefer stamp areas with no or less overprinted content; 'ignore_overprinting_percentage', completely ignores the actual overprinted area;
# when no value is given, the actual overprinted area is only very weakly taken into account when positioning the stamp)
overprinting_strategy: ''
# content of the stamp (required for the stamp types 'qr', 'code128' and 'code39')
content:
# content provider ('static', 'cmd', 'filename', 'bates-numbering')
provider: 'static'
# configuration for the static content provider
provider_static:
content: 'Test'
# configuration for the filename content provider
provider_filename:
# regex pattern to read the content of the stamp from the filename. if no pattern is set, the complete filename is used
pattern: 'Lieferschein_(.*).pdf'
# the name of a bates numbering configuration (string, default: empty, defined in the bates numbering configuration file and enabled under 'bates_numbering')
provider_bates_numbering:
# prints the stamp content or a custom content as an additional label above, below or over the stamp
additional_labels:
# an additional label above the stamp (increases the height of the stamp, the width of the label is equal to the the stamp width)
above:
# type of the label content ('custom', 'stamp_content' or empty for no additional label)
type:
# Custom content of the label, which applies only for the additional label type 'custom'.
# Linebreaks can be added with \n, variables can be used with <:variable:>
# and the current date and time can be printed with qnow("%d.%m.%Y %H:%M:%S") using the 1989 C standard for date format
custom_content:
# the font size of the additional label (float, default: 6.0)
fontsize:
# the font of the text (string, e.g. "Symb" for Symbol, default "Helv" for Helvetica, for more information see the online documentation)
text_font:
# color of the input text (string, hex color code, e.g. "#ff0000")
text_color:
# the alignment of each text line (string, 'left', 'right' or 'center', default: 'center')
text_align:
# an additional label below the stamp (increases the height of the stamp, the width of the label is equal to the the stamp width)
below:
# type of the label content ('custom', 'stamp_content' or empty for no additional label)
type:
# Custom content of the label, which applies only for the additional label type 'custom'.
# Linebreaks can be added with \n, variables can be used with <:variable:>
# and the current date and time can be printed with qnow("%d.%m.%Y %H:%M:%S") using the 1989 C standard for date format
custom_content:
# the font size of the additional label (float, default: 6.0)
fontsize:
# the font of the text (string, e.g. "Symb" for Symbol, default "Helv" for Helvetica, for more information see the online documentation)
text_font:
# color of the input text (string, hex color code, e.g. "#ff0000")
text_color:
# the alignment of each text line (string, 'left', 'right' or 'center', default: 'center')
text_align:
# additional labels overlaying the stamp (do not effect the width or height of the stamp and can go beyond the stamp's borders)
overlay:
# name of the overlay label
label-name:
# type of the label content ('custom', 'stamp_content' or empty for no additional label)
type:
# Custom content of the label, which applies only for the additional label type 'custom'.
# Linebreaks can be added with \n, variables can be used with <:variable:>
# and the current date and time can be printed with qnow("%d.%m.%Y %H:%M:%S") using the 1989 C standard for date format
custom_content:
# left position in points (float, default 0.0, relative to the left border of the stamp)
left:
# top position in points (float, default 0.0, relative to the top border of the stamp)
top:
# width in points (float, default: 10.0)
width:
# height in points (float, default: 10.0)
height:
# the font size of the additional label (float, default: 6.0)
fontsize:
# the font of the text (string, e.g. "Symb" for Symbol, default "Helv" for Helvetica, for more information see the online documentation)
text_font:
# color of the text (string, hex color code, e.g. "#ff0000")
text_color:
# the alignment of each text line (string, 'left', 'right' or 'center', default: 'center')
text_align:
# background color (string, hex color code, e.g. "#ff0000", or empty for a transparent background)
background_color:
# the border width in points (int, default 0)
border_width:
# border color (string, hex color code, e.g. "#ff0000")
border_color:
# top padding in points (float, default: 0.0)
padding_top:
# left padding in points (float, default: 0.0)
padding_left:
# variables which can be used within the custom_content string by using the format <:name-of-the-variable:>
variables:
# name of the variable
my-variable:
# type of the variable ('filename-regex' or 'stamp-content-regex')
type:
# value of the variable (e.g. a regular expression)
value:
Allgemein¶
Art des Stempels:
- Datentyp:
String
- Optionen: 'qr', 'code128', 'code39', 'image', 'transparent'
- Beschreibung: Die Art des Stempels (QR-Code, Barcode vom Typ Code128, Barcode vom Typ Code 39, Bild oder ein transparenter Stempel ohne Inhalt).
- Standardwert:
'qr'
Seite:
- Datentyp:
String
- Beschreibung: Auswahl der Seite, welche gestempelt werden soll. Eine Nummer von '1' bis 'n' oder 'last', um die letzte Seite auszuwählen.
- Standardwert:
'1'
- Datentyp:
Boolean
- Beschreibung: Ein Boolean-Wert, der definiert, ob automatisch die erste Seite gestempelt werden soll, falls die ausgewählte Seite unter
page
nicht existiert. Falls der Fallback nicht aktiv ist, scheitert der Stempelprozess wenn eine ausgewählte Seite nicht existiert. Der QStamper-Service wird bei einem einzelnen gescheiterten Stempelprozess nicht terminiert. - Standardwert:
True
Rand, in dem nicht gestempelt wird:
- Datentyp:
Integer
- Beschreibung: Abstand zum oberen Seitenrand in Millimeter, in dem nicht gestempelt wird.
- Standardwert:
1
- Datentyp:
Integer
- Beschreibung: Abstand zum oberen Seitenrand in Millimeter, in dem nicht gestempelt wird.
- Standardwert:
1
- Datentyp:
Integer
- Beschreibung: Abstand zum unteren Seitenrand in Millimeter, in dem nicht gestempelt wird.
- Standardwert:
1
- Datentyp:
Integer
- Beschreibung: Abstand zum rechten Seitenrand in Millimeter, in dem nicht gestempelt wird.
- Standardwert:
1
Stempelgröße:
- Datentyp:
Integer
- Beschreibung: Breite des Stempels in Millimeter (für Barcodes nicht relevant, da die Breite dynamisch auf Basis des Inhalts kalkuliert wird). Bei Verwendung der Stempelart
'image'
kann für eine automatische Berechnung der Breite auf Basis der Höhe der Wert auf 0 gesetzt werden, wenn der Wert vonstamp_height
gleichzeitig gesetzt und größer als 0 ist. - optional, Standardwert abhängig von der Art des Stempels
- Datentyp:
Integer
- Beschreibung: Höhe des Stempels in Millimeter. Bei Verwendung der Stempelart
'image'
kann für eine automatische Berechnung der Höhe auf Basis der Breite der Wert auf 0 gesetzt werden, wenn der Wert vonstamp_width
gleichzeitig gesetzt und größer als 0 ist. - optional, Standardwert abhängig von der Art des Stempels
Konfiguration Barcodes:
- Datentyp:
Float
- Beschreibung: Die Modulbreite von Barcodes in Millimetern. Die Modulbreite definiert die schmalste Breite eines Barcode-Moduls. Dieser Wert hat großen Einfluss auf die resultierende Gesamtbreite eines Barcodes.
- optional, Standardwert:
0.35
Konfiguration QR-Codes:
- Datentyp:
Float
- Default: 1.75
- Beschreibung: Äußerer transparenter Rand für QR-Codes in Points. Verkleinert den sichtbaren Bereich eines QR-Codes.
- optional, Standardwert:
1.75
Konfiguration Bildstempel:
- Datentyp:
String
- Beschreibung: Pfad zu einer Bilddatei für den Stempel-Typ
'image'
. Muss ein valider Pfad sein, ansonsten scheitert der Stempelprozess. Der QStamper-Service wird bei einem einzelnen gescheiterten Stempelprozess nicht terminiert. - optional, Standardwert:
1.75
- Datentyp:
Boolean
- Beschreibung: Ein Boolean-Wert, der für den Stempel-Typ
'image'
definiert, ob das Seitenverhältnis des gestempelten Bildes erhalten werden soll. Setzen Sie diesen Wert aufFalse
, falls Sie die Proportionen des gestempelten Bildes mit den Wertenstamp_width
undstamp_height
beliebig verzerren wollen. - Standardwert:
True
Platzierungsstrategie:
- Datentyp:
String
- Optionen: 'best_fit_close_to_border', 'best_fit_biggest_area_close_to_border', 'best_fit_biggest_area_centered'
- Beschreibung: Platzierungsstrategie zum Aufbringen des Stempels. Die Strategie
'best_fit_close_to_border'
präferiert Platzierungen nahe am Rand und in den Ecken. Die Strategie'best_fit_biggest_area_close_to_border'
bevorzugt ebenfalls Platzierungen nahe am Rand und in den Ecken, legt dabei jedoch mehr Wert darauf, dass um den Stempel herum mehr freie Flächen ohne Inhalt liegen. Die Strategie'best_fit_biggest_area_centered'
präferiert große freien Flächen ohne Inhalt und zentriert dabei den Stempel innerhalb der ausgewählten Fläche. - erforderlich, Standardwert:
'best_fit_close_to_border'
- Datentyp:
List
- Optionen: 'best_fit_option_prefer_top', 'best_fit_option_prefer_margin'
- Beschreibung: Weitere Optionen, um die Strategie
'best_fit_close_to_border'
zu beeinflussen. Alle Optionen garantieren keine bestimmten Platzierungen, sondern sind abhängig von allen möglichen Platzierungen im Dokument und deren interne Bewertung durch den Platzierungsalgorithmus. Wenn die Option'best_fit_option_prefer_top'
gesetzt ist, werden Platzierungen am oberen Seitenrand gegenüber äquivalenten Platzierungen am unteren Seitenrand präferiert. Mit der Option'best_fit_option_prefer_margin'
werden hingegen Platzierungen bevorzugt, die möglichst viel Abstand zum Inhalt des Dokuments haben.
Überdrucken/Überstempeln von Inhalten:
Mit den folgenden Konfigurationsmöglichkeiten kann das Überdrucken/Überstempeln von Inhalten aktiviert werden, so dass Stempel auch in solchen Bereichen platziert werden, die nicht komplett frei sind.
- Datentyp:
Integer
- Beschreibung: Aktivierung des Überdruckens/Überstempelns und Bestimmung der maximal überdruckten Fläche relativ zum Stempel in Prozent. Die Angabe eines Wertes zwischen
1
und100
aktiviert das Überdrucken/Überstempeln und reduziert die benötigte freie Fläche um den angegebenen Prozentsatz. Ein Wert von20
verringert beispielsweise die erforderliche freie Fläche um 20% auf 80% der Stempelfläche. - optional, Standardwert:
0
(deaktiviert)
- Datentyp:
String
- Optionen: 'prefer_less_overprinting', 'ignore_overprinting_percentage'
- Beschreibung: Auswahl einer Überdrucken-Strategie. Die Strategie
'prefer_less_overprinting'
präferiert Platzierungen mit gar keinen oder wenig überdruckten Flächen mit Inhalt. Die Strategie'ignore_overprinting_percentage'
ingoriert die tatsächlich überdruckte Fläche mit Inhalt komplett. Wenn kein Wert angegeben ist, wird die tatsächlich überdruckte Fläche bei der Positionierung des Stempels nur sehr geringfügig berücksichtigt. - optional
Inhalt¶
Unter content
wird der Inhalt des Stempels definiert. Für QR-Codes und Barcodes muss ein Inhalt definiert werden.
- Datentyp:
String
- Optionen: 'filename', 'static', 'cmd', 'bates-numbering'
- Beschreibung: Möglichkeiten um den Inhalt eines QR-Codes oder Barcodes zu definieren. Mit der Option
'filename'
kann der Stempelinhalt mit Hilfe eines RegEx-Befehls über den Dateinamen generiert werden. Mit der Option'static'
kann ein statischer Inhalt überprovider_static.content
definiert werden. Bei der Option'cmd'
kann ein String beim Aufruf von QStamper mit dem Parameter-c
bzw.--content
übergeben werden. Mit der Option'bates-numbering'
kann der Zähler eines Paginiersystems/Nummerierungssystems als Stempelinhalt definiert werden. In diesem Fall muss für die Optionprovider_bates_numbering
der Name einer validen Bates-Konfiguration angegeben werden. - erforderlich für QR-Code- und Barcode-Stempel
Statischer Inhalt¶
In der Sektion provider_static
kann ein statischer Inhalt für den Stempel definiert werden.
- Datentyp:
String
- Beschreibung: Statischer Stempelinhalt als String.
Dateiname¶
Unter provider_filename
kann der Inhalt des Stempel über den Dateiname definiert werden. Mit Hilfe eines RegEx-Patterns können Werte aus dem Dateinamen als Stempelinhalt verwendet werden.
- Datentyp:
String
- Beschreibung: RegEx-Befehl zur Konfiguration des Stempelinhalts aus dem Dateiname des Dokuments.
Paginierung (Bates)¶
Unter provider_bates_numbering
kann eine Bates-Konfiguration, also die Konfiguration eines Paginiersystems/Nummerierungssystems angegeben werden. Diese Konfiguration muss sowohl im Stempelprozess unter bates_numbering
ausgewählt/aktiviert und in der entsprechenden Konfigurationsdatei (standardmäßig config/bates_numbering_config.yml
) definiert sein. Weitere Details finden Sie in der Dokumentation zu Bates-Konfigurationen.
- Datentyp:
String
- Beschreibung: Name eines validen Paginier-/Nummerierungssystems (Bates-Konfiguration).
Zusätzliche Labels¶
In der Sektion additional_labels
können zusätzliche, mehrzeilige Text-Labels mit dokumentenindividuellen Inhalten oberhalb, unterhalb oder innerhalb des Stempels platziert werden.
Überhalb¶
Mit above
kann ein zusätzliches Labels überhalb des Stempels platziert werden.
Hinweise
- Das Label überhalb des Stempels wird als Teil des Stempels integriert. Damit erhöht es die Gesamthöhe des Stempels, was sich auch auf die benötigte freie Fläche auswirkt. Die Breite des Labels entspricht der Breite des Stempels und hat keinen Einfluss auf die Gesamtgröße des Stempels.
- Zu lange Textinhalte werden automatisch auf Basis der Stempelbreite umgebrochen und erhöhen die Gesamthöhe des Stempels.
- Datentyp:
String
- Optionen: 'custom', 'stamp_content'
- Beschreibung: Typ des zusätzlichen Labels überhalb des Stempels. Bei Verwendung des Typs
stamp_content
wird der Inhalt des QR-Codes oder Barcodes überhalb des Stempels abgebildet. Mit dem Typcustom
kann ein benutzerdefinierter Text übercustom_content
definiert werden.
- Datentyp:
String
- Beschreibung: Benutzerdefinierter Inhalt des Labels überhalb des Stempels (nur für Typ
custom
). Zeilenumbrüche können mit\n
und Variablen mit<:variable:>
hinzugefügt werden. Das aktuelle Datum sowie die aktuelle Uhrzeit können mitqnow("%d.%m.%Y %H:%M:%S")
unter Verwendung des 1989 C Standards für Datumsformate in das Label eingefügt werden. Falls im Stempelprozess unterbates_numbering
Paginier-/Nummerierungssysteme (Bates-Konfigurationen) aktiviert und in einer entsprechenden Konfigurationsdatei definiert sind, können deren aktuelle Zähler mitqbates("name-der-bates-konfiguration")
in das Label eingefügt werden.
- Datentyp:
Float
- Beschreibung: Schriftgröße für das Label.
- optional, Standardwert:
6.0
- Datentyp:
String
- Optionen: Siehe Schriftarten.
- Beschreibung: Die Schriftart für das Label.
- optional, Standardwert:
'Helv'
- Datentyp:
String
- Beschreibung: Die Schriftfarbe für das Label als hexadezimaler Farb-Code.
- optional, Standardwert:
'#000000'
(schwarz)
- Datentyp:
String
- Optionen: 'left', 'right', 'center'
- Beschreibung: Die horizontale Textausrichtung des Labels.
- optional, Standardwert:
'center'
Unterhalb¶
Mit below
kann ein zusätzliches Labels unterhalb des Stempel platziert werden.
Hinweise
- Das Label unterhalb des Stempels wird als Teil des Stempels integriert. Damit erhöht es die Gesamthöhe des Stempels, was sich auch auf die benötigte freie Fläche auswirkt. Die Breite des Labels entspricht der Breite des Stempels und hat keinen Einfluss auf die Gesamtgröße des Stempels.
- Zu lange Textinhalte werden automatisch auf Basis der Stempelbreite umgebrochen und erhöhen die Gesamthöhe des Stempels.
- Datentyp:
String
- Optionen: 'custom', 'stamp_content'
- Beschreibung: Typ des zusätzlichen Labels unterhalb des Stempels. Bei Verwendung des Typs
stamp_content
wird der Inhalt des QR-Codes oder Barcodes überhalb des Stempels abgebildet. Mit dem Typcustom
kann ein benutzerdefinierter Text übercustom_content
definiert werden.
- Datentyp:
String
- Beschreibung: Benutzerdefinierter Inhalt des Labels unterhalb des Stempels (nur für Typ
custom
). Zeilenumbrüche können mit\n
und Variablen mit<:variable:>
hinzugefügt werden. Das aktuelle Datum sowie die aktuelle Uhrzeit können mitqnow("%d.%m.%Y %H:%M:%S")
unter Verwendung des 1989 C Standards für Datumsformate in das Label eingefügt werden. Falls im Stempelprozess unterbates_numbering
Paginier-/Nummerierungssysteme (Bates-Konfigurationen) aktiviert und in einer entsprechenden Konfigurationsdatei definiert sind, können deren aktuelle Zähler mitqbates("name-der-bates-konfiguration")
in das Label eingefügt werden.
- Datentyp:
Float
- Beschreibung: Schriftgröße für das Label.
- optional, Standardwert:
6.0
- Datentyp:
String
- Optionen: Siehe Schriftarten.
- Beschreibung: Die Schriftart für das Label.
- optional, Standardwert:
'Helv'
- Datentyp:
String
- Beschreibung: Die Schriftfarbe für das Label als hexadezimaler Farb-Code.
- optional, Standardwert:
'#000000'
(schwarz)
- Datentyp:
String
- Optionen: 'left', 'right', 'center'
- Beschreibung: Die horizontale Textausrichtung des Labels.
- optional, Standardwert:
'center'
Overlay / Innerhalb¶
Mit overlay
können beliebig viele zusätzliche Labels innerhalb des Stempel platziert werden. Solche sogenannten Overlay-Labels überlagern den restlichen Stempel-Inhalt und werden relativ
zum linken oberen Eck des Stempels positioniert.
Hinweise
- Overlay-Labels haben keinen Einfluss auf die Höhe oder Breite des Stempels und können über den Rand des Stempels hinausgehen. Dabei besteht bei falscher Konfiguration die Gefahr, dass Inhalte des Dokuments überdruckt werden.
- Wenn der Textinhalt größer als die Höhe und Breite des Overlay-Labels ausfällt, wird der Text nicht dargestellt. Ein automatischer Zeilenumbruch, wie bei den zusätzlichen Labels oberhalb und unterhalb erfolgt nicht.
Zur Erstellung eines Overlay-Labels muss ein YAML-Schlüssel mit einem beliebigen alphanumerischen Namen im overlay
-Objekt definiert werden. Die Konfiguration des Overlay-Labels erfolgt
mit den folgenden Schlüssel-Wert-Paaren innerhalb des selbst definierten YAML-Objekts.
Beispiel-Konfiguration Overlay-Labels
# prints the stamp content or a custom content as an additional label above, below or over the stamp
additional_labels:
# additional labels overlaying the stamp (do not effect the width or height of the stamp and can go beyond the stamp's borders)
overlay:
# name of the overlay label
my-organization:
# type of the label content ('custom', 'stamp_content' or empty for no additional label)
type: 'custom'
# Custom content of the label, which applies only for the additional label type 'custom'.
# Linebreaks can be added with \n, variables can be used with <:variable:>,
# the current date and time can be printed with qnow("%d.%m.%Y %H:%M:%S") using the 1989 C standard for date format
# and a bates numbering counter can be added with qbates("name-of-the-bates-numbering-configuration")
custom_content: 'Beispielfirma GmbH'
# left position in points (float, default 0.0, relative to the left border of the stamp)
left: 10.0
# top position in points (float, default 0.0, relative to the top border of the stamp)
top: 8.0
# width in points (float, default: 10.0)
width: 60.0
# height in points (float, default: 10.0)
height: 10.0
# the font size of the additional label (float, default: 6.0)
fontsize: 8.0
# the font of the text (string, e.g. "Symb" for Symbol, default "Helv" for Helvetica, for more information see the online documentation)
text_font: 'hebo'
# color of the text (string, hex color code, e.g. "#ff0000")
text_color: '#cdcdcd'
# the alignment of each text line (string, 'left', 'right' or 'center', default: 'center')
text_align: 'left'
# the border width in points (int, default 0)
border_width: 1
# border color (string, hex color code, e.g. "#ff0000")
border_color: '#000000'
# top padding in points (float, default: 0.0)
padding_top: 2.0
invoice-number:
# type of the label content ('custom', 'stamp_content' or empty for no additional label)
type: 'custom'
# Custom content of the label, which applies only for the additional label type 'custom'.
# Linebreaks can be added with \n, variables can be used with <:variable:>
# and the current date and time can be printed with qnow("%d.%m.%Y %H:%M:%S") using the 1989 C standard for date format
custom_content: 'Rechnungsnummer: <:invoice-number:>'
# left position in points (float, default 0.0, relative to the left border of the stamp)
left: 10.0
# top position in points (float, default 0.0, relative to the top border of the stamp)
top: 16.0
# width in points (float, default: 10.0)
width: 60.0
# height in points (float, default: 10.0)
height: 10.0
# variables which can be used within the custom_content string by using the format <:name-of-the-variable:>
variables:
# name of the variable
invoice-number:
# type of the variable ('filename-regex' or 'stamp-content-regex')
type: 'stamp-content-regex'
# value of the variable (e.g. a regular expression)
# returns the invoice number without the prefix (examplary invoice number: "RE-123123")
value: '(?<=RE-)\d+'
- Datentyp:
String
- Optionen: 'custom', 'stamp_content'
- Beschreibung: Typ des Overlay-Labels. Bei Verwendung des Typs
stamp_content
wird der Inhalt des QR-Codes oder Barcodes überhalb des Stempels abgebildet. Mit dem Typcustom
kann ein benutzerdefinierter Text übercustom_content
definiert werden.
- Datentyp:
String
- Beschreibung: Benutzerdefinierter Inhalt des Overlay-Labels (nur für Typ
custom
). Zeilenumbrüche können mit\n
und Variablen mit<:variable:>
hinzugefügt werden. Das aktuelle Datum sowie die aktuelle Uhrzeit können mitqnow("%d.%m.%Y %H:%M:%S")
unter Verwendung des 1989 C Standards für Datumsformate in das Label eingefügt werden. Falls im Stempelprozess unterbates_numbering
Paginier-/Nummerierungssysteme (Bates-Konfigurationen) aktiviert und in einer entsprechenden Konfigurationsdatei definiert sind, können deren aktuelle Zähler mitqbates("name-der-bates-konfiguration")
in das Label eingefügt werden.
- Datentyp:
Float
- Beschreibung: Relative Positionierung des Labels zum linken Rand des Stempels in Points.
- optional, Standardwert:
0.0
- Datentyp:
Float
- Beschreibung: Relative Positionierung des Labels zum oberen Rand des Stempels in Points.
- optional, Standardwert:
0.0
- Datentyp:
Float
- Beschreibung: Breite des Labels in Points.
- optional, Standardwert:
10.0
- Datentyp:
Float
- Beschreibung: Höhe des Labels in Points.
- optional, Standardwert:
10.0
Hinweis zur Breite und Höhe von Overlay-Labels
Wenn der Textinhalt größer als die Höhe und Breite des Overlay-Labels ausfällt, wird der Text nicht dargestellt. Ein automatischer Zeilenumbruch, wie bei den zusätzlichen Labels oberhalb und unterhalb des Stempels erfolgt nicht.
- Datentyp:
Float
- Beschreibung: Schriftgröße für das Label.
- optional, Standardwert:
6.0
- Datentyp:
String
- Optionen: Siehe Schriftarten.
- Beschreibung: Die Schriftart für das Label.
- optional, Standardwert:
'Helv'
- Datentyp:
String
- Beschreibung: Die Schriftfarbe für das Label als hexadezimaler Farb-Code.
- optional, Standardwert:
'#000000'
(schwarz)
- Datentyp:
String
- Optionen: 'left', 'right', 'center'
- Beschreibung: Die horizontale Textausrichtung des Labels.
- optional, Standardwert:
'center'
- Datentyp:
String
- Beschreibung: Die Hintergrundfarbe für das Label als hexadezimaler Farb-Code (leer für transparenten Hintergrund).
- optional
- Datentyp:
Integer
- Beschreibung: Breite des Rahmens für das Label (0 für keinen Rahmen).
- optional, Standardwert:
0
- Datentyp:
String
- Beschreibung: Die Farbe des Rahmens für das Label als hexadezimaler Farb-Code.
- optional, Standardwert:
'#000000'
(schwarz)
- Datentyp:
Float
- Beschreibung: Innerer Abstand des Textinhalts zum oberen Rand des Labels in Points zur Feinjustierung der Darstellung/Positionierung.
- optional, Standardwert:
0.0
- Datentyp:
Float
- Beschreibung: Innerer Abstand des Textinhalts zum linken Rand des Labels in Points zur Feinjustierung der Darstellung/Positionierung.
- optional, Standardwert:
0.0
Variablen¶
In der Sektion variables
können zusätzliche Variablen definiert werden. Variablen können innerhalb von custom_content
mit <:name-of-the-variable:>
benutzt werden.
- Datentyp:
String
- Optionen: 'filename-regex', 'stamp-content-regex'
- Beschreibung: Typ der Variable. Mit Hilfe von RegEx-Befehlen können Sie beim Typ
filename-regex
Werte aus dem Dateinamen als Variablen definieren und in dencustom_content
Ihrer Labels einfügen. Analog dazu können mit dem Typstamp-content-regex
Werte aus dem Stempelinhalt als Variablen definiert werden.
- Datentyp:
String
- Beschreibung: Wert der Variable (z.B. ein RegEx-Befehl)
Formularfelder / PDF-Widgets¶
Über widgets
können beliebig viele interaktive Eingabefelder, sogenannte PDF-Widgets, innerhalb des Stempels platziert werden. Diese Eingabefelder können digital in einem PDF-Viewer oder automatisiert im weiteren Prozess ausgefüllt werden. Eingabefelder überlagern den restlichen Stempel-Inhalt und werden relativ zum linken oberen Eck des Stempels positioniert.
Aktuell werden Text-Eingabefelder und Checkboxen unterstützt.
Zur Erstellung eines Formularfeldes muss ein YAML-Schlüssel mit einem beliebigen alphanumerischen Namen im widgets
-Objekt definiert werden. Dieser Name kann anschließend bei einer automatisierten Verarbeitung mit dem Prefix q:
referenziert werden (Beispiel: q:name-of-my-checkbox
). So können eingegebene Werte aus den Formularfeldern ausgelesen werden.
Die Konfiguration der Formularfelder erfolgt mit den folgenden Schlüssel-Wert-Paaren innerhalb des selbst definierten YAML-Objekts.
Beispiel-Konfiguration Formularfelder / PDF-Widgets
# add PDF widgets/form fields relative to the left top corner of the stamp
widgets:
# name of the widget (can be referenced using the prefix "q:", e.g. "q:my-widget")
name-worker:
# type of the widget (string, 'text' or 'checkbox')
type: 'text'
# left position in points (float, default 0, relative to the left border of the stamp)
left: 65.0
# top position in points (float, default 0, relative to the top border of the stamp)
top: 96.0
# width in points (float)
width: 94.0
# height in points (float)
height: 11.0
# label (string)
label: 'Name in Druckbuchstaben'
# value (string)
value: 'Max Mustermann'
# name of the widget (can be referenced using the prefix "q:", e.g. "q:my-widget")
special-service-checkbox:
# type of the widget (string, 'text' or 'checkbox')
type: 'checkbox'
# left position in points (float, default 0, relative to the left border of the stamp)
left: 88.35
# top position in points (float, default 0, relative to the top border of the stamp)
top: 57.5
# width in points (float)
width: 9.8
# height in points (float)
height: 9.75
# label (string)
label: 'Spezialleistung durchgeführt'
Allgemein¶
- Datentyp:
String
- Optionen: 'text', 'checkbox'
- Beschreibung: Typ des Eingabefeldes. Aktuell werden Text-Eingabefelder (
text
) und Checkboxen unterstützt (checkbox
). - optional, muss zur Aktivierung definiert sein
- Datentyp:
String
- Beschreibung: Platzhalter-Wert zur Vorausfüllung von Eingabefeldern.
- optional
- Datentyp:
Float
- Beschreibung: Relative Positionierung des Eingabefeldes zum linken Rand des Stempels in Points.
- optional, Standardwert:
0.0
- Datentyp:
Float
- Beschreibung: Relative Positionierung des Eingabefeldes zum oberen Rand des Stempels in Points.
- optional, Standardwert:
0.0
- Datentyp:
Float
- Beschreibung: Breite des Eingabefeldes in Points.
- optional, Standardwerte:
100.0
bei Text-Eingabefeldern und10.0
bei Checkboxen
- Datentyp:
Float
- Beschreibung: Höhe des Eingabefeldes in Points.
- optional, Standardwert:
10.0
- Datentyp:
String
- Beschreibung: Kurzinformation bzw. Beschreibung des Eingabefeldes (wird beim Hovern über das Eingabefeld von PDF-Viewern eingeblendet).
- optional
- Datentyp:
String
- Beschreibung: Die Hintergrundfarbe des Eingabefeldes als hexadezimaler Farb-Code (leer für transparenten Hintergrund).
- optional
- Datentyp:
Integer
- Beschreibung: Breite des Rahmens für das Eingabefeld (0 für keinen Rahmen).
- optional, Standardwert:
0
- Datentyp:
String
- Beschreibung: Die Farbe des Rahmens für das Eingabefeld als hexadezimaler Farb-Code.
- optional
- Datentyp:
Boolean
- Beschreibung: Ein Boolean-Wert, der festlegt, ob das Eingabefeld bearbeitet werden darf oder nicht.
- optional, Standardwert:
False
Text-Eingabefelder¶
Die folgenden Einstellungen gelten nur für Text-Eingabefelder und werden für Checkboxen ignoriert.
- Datentyp:
Integer
- Beschreibung: Maximale Zeichenlänge des Eingabetextes (standardmäßig unbeschränkt).
- optional
- Datentyp:
String
- Optionen: Siehe Schriftarten.
- Beschreibung: Die Schriftart des Eingabetextes und Platzhalters.
- optional, Standardwert:
'Helv'
- Datentyp:
Float
- Beschreibung: Schriftgröße des Eingabetextes und Platzhalters (variabel je nach PDF-Viewer, wenn nicht definiert).
- optional
- Datentyp:
String
- Beschreibung: Die Schriftfarbe für das Label als hexadezimaler Farb-Code.
- optional, Standardwert:
'#000000'
(schwarz)
Auswahl Paginierung (Bates)¶
Unter bates_numbering
können Paginier-/Nummerierungsysteme (Bates-Konfigurationen) für diesen Stempelprozess ausgewählt werden. Die angegebenen Namen der Bates-Konfigurationen müssen in einer entsprechenden, separaten Konfigurationsdatei (standardmäßig config/bates_numbering_config.yml
) definiert sein. Weitere Details finden Sie in der Dokumentation zu Bates-Konfigurationen.
Alle hier ausgewählten Bates-Konfigurationen werden bei jedem erfolgreichen Stempelprozess inkrementiert, auch wenn der Wert/die Nummer des Paginier-/Nummerierungssystems im Stempel nicht ausgegeben wird. Hiervon ausgenommen sind Paginier-/Nummerierungssysteme (Bates-Konfigurationen), die über ihre Konfiguration deaktiviert sind.
Im Folgenden Beispiel werden die zwei Bates-Konfigurationen 'default'
und 'incoming-invoices'
für den Stempelprozess aktiviert.
# configure bates numbering which can be used within the stamp content, the additional labels and the widgets (currently only one number per document is supported)
bates_numbering:
# the name of the bates numbering configurations used in the stamping process defined by this configuration file (string, default: 'default', you can use multiple
# bates numbering configurations which have to be defined in the bates numbering configuration)
configurations:
- 'default'
- 'incoming-invoices'
- Datentyp:
List
- Beschreibung: Namen von Paginier-/Nummerierungssystemen (Bates-Konfigurationen), die in der entsprechenden Konfigurationsdatei (standardmäßig
config/bates_numbering_config.yml
) definiert sein müssen. Die Zähler aller hier aufgeführten Bates-Konfigurationen werden bei jedem erfolgreichen Stempelprozess erhöht, insofern die Bates-Konfiguration nicht in der entsprechenden Konfigurationsdatei deaktiviert ist.
- Datentyp:
String
- Beschreibung: Der Pfad zur Konfigurationsdatei, in der Paginier-/Nummerierungsysteme (Bates-Konfigurationen) definiert sind.
- optional, Standardwert:
'config\config_bates_numbering.yml'
- Datentyp:
String
- Beschreibung: Der Pfad zu einem Ordner, in dem die JSON-Datenbanken der Paginier-/Nummerierungsysteme (Bates-Konfigurationen) gespeichert werden sollen.
- optional, Standardwert:
'var\bates'
Geschützter Bereich¶
Unter protected_area
kann ein geschützter Bereich definiert werden, in dem nie gestempelt wird.
Beispiel-Konfiguration geschützter Bereich
# settings for a protected area
protected_area:
# the position of the protected area ('top_left', 'top_right', 'bottom_left', 'bottom_right')
position:
# the width of the protected area in millimeters
width:
# the height of the protected area in millimeters
height:
- Datentyp:
String
- Option: 'top_left', 'top_right', 'bottom_left', 'bottom_right'
- Beschreibung: Die Position des geschützten Bereichs.
- Datentyp:
Integer
- Beschreibung: Die Breite des geschützten Bereichs in Millimeter.
- Datentyp:
Integer
- Beschreibung: Die Höhe des geschützten Bereichs in Millimeter.
Erweiterte Einstellungen¶
In der Sektion advanced
können fortgeschrittene Einstellungen konfiguriert werden. Diese Einstellungen können weitreichende Auswirkungen haben und sollten nur nach Rücksprache angepasst werden.
# advanced settings: do not touch if you don't know what you're doing
advanced:
# preprocessing: upscaling factor, heavily influences the performance and has also an impact on OCR
preprocessing_upscaling_factor: 6
- Datentyp:
Integer
- Beschreibung: Im Preprocessing von Dokumenten wird das Dokument hochskaliert, um besser Inhalte erkennen zu können, die nicht überstempelt werden sollen.
preprocessing_upscaling_factor
bestimmt den Faktor der Skalierung und beeinflusst stark die Performance sowie die Verarbeitungsdauer von Dokumenten. Der Wert sollte nur angepasst werden, wenn QStamper auf Geräten mit geringer CPU-Performance verwendet wird oder falls Probleme bei der Erkennung von Inhalten auftreten. - Standardwert:
6
- Datentyp:
Integer
- Beschreibung: Höhe des Kernels in Points. Wird zur Erkennung von freien Flächen verwendet.
- Datentyp:
Integer
- Beschreibung: Breite des Kernels in Points. Wird zur Erkennung von freien Flächen verwendet.
Schriftarten¶
Es können z.B. für zusätzliche Labels oder Formularfelder / PDF-Widgets verschiedene Schriftarten verwendet werden. Diese eingebetten Schriftarten müssen von jedem PDF-Viewer unterstützt werden.
Die folgende Tabelle gibt einen Überblick über die möglichen Schriftarten, deren Bezeichner und Abkürzungen, die zur Bestimmung der Schriftart in der Konifugration verwendet werden können.
Method | Description |
---|---|
courier |
Courier |
courier-oblique |
Courier-Oblique |
courier-bold |
Courier-Bold |
courier-boldoblique |
Courier-BoldOblique |
helvetica |
Helvetica |
helvetica-oblique |
Helvetica-Oblique |
helvetica-bold |
Helvetica-Bold |
helvetica-boldoblique |
Helvetica-BoldOblique |
times-roman |
Times-Roman |
times-italic |
Times-Italic |
times-bold |
Times-Bold |
times-bolditalic |
Times-BoldItalic |
symbol |
Symbol |
zapfdingbats |
ZapfDingbats |
helv |
Helvetica |
heit |
Helvetica-Oblique |
hebo |
Helvetica-Bold |
hebi |
Helvetica-BoldOblique |
cour |
Courier |
coit |
Courier-Oblique |
cobo |
Courier-Bold |
cobi |
Courier-BoldOblique |
tiro |
Times-Roman |
tibo |
Times-Bold |
tiit |
Times-Italic |
tibi |
Times-BoldItalic |
symb |
Symbol |
zadb |
ZapfDingbats |