BLOCKPDF
DOKUMENTATION
VERSION
2024.04.04.1908
BLOCKPDF.DE
COPYRIGHT ©2024 TADELSUCHT UG (HAFTUNGSBESCHRÄNKT)
1 Einleitung 7
1.1 Funktionsübersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Installation .................................. 9
1.2.1 Windows ............................... 9
1.2.1.1 Installationsprogramm . . . . . . . . . . . . . . . . . 9
1.2.1.2 ZIP-Datei . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.2 MacOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.2.1 .app-Applikation . . . . . . . . . . . . . . . . . . . . 11
1.2.2.2 ZIP-Datei . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.3 Linux ................................. 12
1.2.3.1 ZIP-Datei . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3 Lizenz ..................................... 13
1.3.1 Aktivierung der Lizenz in der Software . . . . . . . . . . . . . 13
1.3.2 Automatisierte Lizenzverteilung . . . . . . . . . . . . . . . . . 13
2 Technische Informationen 14
2.1 Blöcke ..................................... 14
2.2 Datenquellen ................................. 15
2.2.1 Konstanter Text . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.2 Datum und Uhrzeit . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.3 Excel-Tabellen / CSV-Tabellen . . . . . . . . . . . . . . . . . . 15
2.2.4 JSON ................................. 16
2.2.5 Microsoft Access . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2.6 Microsoft SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2.7 MySQL / MariaDB . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2.8 Eingebette Textdatei . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.9 XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3 Workflows ................................... 20
2.3.1 Manipulationsknoten . . . . . . . . . . . . . . . . . . . . . . . 21
2.3.1.1 Zusammenführen . . . . . . . . . . . . . . . . . . . . 21
2.3.1.2 Wert ersetzten . . . . . . . . . . . . . . . . . . . . . . 21
2.3.2 Ausgangsknoten . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.4 Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.4.1 Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.4.2 Ganzzahl ............................... 22
2.4.3 Gleitkommazahl . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.4.4 Boolescher Wert (1 / 0, Aktiviert / Deaktiviert, ...) . . . . . . . 22
2.4.4.1 Interpretation als true . . . . . . . . . . . . . . . . . 22
2.4.4.2 Interpretation als false . . . . . . . . . . . . . . . . 23
2.4.5 Farbe (ARGB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1
2.4.6 Dateipfad oder Binärdatei (Base64) . . . . . . . . . . . . . . . 24
2.4.7 Seitenformat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.4.8 Schriftstärke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.4.9 Horizontale Ausrichtung . . . . . . . . . . . . . . . . . . . . . . 25
2.4.10 Vertikale Ausrichtung . . . . . . . . . . . . . . . . . . . . . . . 25
2.4.11 Bildskalierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.4.12 Inline-Ausrichtung . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.4.13 Textausrichtung . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.4.14 Richtung des Textes . . . . . . . . . . . . . . . . . . . . . . . . 25
3 Schnellstart und Beispiele 26
3.1 Layout mit Zeilen und Spalten . . . . . . . . . . . . . . . . . . . . . . . 26
3.2 Strukturierung von komplexen Dokumenten . . . . . . . . . . . . . . 26
3.3 Beispieldokument: Rechnung . . . . . . . . . . . . . . . . . . . . . . . 26
4 Benutzeroberfläche im Detail (UI) 27
4.1 Startseite ................................... 27
4.1.1 Willkommen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.1.2 Vorlagen ............................... 30
4.1.3 Lizenz / Update . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.1.4 Einstellungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.1.4.1 Benutzeroberfläche . . . . . . . . . . . . . . . . . . . 34
4.1.4.2 Dokument . . . . . . . . . . . . . . . . . . . . . . . . 35
4.1.4.3 Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.1.4.4 System . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.1.4.5 Automatische Dateisicherungen . . . . . . . . . . . 35
4.1.5 Support-Fenster . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.1.6 Dokumentations-Fenster . . . . . . . . . . . . . . . . . . . . . 37
4.2 Dokument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.2.1 Funktionsleiste . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.2.2 Werkzeugkasten . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.2.3 Dokumenten-Blöcke (Block-Hierarchie) . . . . . . . . . . . . 38
4.2.4 Block-Eigenschaften . . . . . . . . . . . . . . . . . . . . . . . . 39
4.2.5 Vorschau des Dokuments . . . . . . . . . . . . . . . . . . . . . 41
4.2.6 Block-Kontextmenü (Rechtsklick) . . . . . . . . . . . . . . . . 41
4.3 Dateinamen ................................. 43
4.3.1 Dateinamen-Werkezugkasten . . . . . . . . . . . . . . . . . . 43
4.3.1.1 Datenquellen-Zeilennummer . . . . . . . . . . . . . 43
4.3.1.2 Konstanter Text . . . . . . . . . . . . . . . . . . . . . 43
4.3.1.3 Datum / Uhrzeit . . . . . . . . . . . . . . . . . . . . . 43
2
4.3.1.4 Dynamische Daten . . . . . . . . . . . . . . . . . . . 43
4.3.2 Bestandteile des Dateinamens . . . . . . . . . . . . . . . . . . 44
4.3.3 Auflistung der Dateinamen . . . . . . . . . . . . . . . . . . . . 44
4.3.3.1 Automatische Aktualisierung . . . . . . . . . . . . . 44
4.3.3.2 Auf Fehler prüfen . . . . . . . . . . . . . . . . . . . . 44
4.4 Datenübersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.4.1 Blöcke mit dynamischen Daten . . . . . . . . . . . . . . . . . 45
4.4.2 Workflows für dynamische Daten . . . . . . . . . . . . . . . . 45
4.5 Einfacher Workflow-Editor . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.5.1 Datenquelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.5.2 Datenquellen-Konfiguration / Optionen . . . . . . . . . . . . 47
4.5.3 Daten ................................. 47
4.6 Erweiterter Workflow-Editor . . . . . . . . . . . . . . . . . . . . . . . . 47
4.6.1 Werkzeugkasten . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.6.2 Workflow ............................... 48
4.6.3 Optionen ............................... 48
4.6.4 Eigenschaften des Elements . . . . . . . . . . . . . . . . . . . 49
4.7 Fertigstellung ................................. 50
4.7.1 Dokumentenerstellung . . . . . . . . . . . . . . . . . . . . . . 50
4.7.2 Vorschau ............................... 51
4.7.3 Fertiggestellte Dokumente . . . . . . . . . . . . . . . . . . . . 51
5 Blöcke 52
5.1 Relative Blöcke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.1.1 Visuell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.1.1.1 Text-Fragment-Container / Text-Fragment . . . . . 53
5.1.1.2 Hintergrund . . . . . . . . . . . . . . . . . . . . . . . 54
5.1.1.3 Rahmen . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.1.1.4 Bild . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.1.1.5 Linie horizontal . . . . . . . . . . . . . . . . . . . . . 56
5.1.1.6 Linie vertikal . . . . . . . . . . . . . . . . . . . . . . . 56
5.1.1.7 Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.1.1.8 Platzhalter . . . . . . . . . . . . . . . . . . . . . . . . 58
5.1.1.9 Aktuelle Seitenzahl . . . . . . . . . . . . . . . . . . . 58
5.1.1.10 Gesamtseitenzahl . . . . . . . . . . . . . . . . . . . . 58
5.1.2 Positionierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.1.2.1 Ausrichtung . . . . . . . . . . . . . . . . . . . . . . . 59
5.1.2.2 Seitenverhältnis . . . . . . . . . . . . . . . . . . . . . 59
5.1.2.3 Horizontal und Vertikal ausdehnen . . . . . . . . . 59
5.1.2.4 Horizontal ausdehnen . . . . . . . . . . . . . . . . . 60
3
5.1.2.5 Vertikal ausdehnen . . . . . . . . . . . . . . . . . . . 60
5.1.2.6 Horizontal drehen . . . . . . . . . . . . . . . . . . . 60
5.1.2.7 Umdrehen . . . . . . . . . . . . . . . . . . . . . . . . 60
5.1.2.8 Vertikal drehen . . . . . . . . . . . . . . . . . . . . . 60
5.1.2.9 Höhe . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.1.2.10 Min/Max Höhe . . . . . . . . . . . . . . . . . . . . . 61
5.1.2.11 Min/Max Breite . . . . . . . . . . . . . . . . . . . . . 61
5.1.2.12 Innenabstand . . . . . . . . . . . . . . . . . . . . . . 61
5.1.2.13 Drehen nach links . . . . . . . . . . . . . . . . . . . . 62
5.1.2.14 Drehen nach rechts . . . . . . . . . . . . . . . . . . . 62
5.1.2.15 Skalieren . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.1.2.16 Skalieren nach Bedarf . . . . . . . . . . . . . . . . . 62
5.1.2.17 Schrumpfen . . . . . . . . . . . . . . . . . . . . . . . 62
5.1.2.18 Horizontal schrumpfen . . . . . . . . . . . . . . . . 63
5.1.2.19 Vertikal schrumpfen . . . . . . . . . . . . . . . . . . 63
5.1.2.20 Verschiebung . . . . . . . . . . . . . . . . . . . . . . 63
5.1.2.21 Uneingeschränkt . . . . . . . . . . . . . . . . . . . . 63
5.1.2.22 Breite . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.1.3 Inhaltsfluss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.1.3.1 Platz sichern . . . . . . . . . . . . . . . . . . . . . . . 65
5.1.3.2 Seitenumbruch . . . . . . . . . . . . . . . . . . . . . 65
5.1.3.3 Vollständig anzeigen . . . . . . . . . . . . . . . . . . 65
5.1.3.4 Zeigen wenn . . . . . . . . . . . . . . . . . . . . . . . 65
5.1.3.5 Einmal anzeigen . . . . . . . . . . . . . . . . . . . . 66
5.1.3.6 Einmal überspringen . . . . . . . . . . . . . . . . . . 66
5.1.3.7 Seitenwechsel stoppen . . . . . . . . . . . . . . . . . 66
5.1.4 Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.1.4.1 Seiten-Blöcke . . . . . . . . . . . . . . . . . . . . . . 67
5.1.4.2 Zeilen-Blöcke . . . . . . . . . . . . . . . . . . . . . . 67
5.1.4.3 Spalten-Blöcke . . . . . . . . . . . . . . . . . . . . . 68
5.1.4.4 Inline . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
5.1.4.5 Schichten . . . . . . . . . . . . . . . . . . . . . . . . . 69
5.1.5 Weitere Blöcke . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.1.5.1 Inhaltsrichtung von links nach rechts . . . . . . . . 71
5.1.5.2 Inhaltsrichtung von rechts nach links . . . . . . . . 71
5.1.5.3 Debug-Bereich . . . . . . . . . . . . . . . . . . . . . 71
5.1.5.4 Standard-Textstil . . . . . . . . . . . . . . . . . . . . 71
5.1.5.5 Hyperlink . . . . . . . . . . . . . . . . . . . . . . . . . 73
5.1.5.6 Abschnitt . . . . . . . . . . . . . . . . . . . . . . . . . 73
4
5.1.5.7 Abschnitts-Link . . . . . . . . . . . . . . . . . . . . . 73
5.2 Absolute Blöcke ............................... 75
5.2.1 Bild (Absolute Positionierung) . . . . . . . . . . . . . . . . . . 75
5.2.2 Formularfelder . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.2.2.1 Optionsschaltflächen . . . . . . . . . . . . . . . . . . 76
5.2.2.2 Kontrollkästchen . . . . . . . . . . . . . . . . . . . . 77
5.2.2.3 Combobox . . . . . . . . . . . . . . . . . . . . . . . . 77
5.2.2.4 Datum und Uhrzeit . . . . . . . . . . . . . . . . . . . 78
5.2.2.5 Listenfeld . . . . . . . . . . . . . . . . . . . . . . . . . 78
5.2.2.6 Unterschrift . . . . . . . . . . . . . . . . . . . . . . . 79
5.2.2.7 Textfeld . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.2.3 Dateianhang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.3 Barcode-Feld ................................. 82
5.3.1 DataMatrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.3.2 Pdf417 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.3.3 QR-Code ............................... 83
5.3.4 Codabar ............................... 84
5.3.5 Code11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.3.6 Code128, Code128A, Code128B, Code129C, GS1 Code128 . . 85
5.3.7 Code39, Code93 . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.3.8 Code UPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.3.9 EAN-13, EAN-8 . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.4 Sonstige Blöcke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.4.1 Kommentar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.4.2 Iterator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.4.3 Wiederholen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6 Kommandozeilen (CLI) 90
6.1 Parameterliste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
6.2 Ausgaben der Konsolenanwendung . . . . . . . . . . . . . . . . . . . . 91
7 Dokumente, Vorlagen und Block-Strukturen 93
7.1 BlockPDF-Dokument (.BlockPDF) . . . . . . . . . . . . . . . . . . . . 93
7.1.1 Beispiel .BlockPDF-Datei . . . . . . . . . . . . . . . . . . . . . 93
7.2 Vorlagedateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
7.2.1 Dokumentenvorlage (.BlockPDF.zip) . . . . . . . . . . . . . . 96
7.2.2 Vorgefertigte Block-Strukturen (.BlockPart) . . . . . . . . . . . 96
7.2.3 Bereitstellung von Vorlagen und Block-Strukturen . . . . . . 97
8 Lokale Konfigurationsdatei 99
5
8.1 Template-Bereich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
8.2 UI-Bereich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
8.3 Core-Bereich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
8.4 AutoSave-Bereich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
9 Tipps und Tricks 104
9.1 Import von normalen PDF-Dateien als Vorlage . . . . . . . . . . . . . 104
9.2 Relative Pfade und Systemvariablen in Dokumente und Dokumenten-
vorlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
9.3 Relative Zeilen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
9.4 Wasserzeichen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
9.5 Connection-String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
9.6 Gleichzeitiges ausdrucken Dokumente . . . . . . . . . . . . . . . . . . 106
9.7 Datumsformatierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
10 Häufig gestellte Fragen (FAQ) 109
10.1 Lizenz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
10.1.1 Von wie vielen Benutzern darf eine Lizenz gleichzeitig ver-
wendet werden? . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
10.1.2 Auf wie vielen Computern kann eine Lizenz genutzt werden? 109
10.1.3 Ab wann gilt eine Lizenz und wie lange? . . . . . . . . . . . . 110
11 Referenzen 111
6
1
Einleitung
Willkommen bei BlockPDF, Ihrer Lösung für die einfache und automatische Er-
stellung von individuellen PDF-Dokumenten, ganz ohne Programmierkenntnisse.
BlockPDF ist besonders geeignet für Nutzer, die für ihre Geschäftsprozesse maßgeschnei-
derte Dokumente in größerem Umfang benötigen. Mit unserer Anwendung kön-
nen Sie Daten aus verschiedenen Quellen wie Excel-Dateien oder SQL-Datenbanken
in Ihre PDF-Dokumente integrieren. Dies ermöglicht es Ihnen, beispielsweise Rech-
nungen zu erstellen, die für jeden Kunden spezifische Informationen wie Rech-
nungsnummer, Artikel und mehr direkt aus Ihren Datenbanken beziehen. Block-
PDF bietet eine flexible Gestaltung Ihrer Dokumente durch modulare Blöcke, darunter
Texte, Bilder, Hintergrundfarben, Formularfelder, Signaturen, Barcodes und QR-
Codes. Jedes Element lässt sich individuell anpassen, sodass Sie beispielsweise
die Farbe von Texten ändern oder bei bestimmten Bedingungen zusätzliche Inhalte
einblenden können.
1.1 Funktionsübersicht
BlockPDF bietet eine Vielzahl von Funktionen für das automatisierte Erstellen von
individuellen, datenabhängigen PDF-Dokumenten. Hier sind die Hauptfunktio-
nen:
1. Benutzerfreundliches, automatisiertes Erstellen von individuellen, datenab-
7
hängigen PDF-Dokumenten ohne die Notwendigkeit von Programmierken-
ntnissen (No-Code).
2. Erstellung verschiedener Arten von PDF-Dokumenten, einschließlich For-
mularen, Rechnungen, Angeboten, Verträgen und Zertifikaten, sowie allen
anderen Dokumenten, die für Geschäftsprozesse in größerer Anzahl benötigt
werden.
3. Datenintegration aus verschiedenen Quellen, wie Excel-, CSV-, XML-, JSON-
Dateien und SQL Server-, MS Access-, MySQL/MariaDB-Datenbanken, zur
Befüllung der PDF-Dokumente.
4. Verwendung von modularen Elementen (Blöcken) zum Aufbau der PDF-Dokumente,
die aufeinander reagieren und aufeinander aufbauen, um den Inhalt und das
Layout der Dokumente zu definieren.
5. Breite Palette von Blöcken für verschiedene Zwecke, darunter einzelne Seiten,
Texte, Bilder, Hintergrundfarben, Formularfelder, Signaturen, Barcodes und
QR-Codes, jeweils mit konfigurierbaren Eigenschaften wie Schriftgröße, Farbe
und Position.
6. Dynamische Anpassung und Befüllung der Dokumente durch Zugriff auf Daten-
quellen, sodass Inhalte wie Rechnungsnummern, Rechnungsdaten, Kunde-
nadressen, bestellte Artikel und Preise automatisch aus den Datenquellen
bezogen und in den PDF-Dokumenten verwendet werden.
7. Anpassung von Eigenschaften eines Blocks basierend auf Datenquellen, was
bedeutet, dass nicht nur Text, sondern auch jede Eigenschaft eines Blocks dy-
namisch angepasst werden kann, beispielsweise durch Änderung der Farbe
bestimmter Textteile oder das Einblenden zusätzlicher Texte abhängig von
spezifischen Bedingungen.
8. Dynamische Benennung der PDF-Dateien basierend auf den Daten der Daten-
quellen, was eine individuelle und kontextbezogene Namensgebung für jedes
erstellte PDF-Dokument ermöglicht.
8
1.2 Installation
Die Anwendung wurde von Anfang an als plattformübergreifende Lösung entwor-
fen, mit dem Ziel, eine einheitliche Basis für alle unterstützten Plattformen zu schaf-
fen. Dieser Ansatz gewährleistet, dass die Anwendung auf allen Plattformen in
Bezug auf Aussehen und Funktionsweise weitgehend identisch ist, abgesehen von
einigen plattformspezifischen Anpassungen.
Die größten Unterschiede zwischen den Plattformen zeigen sich in der Installa-
tion der Anwendung. Im Folgenden finden Sie Anleitungen zur Installation und
Ausführung der Software auf verschiedenen Betriebssystemen sowie Hinweise, auf
welche Aspekte dabei besonders zu achten sind.
1.2.1 Windows
Obwohl das Programm grundlegend Plattformübergreifend entwickelt wurde, ist
die Windows-Plattform (Windows 10 sowie Windows 11) die am besten getestete
Version, da auch auf dieser die Anwendung hauptsächlich entwickelt wird.
1.2.1.1 Installationsprogramm Das Installationsprogramm gibt es in zwei Vari-
anten. Die erste Variante ist „BlockPDF-Setup.exe, die versucht Admin-Rechte
für die Installation zu bekommen, um die Anwendung für alle Benutzer des Com-
puters unter dem Pfad C:\Program Files\BlockPDF bereitzustellen. Die zweite
Variante ist „BlockPDF-User-Setup.exe, die ohne Admin-Rechte auskommt und
in den Benutzerordner (C:\Users\%USERNAME%\AppData\Roaming\BlockPDF) in-
stalliert wird.
Folgend notwendigen Schritte zur Installation als Screenshots:
9
Das Installationsprogramm kann auch über die Konsole verwendet werden. Mit
dem Parameter "/S" kann eine Installation unbeaufsichtigt durchgeführt werden.
Wenn der Installationspfad festgelegt werden soll, kann dies über den Parameter
/D=C:\NewInstallDir\\ durchgeführt werden.
Beispiel 1: BlockPDF-Setup.exe /S
10
Beispiel 2: BlockPDF-User-Setup.exe /S /D=C:\\NewInstallDir\\
1.2.1.2 ZIP-Datei Die Anwendung im ZIP-Dateiformat ohne Installationspro-
gramm kann schlicht irgendwo entpackt werden. Gestartet wird die Anwendung
über die „BlockPDFUI.exe.
1.2.2 MacOS
Die Anwendung wird bei der Entwicklung auf einem älteren MacBook Pro (Intel)
mit der MacOS-Version Monterey sowie einem MacBook Air (M2) mit der aktuell-
sten verfügbaren MacOS-Version getestet.
Es gibt hauptsächlich zwei Wege, BlockPDF auf einem MacOS-System zu instal-
lieren: die .app-Version und die ZIP-Datei-Version.
1.2.2.1 .app-Applikation Die .app-Version von BlockPDF ist die einfachste Meth-
ode, die Anwendung auf MacOS zu installieren und zu starten. Sie müssen die
.app-Datei aus dem Internet herunterladen und in Ihren "Programme"-Ordner ver-
schieben. Aufgrund von MacOS-Sicherheitseinstellungen ist es notwendig, die An-
wendung beim ersten Start speziell zu öffnen:
1. Navigieren Sie im Finder zum "Programme"-Ordner und suchen Sie die Block-
PDF.app.
2. Klicken Sie mit der rechten Maustaste (oder Ctrl-Klick) auf die BlockPDF.app
und wählen Sie "Öffnen" aus dem Kontextmenü.
3. Ein Dialogfeld erscheint, das Sie darüber informiert, dass die Anwendung aus
dem Internet heruntergeladen wurde. Klicken Sie auf "Öffnen", um die An-
wendung zu starten.
Diese Vorgehensweise ist erforderlich, um die Anwendung bei ihrem ersten Start zu
autorisieren. Nachdem dies erfolgt ist, kann BlockPDF wie jede andere Anwendung
gestartet werden.
1.2.2.2 ZIP-Datei Alternativ kann BlockPDF auch als ZIP-Datei heruntergeladen
und auf dem MacOS-System entpackt werden. Dabei ist zu beachten, dass das die
MacOS Sandbox (Gatekeeper) möglicherweise die Anwendung unsichtbar in einem
anderen Ordner ausführt, weshalb der Update-Mechanismus nicht funktioniert.
Dies kann unterbunden werden, in dem die Anwendung im „Finder einmal ver-
schoben wird (siehe [2]). Ebenso kann es sein, dass in dem MacOS-Systemeinstellungen
BlockPDF erst zur Ausführung freigeschaltet werden muss. Die entpackte Anwen-
dung kann dann direkt über die Datei „BlockPDFUI” gestartet werden.
11
1.2.3 Linux
Die Anwendung wird bei der Entwicklung nur auf Ubuntu-Derivate getestet, we-
shalb ein auf Ubuntu basierendes Linux-System empfohlen wird. Für Linux-Benutzer
wird BlockPDF als ZIP-Datei bereitgestellt.
1.2.3.1 ZIP-Datei
1. Laden Sie die ZIP-Datei für Ihren Prozessortypen von der BlockPDF-Website
herunter.
2. Entpacken Sie die ZIP-Datei in ein Verzeichnis Ihrer Wahl.
3. Öffnen Sie ein Terminalfenster und navigieren Sie zu dem Verzeichnis, in das
Sie die Anwendung entpackt haben.
4. Machen Sie die Datei „BlockPDFUI”, sofern sie es nicht bereits ist, ausführbar
mit dem Befehl: chmod +x BlockPDFUI.
5. Starten Sie die Anwendung durch Eingabe von ./BlockPDFUI im Terminal.
Es wird empfohlen, die Anwendung in ein Verzeichnis zu entpacken, auf das der
Nutzer Schreibzugriff hat, um sicherzustellen, dass alle Funktionen der Anwen-
dung korrekt arbeiten. Insbesondere das automatische Update-Feature benötigt
Schreibzugriff auf das Installationsverzeichnis.
12
1.3 Lizenz
Lizenzen sind als Lizenzschlüssel über die Webseite https://BlockPDF.de/ er-
hältlich. Dort werden unterschiedliche Lizenzpakete angeboten, darunter Einzel-
benutzerlizenzen sowie Mehrbenutzer- bzw. Terminal-Server-Lizenzen, jeweils mit
verschiedenen Laufzeiten.
Für folgende und weitere Fragen bzgl. der Lizenz, schauen Sie bitte einmal in die
FAQ im Abschnitt 10.1:
Von wie vielen Benutzern darf eine Lizenz gleichzeitig verwendet werden?
(Siehe 10.1.1)
Auf wie vielen Computern kann eine Lizenz genutzt werden? (Siehe 10.1.2)
Ab wann gilt eine Lizenz und wie lange? (Siehe 10.1.3)
1.3.1 Aktivierung der Lizenz in der Software
Nachdem Sie einen Lizenzcode auf https://BlockPDF.de/ erworben haben, lässt
sich die Lizenz in der Software aktivieren. Die notwendigen Schritte hierfür sind
im Abschnitt 4.1.3 beschrieben. Während des Aktivierungsprozesses wird im Ar-
beitsverzeichnis der Anwendung eine Datei namens LicenseConfirmation erstellt.
Diese Datei beinhaltet den verschlüsselten Lizenzcode, das Ablaufdatum und eine
Geräte-Identifikationsnummer. Für Einzelbenutzerlizenzen ist diese Datei auss-
chließlich für den aktivierten Computer bestimmt und kann nicht auf andere Geräte
übertragen werden. Im Falle von Mehrbenutzer- bzw. Terminalserverlizenzen ist
die Datei nicht an einen spezifischen Computer gebunden und kann zur Lizen-
zierung weiterer Computer einfach in das Arbeitsverzeichnis eines anderen Sys-
tems kopiert werden. Das Arbeitsverzeichnis variiert je nach Betriebssystem und
Installation und lässt sich in den Einstellungen von BlockPDF einsehen. Unter Win-
dows befindet es sich typischerweise im Pfad %AppData%\BlockPDF, sofern die In-
stallation mittels der Setup.exe erfolgte.
1.3.2 Automatisierte Lizenzverteilung
Für die automatisierte Verteilung einer Lizenz ist eine Mehrbenutzer- bzw. Ter-
minalserverlizenz erforderlich. Einzelbenutzerlizenzen sind hierfür nicht geeignet.
Zunächst muss der Lizenzschlüssel auf einem Rechner eingegeben werden, um die
Erstellung einer LicenseConfirmation-Datei im Arbeitsverzeichnis zu veranlassen.
Diese Datei kann anschließend kopiert und in das Arbeitsverzeichnis aller zu lizen-
zierenden Computer eingefügt werden.
13
2
Technische Informationen
Im Folgenden wird eine detaillierte Übersicht über die technischen Aspekte der An-
wendung präsentiert. Diese Einleitung zielt darauf ab, ein tieferes Verständnis für
die Funktionsweise, die Konfiguration und die Integration der verschiedenen Kom-
ponenten innerhalb der Anwendung zu vermitteln.
2.1 Blöcke
Blöcke sind zentrale Elemente in BlockPDF, die es Nutzern ermöglichen, individu-
elle, datenabhängige PDF-Dokumente auf eine benutzerfreundliche und automa-
tisierte Weise zu erstellen, ohne dass Programmierkenntnisse notwendig sind. Diese
Blöcke repräsentieren verschiedene Dokumentelemente wie Seiten, Texte, Bilder,
Hintergrundfarben, Formularfelder, Signaturen, Barcodes, und QR-Codes. Sie kom-
men mit einer Reihe von anpassbaren Eigenschaften wie Schriftgröße, Farbe, und
Position, die es den Nutzern erlauben, ihre Dokumente nach Bedarf zu gestalten
und zu personalisieren.
Die Strukturierung der Dokumentenblöcke folgt einem hierarchischen Aufbau, der
vom Dokument ausgeht und sich nach unten fortsetzt. Innerhalb dieser Hierarchie
werden Blöcke auf derselben Ebene von oben nach unten verarbeitet. Dies ist ins-
besondere für die Platzierung von Elementen wie Wasserzeichen relevant, die, um
über allen anderen Inhalten dargestellt zu werden, am Ende der Blockliste stehen
14
sollten.
Ein weiterer wichtiger Aspekt ist der Unterschied zwischen relativen und absoluten
Blöcken. Relative Blöcke passen ihre Position und Größe in Bezug auf andere Ele-
mente im Dokument dynamisch an. Dies ist hilfreich für Inhalte, die flexibel inner-
halb des Dokumentenlayouts fließen sollen. Absolute Blöcke hingegen haben eine
feste Position und Größe, unabhängig von den übrigen Dokumentenelementen,
was für statische Inhalte, die an einem spezifischen Punkt im Dokument fixiert wer-
den sollen, von Vorteil ist.
Durch den dynamischen Zugriff auf Daten aus Quellen wie Excel-, CSV-, XML-,
JSON-Dateien oder verschiedenen Datenbanktypen können die Blöcke mit spez-
ifischen Informationen gefüllt und angepasst werden. So lässt sich etwa ein Rech-
nungsdokument erstellen, das automatisch kundenindividuelle Daten wie Rech-
nungsnummer, Rechnungsdatum, Kundenadresse und Preise aus einer Datenquelle
bezieht. Darüber hinaus ermöglicht die Flexibilität der Blöcke, jede ihrer Eigen-
schaften von Text bis hin zur Farbgebung basierend auf den Datenquellen anzu-
passen, was beispielsweise die automatische Farbänderung eines Textelements unter
bestimmten Bedingungen ermöglicht. Diese Fähigkeiten machen die Blöcke zu
einem mächtigen Werkzeug für die Erstellung von maßgeschneiderten, dynamis-
chen PDF-Dokumenten, die effektiv den Anforderungen moderner Geschäftsprozesse
gerecht werden.
2.2 Datenquellen
Zu Erstellung von individuellen PDF-Dokumenten benötigt es Daten, die dynamisch
für jedes PDF geladen werden können. BlockPDf unterstützt dafür verschiedene
Datenquellen sowie Dateiformate um Daten für die PDF-Dateien beziehen zu kön-
nen. Im folgenden werden auf diese Datenquellen eingegangen.
2.2.1 Konstanter Text
Ermöglicht es einen konstanten Text festzulegen der n-Mal wiederholt wird. Dabei
erhält man eine Tabelle mit einer einzigen Spalte in dem der Text schlicht in jeder
Zeile wiederholt wird.
2.2.2 Datum und Uhrzeit
Datums- und Zeitangaben in einem selbst definierten Format (basierend auf dem
aktuellen Datum, wenn das Programm verwendet wird).
2.2.3 Excel-Tabellen / CSV-Tabellen
Folgende Tabellenkalkulations-Datei-Formate werden vom Programm unterstützt[4]:
15
File Type Container Format File Format Excel Version(s)
.xlsx ZIP, CFB+ZIP OpenXml 2007 and newer
.xlsb ZIP, CFB OpenXml 2007 and newer
.xls CFB BIFF8 97, 2000, XP, 2003
98, 2001, v.X, 2004 (Mac)
.xls CFB BIFF5 5.0, 95
.xls - BIFF4 4.0
.xls - BIFF3 3.0
.xls - BIFF2 2.0, 2.2
.csv - CSV (All)
Ein gültige Tabelle könnte beispielsweise wie folgt aussehen:
Vorname Nachname Adresse ...
Mueller Bernd Weit-Weit-Weg ...
Mustermann Max Mustermann Straße ...
Musterfrau Marie Mustermann Straße ...
... ... ... ...
Weiterhin gibt es als eigene Datenquelle das Einlesen von Tabellenkalkulations-
datei, bei dem das Verhalten von Spalten und Zeilen vertauscht ist, damit bspw.
folgende Tabelle auch genutzt werden kann:
First name Bernd Max Marie ...
Last name Mueller Mustermann Musterfrau ...
Adress Weit-Weit-Weg Mustermann Straße Mustermann Straße ...
... ... ... ... ...
Es ist erwähnenswert, dass die Verwendung von Funktionen in den Excel-Dateien
unterstützt wird und diese eine nützliche Möglichkeit bietet, um Daten zu verar-
beiten und vorzubereiten, bevor sie in das PDF-Dokument eingefügt werden.
2.2.4 JSON
Um die Daten in einer JSON-Datei nutzen zu können, muss ein bestimmtes Format
der Daten gegeben sein. Folgende JSON-Struktur wäre im kompletten Zustand ein-
lesbar in BlockPDF:
16
1{
2"root": {
3"row": [
4{
5"Last_name":"Mueller",
6"First_name":"Bernd",
7"Adress":"Weit-Weit-Weg",
8"Checkbox_Value":"Yes",
9"Radio_button_value":"2",
10 "Combobox_Value":"Kuchen"
11 },
12 {
13 "Last_name":"Mustermann",
14 "First_name":"Max",
15 "Adress":"Mustermann Stra{\ss}e",
16 "Checkbox_Value":"No",
17 "Radio_button_value":"1",
18 "Combobox_Value":"Test"
19 },
20 {
21 "Last_name":"Musterfrau",
22 "First_name":"Marie",
23 "Adress":"Mustermann Stra{\ss}e",
24 "Checkbox_Value":"Yes",
25 "Radio_button_value":"3",
26 "Combobox_Value":"Keks"
27 },
28 {
29 "Last_name":"Klein",
30 "First_name":"Berthold",
31 "Adress":"Kleiner Weg",
32 "Checkbox_Value":"",
33 "Radio_button_value":"",
34 "Combobox_Value":""
35 }
36 ]
37 }
38 }
2.2.5 Microsoft Access
Für die Nutzung von Daten von einem „Microsoft Access”-Server stehen mehrere
Varianten zur Datenbeschaffung zur Verfügung.
Zum einen kann die Option gewählt werden, bei der man schlicht eine Datenbank-
17
Datei (.accdb oder .mdb) auswählt und dann für die jeweilige Datenbank automa-
tisch alle verfügbaren Tabellen angezeigt werden. Von diesen Tabellen kann dann
eine ausgewählt werden, die als Datenquelle fungiert.
Die zweite Option ist die Möglichkeit, neben der Datei, eine SQL-Abfrage einzugeben,
die einem die gewünschten Daten ausgibt. Diese Option erlaubt damit die volle
Funktionalität von SQL auf der Microsoft Access Datenbank für die Datenquelle
innerhalb von BlockPDF zu nutzen.
In manchen Fällen kann es notwendig sein fehlende Abhängigkeiten, wie das „Mi-
crosoft Access Database Engine Redistributable herunterzuladen und zu instal-
lieren.
2.2.6 Microsoft SQL
Für die Nutzung von Daten von einem Microsoft SQL Server stehen mehrere Vari-
anten zur Datenbeschaffung zur Verfügung.
Zum einen kann die Option gewählt werden, bei der man schlicht einen „Connection-
String” eingibt und dann für die jeweilige Datenbank automatisch alle verfügbaren
Tabellen angezeigt werden. Von diesen Tabellen kann dann eine ausgewählt wer-
den, die als Datenquelle fungiert. r gültige „Connection-String”-Beispiele schauen
Sie sich bitte Abschnitt 9.5 an.
Die zweite Option ist die Möglichkeit, neben dem „Connection-String”, schlicht
eine SQL-Abfrage einzugeben, die einem die gewünschten Daten ausgibt. Diese
Option erlaubt damit die volle Funktionalität von T-SQL auf dem Microsoft SQL
Server für die Datenquelle innerhalb von BlockPDF zu nutzen.
2.2.7 MySQL / MariaDB
Die Einbindung von Daten aus einem MySQL oder MariaDB Server in BlockPDF
kann auf mehreren Pfaden realisiert werden.
Eine der Möglichkeiten beinhaltet die Eingabe eines „Connection-Strings, durch
welchen die verfügbaren Tabellen der zugehörigen Datenbank automatisch aufge-
listet werden. Aus dieser Auflistung kann dann eine Tabelle als Datenquelle aus-
gewählt werden. Für Musterbeispiele gültiger „Connection-String”-Formate, beziehen
Sie sich bitte auf Abschnitt 9.5.
Ein weiterer Weg besteht darin, neben dem „Connection-String, direkt eine SQL-
Abfrage zu formulieren, die die benötigten Daten bereitstellt. Mit dieser Meth-
ode kann die volle Bandbreite der SQL-Funktionen auf dem MySQL oder MariaDB
Server genutzt werden, um die Datenquelle innerhalb von BlockPDF zu konfiguri-
eren.
18
2.2.8 Eingebette Textdatei
Eingebetteter Text der als Datentabelle interpretiert wird. Beispielsweise können
dies XML-, JSON-, CSV-Daten sein sowie durch Zeilenumbrüche getrennte Daten.
2.2.9 XML
Um die Daten in einer XML-Datei nutzen zu können, muss ein bestimmtes For-
mat der Daten gegeben sein. Folgende XML-Struktur wäre im kompletten Zustand
einlesbar in BlockPDF:
19
1<root>
2<row>
3<Last_name>Mueller</Last_name>
4<First_name>Bernd</First_name>
5<Adress>Weit-Weit-Weg</Adress>
6<Checkbox_Value>Yes</Checkbox_Value>
7<Radio_button_value>2</Radio_button_value>
8<Combobox_Value>Kuchen</Combobox_Value>
9</row>
10 <row>
11 <Last_name>Mustermann</Last_name>
12 <First_name>Max</First_name>
13 <Adress>Mustermann Stra{\ss}e</Adress>
14 <Checkbox_Value>No</Checkbox_Value>
15 <Radio_button_value>1</Radio_button_value>
16 <Combobox_Value>Test</Combobox_Value>
17 </row>
18 <row>
19 <Last_name>Musterfrau</Last_name>
20 <First_name>Marie</First_name>
21 <Adress>Mustermann Stra{\ss}e</Adress>
22 <Checkbox_Value>Yes</Checkbox_Value>
23 <Radio_button_value>3</Radio_button_value>
24 <Combobox_Value>Keks</Combobox_Value>
25 </row>
26 <row>
27 <Last_name>Klein</Last_name>
28 <First_name>Berthold</First_name>
29 <Adress>Kleiner Weg</Adress>
30 <Checkbox_Value></Checkbox_Value>
31 <Radio_button_value></Radio_button_value>
32 <Combobox_Value></Combobox_Value>
33 </row>
34 </root>
2.3 Workflows
In BlockPDF erfolgt die Nutzung von Datenquellen durch Workflows, die eine sys-
tematische und flexible Verarbeitung von Daten ermöglichen. Diese Workflows
sind in zwei Haupttypen unterteilt: einfache und erweiterte Workflows.
Einfache Workflows zeichnen sich durch eine direkte Struktur aus, bestehend aus
einer einzelnen Datenquelle und einem Ausgangsknoten. Sie eignen sich bestens
für Aufgaben, bei denen Daten direkt aus einer Quelle bezogen und ohne weitere
20
Bearbeitung in das Enddokument integriert werden sollen.
Erweiterte Workflows hingegen bieten die Möglichkeit, komplexere Datenverarbeitun-
gen durchzuführen. Sie können mehrere Datenquellen-Knoten und Manipulations-
Knoten enthalten, die es erlauben, Daten zu filtern, zu sortieren oder auf andere
Weise zu bearbeiten, bevor sie im finalen Dokument verwendet werden. Diese
Art von Workflow ist ideal für anspruchsvollere Projekte, bei denen Daten aus ver-
schiedenen Quellen zusammengeführt und umfangreich manipuliert werden müssen.
Für die Funktionalität jedes Workflows ist es unerlässlich, dass er sowohl über einen
Input-Node verfügt, der die Datenquelle definiert, als auch über einen Output-
Node, der das Endprodukt generiert. Diese Struktur gewährleistet, dass Daten sys-
tematisch durch den Workflow fließen und schlussendlich in einem nutzbaren For-
mat ausgegeben werden.
2.3.1 Manipulationsknoten
Die Manipulationsknoten sind zwischen den Datenquellen und dem Ausgangsknoten
angesiedelt und erlauben verschiedene Operationen auf die Daten anzuwenden
bevor diese anderweitig in der Software genutzt werden.
2.3.1.1 Zusammenführen Diese Funktion ermöglicht es, mehr als eine Verbindung
zu empfangen und die Daten aus verschiedenen Quellen zusammenzuführen. Beim
Einsatz eines Merge-Node ist es wichtig zu beachten, dass die Ausführungsreihen-
folge der Knoten eine entscheidende Rolle spielt. Die Reihenfolge, in der die Daten-
quellen verarbeitet werden, orientiert sich an ihrer Darstellung im Editor: Der ober-
ste Knoten wird zuerst verarbeitet, gefolgt von dem darunterliegenden und so weiter.
Um die Reihenfolge der Datenquellen zu ändern, kann die Position der Knoten ent-
lang der Y-Achse im Editor angepasst werden. Diese Änderung wird direkt im zu-
grunde liegenden Datenmodell reflektiert und bestimmt die Reihenfolge, in der die
Daten zusammengeführt werden.
2.3.1.2 Wert ersetzten Erlaubt es einen festdefinierten Text an jeder Stelle in
den Daten durch einen andern zu ersetzten.
2.3.2 Ausgangsknoten
Der Ausgangsknoten ist immer der letzte Knoten in einem Workflow. Es darf von
diesem Knoten nur einen geben und der Block nimmt nur einen Verbindung von
einem anderen Block an.
21
2.4 Datentypen
In BlockPDF werden Daten für die Block-Eigenschaften in verschiedenen Daten-
typen repräsentiert. Im folgenden werden auf diese Datentypen eingegangen.
2.4.1 Text
Textdaten repräsentieren sequenzielle Zeichenketten, die für die Darstellung von
Informationen wie Namen, Adressen oder beliebigen Nachrichten verwendet wer-
den. Beispiel: Hallo Welt”, “1234”.
2.4.2 Ganzzahl
Ganzzahlen sind numerische Daten ohne Dezimalstellen, die zur Darstellung von
Ganzzahlen verwendet werden, einschließlich Zahlen ohne Bruchteil. Beispiel: 42,
-3.
2.4.3 Gleitkommazahl
Gleitkommazahlen sind numerische Daten mit Dezimalstellen (Beispiel: 3.14, -
0.001), die eine größere Bandbreite an Werten darstellen können, einschließlich
sehr kleiner oder großer Zahlen. In Abhängigkeit von der Systemsprache kann die
Darstellung von Dezimalstellen durch einen Punkt oder ein Komma erfolgen. Bei
Layout-Spezifische Eigenschaften ist die Standardeinheit für die Gleitkommazahlen
„Point” (siehe Referenz [3]).
2.4.4 Boolescher Wert (1 / 0, Aktiviert / Deaktiviert, ...)
BlockPDF konvertiert verschiedene Textwerte automatisch in einen booleschen Wert
um. Hierbei wird eine Vielzahl von Eingabewerten unterstützt, um die Konvertierung
so flexibel wie möglich zu gestalten und unterschiedliche Benutzereingaben sowie
Datenquellenformate zu akzeptieren.
2.4.4.1 Interpretation als true
x”
“1”
true
on
y”
22