Produkt- und API-Leitfaden

Ressourcen

Ressource hochladen

Logos, Unterschriften und Schriften werden einmal hochgeladen und anschließend über ihre ID referenziert. Die Anfrage ist multipart; die Datei gehört in das Feld file, altText ist optional.

Anfrage
curl -X POST https://api.pdfgine.com/api/v1/assets \
  -H "X-PDFgine-Key: $PDFGINE_KEY" \
  -F "file=@logo.png" \
  -F "altText=Firmenlogo"
HTTP 201
{
  "assetId": "ast_985f87e2b22d486db2d6d8bacd29288e",
  "fileName": "logo.png",
  "contentType": "image/png",
  "length": 20184,
  "altText": "Firmenlogo",
  "createdAt": "2026-09-26T15:29:44.8420041+00:00",
  "expiresAt": null,
  "fontEmbedding": null
}

Der Typ wird aus den ersten Dateibytes gelesen, nicht aus dem gesendeten Content-Type: Eine .png-Datei, die tatsächlich ein PDF ist, wird abgelehnt. PNG, JPEG, WebP, TTF und OTF werden bis zu 10 MB pro Datei akzeptiert.

In einem Dokument verwenden

Senden Sie die ID dort, wo die Vorlage ein Bild erwartet. Dasselbe Feld akzeptiert auch eine data:-URI; eine hochgeladene Ressource benötigt jedoch weniger Übertragungsvolumen und lässt sich wiederverwenden.

Anfrage
curl -X POST https://api.pdfgine.com/api/v1/render \
  -H "X-PDFgine-Key: $PDFGINE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
        "templateCode": "invoice",
        "format": "pdf",
        "data": { "logo": "ast_985f87e2b22d486db2d6d8bacd29288e" }
      }'

Temporäre Ressourcen auflisten und löschen

Ein Bild für ein einzelnes Dokument muss nicht manuell entfernt werden: Geben Sie expiresInMinutes zwischen 1 und 10080 (sieben Tage) an, damit die Ressource sich selbst entfernt.

Anfrage
curl -X POST https://api.pdfgine.com/api/v1/assets \
  -H "X-PDFgine-Key: $PDFGINE_KEY" \
  -F "file=@signature.png" \
  -F "expiresInMinutes=60"

# Auflisten, Inhalt einer Ressource und Löschen
curl https://api.pdfgine.com/api/v1/assets -H "X-PDFgine-Key: $PDFGINE_KEY"
curl https://api.pdfgine.com/api/v1/assets/ast_985f87e2b22d486db2d6d8bacd29288e/content \
  -H "X-PDFgine-Key: $PDFGINE_KEY" -o logo.png
curl -X DELETE https://api.pdfgine.com/api/v1/assets/ast_985f87e2b22d486db2d6d8bacd29288e \
  -H "X-PDFgine-Key: $PDFGINE_KEY"

Schriften und erlaubte Einbettung

Eine Schriftdatei legt in ihren fsType-Bits fest, was ein Dokument mit ihr tun darf. PDFgine liest dies beim Hochladen und gibt fontEmbedding zurück. So kennen Sie die Antwort vor der Dokumenterstellung statt erst beim Öffnen.

fontEmbedding Was das Dokument darf
installableKeine Einschränkung; in PDF und Word eingebettet.
editableIn PDF und Word eingebettet.
preview-printIm PDF eingebettet. Nicht in Word eingebettet, da Word-Dokumente bearbeitet werden können; Word verwendet eine Ersatzschrift.
restrictedNirgends eingebettet. Das Dokument wird dennoch erstellt und verwendet stattdessen eine Schrift des Lesers.
bitmap-onlyNur Bitmap-Einbettung ist erlaubt; Dokumente können diese nicht verwenden. Wird nicht eingebettet.
unstatedDie Datei nennt keine Berechtigung. Gemäß der OpenType-Spezifikation wird sie als einbettbar behandelt.

WOFF und WOFF2 werden beim Hochladen abgelehnt. Sie lassen sich nicht in Word-Dokumente einbetten. Dieselbe Vorlage wäre dann im PDF korrekt und in Word falsch — ein Unterschied, den Sie erst nach dem Versand bemerken würden.

Integrierte Schriften

Diese Schriftfamilien sind im Produkt enthalten. Verwenden Sie ihre Namen in style.fontFamily und page.defaultFont. Derselbe Schriftschnitt wird in PDF, Word und im Editor verwendet. Fehlende Schriftstärken werden nicht abgelehnt; der nächstliegende Schriftschnitt wird verwendet.

Schriftfamilie Gruppe Schriftstärken Schriftsysteme
Inter sans 100, 200, 300, 400, 500, 600, 700, 800, 900 latin, latin-ext, greek, cyrillic, vietnamese
Roboto sans 100, 200, 300, 400, 500, 600, 700, 800, 900 latin, latin-ext, greek, cyrillic, vietnamese
Montserrat sans 100, 200, 300, 400, 500, 600, 700, 800, 900 latin, latin-ext, cyrillic, vietnamese
Poppins sans 100, 200, 300, 400, 500, 600, 700, 800, 900 latin
DM Sans sans 100, 200, 300, 400, 500, 600, 700, 800, 900 latin
Nunito sans 200, 300, 400, 500, 600, 700, 800, 900 latin, cyrillic, vietnamese
Manrope sans 200, 300, 400, 500, 600, 700, 800 latin, greek, cyrillic, vietnamese
Noto Sans sans 100, 200, 300, 400, 500, 600, 700, 800, 900 latin, latin-ext, greek, cyrillic, vietnamese
Plus Jakarta Sans sans 200, 300, 400, 500, 600, 700, 800 latin, vietnamese
Work Sans sans 100, 200, 300, 400, 500, 600, 700, 800, 900 latin, latin-ext, vietnamese
Roboto Condensed condensed 100, 200, 300, 400, 500, 600, 700, 800, 900 latin, latin-ext, greek, cyrillic, vietnamese
Oswald condensed 200, 300, 400, 500, 600, 700 latin, latin-ext, cyrillic, vietnamese
Noto Serif serif 100, 200, 300, 400, 500, 600, 700, 800, 900 latin, latin-ext, greek, cyrillic, vietnamese
EB Garamond serif 400, 500, 600, 700, 800 latin, latin-ext, greek, cyrillic, vietnamese
Newsreader serif 200, 300, 400, 500, 600, 700, 800 latin, vietnamese
Literata serif 200, 300, 400, 500, 600, 700, 800, 900 latin, greek, cyrillic, vietnamese
Tinos serif 400, 700 latin, latin-ext, greek, cyrillic, vietnamese
Rokkitt serif 100, 200, 300, 400, 500, 600, 700, 800, 900 latin, vietnamese
Inconsolata mono 200, 300, 400, 500, 600, 700, 800, 900 latin, vietnamese
Noto Sans Mono mono 100, 200, 300, 400, 500, 600, 700, 800, 900 latin, latin-ext, greek, cyrillic, vietnamese
Arial system 400, 700
Georgia system 400, 700

Wenn ein Upload abgelehnt wird

Jede Ablehnung liefert 400 mit der Begründung unter errors.file. Zeigen Sie diesen Satz der hochladenden Person; er erklärt bereits die nötigen Schritte.

HTTP 400
{
  "type": "https://tools.ietf.org/html/rfc9110#section-15.5.1",
  "title": "One or more validation errors occurred.",
  "status": 400,
  "errors": {
    "file": ["Laden Sie eine TTF- oder OTF-Schrift hoch, damit sie in der Word-Ausgabe verwendet werden kann. WOFF- und WOFF2-Dateien können nicht in ein Word-Dokument eingebettet werden."]
  },
  "correlationId": "505aac87e234a7b4669e6203ac7ffcd5"
}
Fehler →

Häufige Fehler

  • Der Typ wird aus den ersten Bytes gelesen, nicht aus dem Dateinamen. Ein in .png umbenanntes PDF wird kein Bild; der Upload wird abgelehnt.
  • WOFF und WOFF2 werden bewusst abgelehnt. Sie sind nicht in Word einbettbar, sodass dieselbe Vorlage im PDF korrekt und in Word falsch wäre. Laden Sie TTF oder OTF hoch.
  • Die Uploadantwort enthält fontEmbedding. Wenn Sie das ignorieren, erfahren Sie erst nach dem Versand, dass die Schrift ersetzt wurde.
  • Eine data:-URI wird mit jeder Anfrage übertragen. Laden Sie ein Logo, das auf jedem Dokument erscheint, einmal hoch und senden Sie seine ID.
  • Ein Bild für nur ein Dokument muss nicht manuell gelöscht werden. Geben Sie expiresInMinutes an, damit es sich selbst entfernt.