OnPremPDF API

Lokale REST-API zur synchronen Erzeugung von PDF-Dokumenten aus JSON-Daten.

Schnelltest (1 Minute)

Hinweis: Die Sandbox ist nicht das eigentliche Produkt. OnPremPDF wird lokal installiert und stellt die API auf Ihrem eigenen Server unter http://{server-ip}:8080/pdfguard/api/v1/render bereit.


curl -X POST https://sandbox.onprempdf.com/pdfguard/api/v1/render \
-H "Content-Type: application/json" \
-d '{
  "template": "default",
  "title": "Sandbox Test",
  "subtitle": "Erster API-Aufruf",
  "fields": [
    { "label": "Name", "value": "Max Mustermann" },
    { "label": "E-Mail", "value": "max@example.de" }  
  ],
  "footer": "Erstellt mit OnPremPDF"
}' --output sandbox-test.pdf  

Das generierte PDF wird als Datei test.pdf gespeichert.

Hinweis: Je nach Shell oder Betriebssystem (insbesondere unter Windows) kann mehrzeiliges JSON von curl nicht korrekt verarbeitet werden. Falls die Anfrage mit 400 Invalid JSON fehlschlägt, verwenden Sie bitte die unten stehende Alternative.


curl -X POST https://sandbox.onprempdf.com/pdfguard/api/v1/render -H "Content-Type: application/json" -d "{\"template\":\"default\",\"title\":\"Sandbox Test\",\"subtitle\":\"Erster API Aufruf\",\"fields\":[{\"label\":\"Name\",\"value\":\"Max Mustermann\"},{\"label\":\"Email\",\"value\":\"max@example.de\"}],\"footer\":\"Erstellt mit OnPremPDF\"}" -o sandbox-test.pdf

Die Sandbox ist oeffentlich zugaenglich und dient ausschliesslich zu Test- und Evaluierungszwecken.

API-Endpunkt

Der Endpunkt erzeugt synchron ein PDF-Dokument und liefert dieses direkt als HTTP-Antwort zurück.

POST http://{servername}:8080/pdfguard/api/v1/render
Content-Type: application/json

Request-Body (JSON) Struktur

JSON-Struktur, die im Body des POST /api/v1/render Requests gesendet wird.

  • Ein Feld = eine Zeile im PDF
  • Reihenfolge bleibt erhalten
  • Dynamisch erweiterbar

Hinweis: Das fields-Array kann beliebig viele Einträge enthalten. Jeder Eintrag wird als eigene Zeile im generierten PDF dargestellt.

Beispiel-Payload
{
  "template": "default",
  "title": "Schadenmeldung",
  "subtitle": "Datum: 2026-01-10",
  "fields": [
    { "label": "Schadenart", "value": "Wasserschaden" },
    { "label": "Beschreibung", "value": "Wasser tropft aus der Decke" },
    { "label": "Name", "value": "Max Mustermann" },
    { "label": "E-Mail", "value": "max@example.de" }
  ],
  "footer": "Generiert am 2026-01-11"
}

Request-Parameter

Parameter Typ Beschreibung Standard
template string Zu verwendendes PDF-Template für die Generierung
Beispiel: "default", "invoice", "report"
default
title string Titel des PDF-Dokuments null
subtitle string Untertitel (z. B. Datum, Aktenzeichen) null
fields array Liste von beliebig vielen Objekten mit label und value. []
footer string Text im unteren Bereich des Dokuments null

Templates

Templates werden kundenspezifisch angepasst und durch das OnPremPDF-Team bereitgestellt und ausgerollt.

PDF-Templates definieren das visuelle Layout und die Struktur der erzeugten Dokumente. Eine Kundenumgebung kann ein oder mehrere Templates enthalten.

Das zu verwendende Template kann über das optionale Feld template im Request-Body ausgewählt werden. Wird kein Template angegeben, wird automatisch das default-Template verwendet.

{
  "template": "default"
}

Beispiel für ein kundenspezifisches Template

Unten sehen Sie ein Beispiel für ein kundenspezifisches Template. Benutzerdefinierte Vorlagen können komplexe Layouts enthalten, wie tabellenbasierte Dokumente, Rechnungen, Zertifikate, Berichte oder behördliche Formulare.

Code-Beispiele

Dieses Beispiel verwendet die Sandbox-URL. Bitte ersetrzen Sie diese durch http://{servername}:8080/pdfguard/api/v1/render.

import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.charset.StandardCharsets;

public class Example {

  public static void main(String[] args) throws Exception {

    String json =
      "{"
    + "\"template\":\"default\","
    + "\"title\":\"Schadenmeldung\","
    + "\"subtitle\":\"Datum: 2026-01-10\","
    + "\"fields\":["
    + "  {\"label\":\"Name\",\"value\":\"Max Mustermann\"},"
    + "  {\"label\":\"E-Mail\",\"value\":\"max@example.de\"},"
    + "  {\"label\":\"Schadenart\",\"value\":\"Wasserschaden\"}"
    + "],"
    + "\"footer\":\"Erstellt mit OnPremPDF\""
    + "}";

    URL url = new URL("https://sandbox.onprempdf.com/pdfguard/api/v1/render");
    HttpURLConnection con = (HttpURLConnection) url.openConnection();

    con.setRequestMethod("POST");
    con.setRequestProperty("Content-Type", "application/json");
    con.setDoOutput(true);

    try (OutputStream os = con.getOutputStream()) {
      os.write(json.getBytes(StandardCharsets.UTF_8));
    }

    int status = con.getResponseCode();
    System.out.println("HTTP Status: " + status);

    if (status != 200) {
    throw new RuntimeException("HTTP error: " + status);
    }

    try (InputStream is = con.getInputStream()) {
      Files.copy(is, Path.of("document.pdf"), java.nio.file.StandardCopyOption.REPLACE_EXISTING);
    }

    System.out.println("PDF erfolgreich erzeugt.");
  }

}

HTTP-Responses & Fehlermeldungen

Die API liefert standardisierte HTTP-Statuscodes zur Rueckmeldung ueber den Erfolg oder Misserfolg einer PDF-Erzeugung. Fehler werden ausschliesslich ueber HTTP-Statuscodes signalisiert.

Erfolgreiche Anfrage


200 OK
Content-Type: application/pdf
    

Das PDF-Dokument wird direkt im Response-Body zurueckgegeben.

Fehlermeldungen

HTTP-Code Bedeutung Beschreibung
400 Bad Request Ungueltiges oder nicht parsebares JSON oder falscher Content-Type.
422 Unprocessable Entity Pflichtfelder fehlen (z. B. title oder fields).
429 Too Many Requests Das taegliche Anfrage-Limit der Lizenz wurde erreicht.
500 Internal Server Error Interner Fehler bei der PDF-Erzeugung.

Jeder Request wird - sofern Audit-Logging aktiviert ist - mit Status (SUCCESS, FAILED oder REJECTED) in den Audit-Logs protokolliert.

Administrationsoberfläche Admin GUI

Die Administrationsoberfläche dient zur Überwachung des Systemstatus sowie zur Verwaltung der aktiven Lizenz. Sie wird lokal zusammen mit der PDFGuard API installiert und benötigt keine externen Dienste.

  • Status und Laufzeit-Zustand des PDF-Dienstes
  • Installierte Version und Betriebsmodus
  • Aktiver Lizenztyp und ggf. geltende Limits
  • Informationen zum lokalen REST-API-Endpunkt

Der Zugriff auf die Administrationsoberfläche ist authentifizierungspflichtig. Der Standard-Benutzername lautet pdfguard. Das Passwort wird während der Installation automatisch generiert und nur einmalig im Terminal ausgegeben.

Die Administrationsoberfläche ist lokal erreichbar unter:


http://{servername}:8080/pdfguard/
    
Credentials
Username: pdfguard Password: stored in /opt/tomcat/conf/tomcat-users.xml Berechtigungen: 600 (ausschließlich für den Benutzer tomcat lesbar; das Passwort ist zufällig generiert)
Beispiel: Administrationsoberfläche
PDFGuard Administrationsoberfläche Übersicht

Optionale Sandbox-Vorschau

Zu Evaluierungszwecken steht eine schreibgeschützte Vorschau der Administrationsoberfläche in der Sandbox-Umgebung zur Verfügung:

Sandbox Admin GUI öffnen

Die Sandbox dient ausschließlich zur Ansicht und erlaubt keine Konfigurationsänderungen oder Lizenzaktivierungen.

Dashboard Monitoring

Das Dashboard bietet eine Echtzeit-Übersicht über die PDF-Erzeugungsaktivität auf Basis ausschliesslich lokal gespeicherter Audit-Log-Daten. Es dient der operativen Überwachung sowie der Compliance-Transparenz.

  • Gesamtanzahl der PDF-Anfragen im ausgewählten Zeitraum
  • Aufschlüsselung nach Request-Status (SUCCESS, REJECTED, FAILED)
  • Visualisierung des täglichen Anfragevolumens
  • Zeitbasierte Filterung (z. B. letzte 7 oder Datum-Wahl)

Das Dashboard ist lokal erreichbar unter:


http://{servername}:8080/pdfguard/dashboard.html
    

Alle Statistiken werden ausschliesslich aus lokalen Audit-CSV-Dateien berechnet. Es werden keine externen Dienste, Telemetrie oder Drittanbieter-Analysen verwendet.

Beispiel: System-Dashboard-Ansicht
PDFGuard System-Dashboard Übersicht

Administrationsoberflaeche Audit-Logs

Die Administrationsoberflaeche stellt revisionssichere Audit-Logs zur Nachvollziehbarkeit aller PDF-Erzeugungen bereit. Sie wird lokal zusammen mit der PDFGuard API installiert.

  • Zeitstempel der PDF-Erzeugung (Datum und Uhrzeit)
  • Interne Request-ID (rein technisch, kein Bezug zum Dokumentinhalt)
  • Renderzeit des Backend-Prozesses in Millisekunden
  • IP-Adresse des aufrufenden Systems (anonymisiert / maskiert)
  • Status der REST-API-Anfrage (SUCCESS, FAILED, REJECTED)

Die Audit-Logs sind erreichbar unter:


http://{servername}:8080/pdfguard/logs.html
    

Es werden keine PDF-Inhalte, Nutzdaten oder personenbezogenen Informationen gespeichert oder angezeigt.

Beispiel: Audit-Log Ansicht
PDFGuard Audit-Logs Administrationsoberflaeche

Hinweis zur Audit Retention

Die Audit Retention definiert, wie lange Audit-Protokolle gespeichert werden, bevor diese automatisch geloescht werden.

  • Unterstuetzt Datenschutz- und DSGVO-Anforderungen
  • Vermeidet unbegrenzte Log-Speicherung
  • Automatische Bereinigung aelterser Audit-Daten

Beispiel: Bei einer Retention von 30 Tagen werden ausschliesslich Audit-Protokolle der letzten 30 Tage aufbewahrt.

el