doc-fill-different-fonts

Community nodes to fill PDF form fields, place images, and choose fonts.

Documentation

n8n-nodes-doc-fill-fields-and-images

Dieses Repository enthält zwei n8n Nodes:

  • PDF Fill – Felder & Bilder: füllt Formularfelder in PDFs und fügt Bilder an einem benannten Feld ein (PNG/JPEG via Data-URI), unabhängig vom Feldtyp.
  • PDF Field Create: zeichnet freien Text an absoluten Koordinaten auf einer Seite.

PDF Fill – Felder & Bilder

  • Eingaben: Ein PDF (Binary Property), drei Parameter: Property Name, Property Name Out, Configuration JSON.
  • Property Name: interner Binär-Property-Name des Eingabe-PDFs (Standard: data).
  • Property Name Out: interner Binär-Property-Name für das Ausgabe-PDF (Standard: data).
  • Configuration JSON: Array von Einträgen, die Felder per Schlüssel ansprechen und Werte setzen.

Struktur Configuration JSON

interface DocFillConfig {
  key: string;
  value: string;
  type: 'textfield' | 'checkbox' | 'dropdown' | 'radiogroup' | 'signature';
  options?: {
    pageIndex?: number;
    x?: number;
    y?: number;
    width?: number;
    height?: number;
  };
}
  • key: Name des Formularfelds im PDF (z. B. signature, signature_42uix).
  • value: Zu setzender Wert.
    • Für signature: ein Bild als Data-URI (data:image/png;base64,... oder data:image/jpeg;base64,...).
    • Für textfield/dropdown/radiogroup: der Text bzw. Auswahlwert.
    • Für checkbox: "true" zum Setzen, "false" zum Entfernen.
  • type: Feldtyp.
  • options (optional, nur für signature): Manuelle Platzierung mit Seite und Koordinaten (Überschreibt Widget-Positionen).

Verhalten beim Bild-Einfügen

  • Das Bild wird nach dem Flatten des Formulars direkt auf der Seite an den Koordinaten des benannten Feld-Widgets gezeichnet.
  • Es ist egal, ob das benannte Feld ein echtes Signaturfeld, Button, Textfield etc. ist – maßgeblich ist der Feldname.
  • Fallback: Falls keine Widget-Positionen ermittelt werden können, wird das Bild unten links auf der letzten Seite gezeichnet.
  • Unterstützte Bildformate: PNG und JPEG als Data-URI.

Beispiele

Ein Textfeld plus Signaturbild in ein Feld namens signature einfügen:

[
  { "key": "Name", "value": "Max Mustermann", "type": "textfield" },
  { "key": "signature", "value": "data:image/png;base64,<BASE64>", "type": "signature" }
]

Manuelle Platzierung erzwingen (falls das Feld-Widget nicht ermittelt werden kann):

[
  {
    "key": "signature",
    "value": "data:image/png;base64,<BASE64>",
    "type": "signature",
    "options": { "pageIndex": 0, "x": 40, "y": 40, "width": 220, "height": 60 }
  }
]

Hinweis zum Koordinatensystem:

  • Ursprung ist unten links. x nach rechts, y nach oben. Breite/Höhe in Punkten.

PDF Field Create

  • Eingaben: Ein PDF (Binary Property), drei Parameter: Property Name, Property Name Out, Configuration JSON.
  • Zeichnet freien Text an absoluten Koordinaten auf einer bestimmten Seite.

Struktur Configuration JSON

interface DocCreateFieldConfig {
  page: number;
  value: string;
  options: {
    x: number;
    y: number;
    size?: number;
    opacity?: number;
    colorRed?: number;
    colorGreen?: number;
    colorBlue?: number;
  };
}
  • page: Zielseite (0-basiert).
  • value: zu zeichnender Text.
  • options.x/options.y: Startkoordinaten.
  • options.size: Schriftgröße (Standard: 24).
  • options.opacity: Deckkraft 0–1 (Standard: 1).
  • options.colorRed/options.colorGreen/options.colorBlue: RGB-Farbe (Standard: 0/0/0).

Beispiel

[
  {
    "page": 0,
    "value": "Dies ist ein Test!",
    "options": { "x": 300, "y": 30, "size": 12 }
  }
]

Installation

Fork und Credits

  • Dieses Projekt ist ein Fork von n8n-nodes-doc-fill von Roman Muzikantov: https://github.com/romanmuzikantov/n8n-nodes-doc-fill
  • Erweiterungen in diesem Fork:
    • Bild-Einfügen über beliebige benannte Formularfelder (type: "signature" mit Data-URI PNG/JPEG)
    • Robuste Widget-Erkennung (Annotation-Refs, Seiten-Annots, Koordinaten-Fallback)
    • Nach-Form-Flatten Zeichnen, damit Widgets nicht über dem Bild liegen
    • Optional manuelle Bild-Platzierung über options

Discussion