> For the complete documentation index, see [llms.txt](https://docs.ninox.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ninox.com/getting-started/de/builder-getting-started/set-up-your-ninox-manually/create-print-layouts-and-generate-pdfs.md).

# Drucklayouts erstellen und PDFs erzeugen

Mit Drucklayouts wandelst du Datensätze wie Rechnungen in druckbare PDFs um.

## **Dein erstes Drucklayout erstellen** <a href="#dein-erstes-drucklayout-erstellen" id="dein-erstes-drucklayout-erstellen"></a>

Nutze ein Drucklayout, um einen Rechnungs-Datensatz als druckbares PDF auszugeben.

{% hint style="info" %}
Nur Nutzer mit der Rolle **Admin** können Änderungen an Drucklayouts speichern.
{% endhint %}

{% stepper %}
{% step %}
**Drucklayout-Editor öffnen**

Öffne in der Tabelle „Rechnungen“ einen Rechnungs-Datensatz. Klicke oben rechts auf das Drucker-Symbol <i class="fa-print">:print:</i>. Du kannst auch das Drei-Punkte-Menü öffnen und **Diesen Datensatz drucken** wählen.

Wenn du das in einer Tabelle zum ersten Mal machst, öffnet Ninox ein Drucklayout mit allen aktuell in der Tabelle vorhandenen Feldern.
{% endstep %}

{% step %}
**Inhalte zum Layout hinzufügen**

Klicke in der **Top-Bar** auf **+ Einfügen** und füge die Elemente hinzu, die du brauchst:

* **Text**, um statischen Text oder einen durch ein Skript ermittelten Wert anzuzeigen.
* ein statisches **Bild**
* **Daten** aus Feldern der aktuellen Tabelle
  {% endstep %}

{% step %}
**Layoutelemente anpassen**

* Klicke auf ein Element, um seinen Rahmen hervorzuheben. Ziehe es dann an die gewünschte Position.
* Ziehe an den quadratischen Griffen, um die Größe zu ändern.
* Klicke auf das Symbol **<>** am Element, um den Inhalt eines Felds oder Elements zu ändern.
  {% endstep %}

{% step %}
**Änderungen speichern**

Klicke auf **Änderungen speichern**, wenn dein Layout fertig ist.
{% endstep %}

{% step %}
**Erstes Layout benennen**

Gib einen Namen für das Layout ein und klicke auf **Speichern**.
{% endstep %}
{% endstepper %}

## **Ein weiteres Drucklayout erstellen** <a href="#ein-weiteres-drucklayout-erstellen" id="ein-weiteres-drucklayout-erstellen"></a>

Du kannst in derselben Tabelle mehrere Drucklayouts speichern.

Klicke neben **Änderungen speichern** auf den Pfeil. Wähle **Speichern unter**, um das aktuelle Layout unter einem anderen Namen zu speichern. Passe es anschließend nach Bedarf an.

## **Mit einem Button ein PDF erstellen** <a href="#eine-schaltflaeche-zum-erstellen-und-anhaengen-der-rechnungs-pdf-hinzufuegen" id="eine-schaltflaeche-zum-erstellen-und-anhaengen-der-rechnungs-pdf-hinzufuegen"></a>

Wenn du mindestens ein Drucklayout für deine Rechnungen erstellt hast, kannst du einen Button zum Erstellen einer PDF-Datei hinzufügen.\
Damit kannst du:

* Ein PDF mit einem festgelegten Drucklayout erstellen.
* Das erstellte PDF am Rechnungsdatensatz anhängen.
* Die Datei optional in einem Feld der Formularansicht anzeigen.

{% stepper %}
{% step %}

### Ein Dateifeld hinzufügen

[Füge das Feld hinzu](/getting-started/de/builder-getting-started/set-up-your-ninox-manually/your-first-app.md#add-fields-to-your-tables) und platziere es in der Formularansicht.\
Das Feld ist zum Erstellen und Anhängen der PDF nicht erforderlich. Wir empfehlen es, damit du die Datei direkt in der Formularansicht siehst.
{% endstep %}

{% step %}

### Den Button und die Logik hinzufügen

Öffne rechts den **Einstellungsbereich**.\
Wähle **Formular**, **Hinzufügen** und ziehe einen **Button** aus dem Bereich **Steuerelemente** in das Formular.

* Gehe in den Einstellungen des **Buttons** zu **Allgemein** und wähle **Bei Klick**.
* Füge das folgende Skript hinzu:

{% code overflow="wrap" %}

```
let myDateiname := rechnungsnummer + "-" + format(today(), "YYYY-MM-DD") + ".pdf";
do as server
	rechnung_pdf := importFile(this, 
										printAndSaveRecord(this, "Rechnung"), 
										myDateiname)
end
```

{% endcode %}
{% endstep %}

{% step %}

### Die einzelnen Funktionen im Skript

`let myDateiname := ...` erstellt einen Namen für die PDF-Datei:

* `rechnungsnummer` ist der Wert aus dem Feld „Rechnungsnummer“.
* `+ "-"` ergänzt einen Bindestrich zwischen Rechnungsnummer und heutigem Datum.
* `format(..., "YYYY-MM-DD")` formatiert das heutige Datum als `2026-08-15`.
* `+ ".pdf"` ergänzt die Dateiendung.

Der Block `do as server...end` führt den enthaltenen Code auf dem Server aus.\
`printAndSaveRecord()` muss dort ausgeführt werden.

`rechnung_pdf := importFile(...)` speichert die Dateireferenz im Feld „Rechnung PDF“. So wird das PDF im Dateifeld im Formular angezeigt.

`importFile(...)` hängt die Datei an den aktuellen Datensatz an. Die Datei erscheint im Tab <i class="fa-paperclip-vertical">:paperclip-vertical:</i> **Dateien**.

* `this` verweist auf den aktuell geöffneten Datensatz.
* `printAndSaveRecord(this, "Rechnung")` erstellt eine PDF-Datei für den aktuellen Datensatz (`this`) mit dem Drucklayout `"Rechnung"`.
* `myDateiname` legt den Namen der erstellten Datei fest.

{% hint style="warning" %}
Schrägstriche `/` sind in Dateinamen nicht erlaubt.\
Formatiere jedes Datum, das du in einem Dateinamen verwendest. Formatiere `today()` beispielsweise wie oben gezeigt als `YYYY-MM-DD`.\
Ein unformatiertes Datum kann Schrägstriche enthalten und die PDF-Erstellung verhindern.
{% endhint %}
{% endstep %}
{% endstepper %}

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwcQvYMK481PC6XtnwM6p%2Fuploads%2Fb3m0sKdAvT9zSouj3sL9%2Fpdf_erstellen_button.mp4?alt=media&token=ad928f3e-811c-4c5b-8ee8-45f990017e96>" %}

## **Layoutelemente bearbeiten**

Bestehende Drucklayouts bleiben jederzeit bearbeitbar. Wenn du den Drucklayout-Editor öffnest, kannst du das Layout direkt bearbeiten.

* Nutze unten auf der Seite **Raster anzeigen**, um das Raster ein- oder auszublenden.
* Nutze den **Zoom**-Regler, um ein- oder auszuzoomen.
* Nutze **Rückgängig** und **Wiederholen**, um Änderungen zurückzunehmen oder wiederherzustellen.
* Nutze **Ausschneiden**, **Kopieren** und **Einfügen**, um Stile und Inhalte wiederzuverwenden.
* Öffne das **Drei-Punkte-Menü** in der **Top-Bar**, um Elemente anzuordnen und auszurichten:
  * **In den Vordergrund** und **In den Hintergrund**
  * **Links**, **Zentriert** oder **Rechts ausrichten**
  * **Oben**, **Mittig** oder **Unten ausrichten**
  * **Horizontal verteilen**
* Um ein Element zu entfernen, wähle seinen Rahmen aus.\
  Klicke dann auf <i class="fa-trash-can">:trash-can:</i> **Entfernen** in der Werkzeugleiste oder drücke **Entf** oder **Rücktaste** auf deiner Tastatur.

## **Seiteneinstellungen anpassen** <a href="#use-the-layout-settings-panel" id="use-the-layout-settings-panel"></a>

Nutze den **Einstellungsbereich**, um das Layout anzupassen. Die verfügbaren Optionen hängen von deiner Auswahl ab.

Wähle die Seite aus, um Seiteneinstellungen wie Papierformat, Seitenränder, Kopf- und Fußzeilenhöhe oder Anhänge zu ändern. Wähle ein Text-, Daten-, Bild- oder Tabellenfeld aus, um Position, Größe, Stil und Anzeigeoptionen anzupassen.

Klicke auf einen leeren Bereich oder den Seitenrand, um das Seitenlayout zu bearbeiten. Du kannst Folgendes festlegen:

* **Seitengröße**
* Höhe von **Kopf-** und **Fußzeile**
* Breite der Seitenränder
* **Anhänge drucken**, um Datensatzanhänge in das PDF einzubeziehen

## **Elementeinstellungen für Text-, Logik- oder Datenfelder anpassen**

Wenn du ein Textfeld, eine Logik oder ein Datenfeld auswählst, aber kein Bildfeld, kannst du Folgendes festlegen:

* die **Position**, zum Beispiel **Mit Inhalt fließen** oder eine wiederholte **Kopf-** oder **Fußzeile**
* eine feste oder automatische **Höhe**
* die exakte **Position** mit X- und Y-Koordinaten sowie **Breite** und **Höhe**
* **Innenabstände** zwischen Inhalt und Elementrahmen
* **Farben** für Hintergrund und Text
* Rahmenfarbe, **Breite** und **Radius**
* **Schriftfamilie** und **Größe**
* Textformatierung wie **Fett**, **Kursiv** oder **Unterstrichen**
* Textausrichtung
* **Zeilenhöhe** für den Text

## **Datei- und Bildfeldeinstellungen anpassen**

Für ein Datei- oder Bildfeld kannst du Folgendes festlegen:

* den Seitenbereich, wie zum Beispiel **Mit Inhalt fließen** oder wiederholte **Kopf-** oder **Fußzeile**
* feste oder automatische **Höhe**
* die exakte **Position** mit X- und Y-Koordinaten sowie **Breite** und **Höhe**
* **Farben** für Hintergrund und Text
* einen **Rahmen** mit Farbe, **Breite** und **Radius**

## **Inhalte und Spalten für verknüpfte Tabellen anpassen**

Nutze diese Einstellungen, für eine verknüpfte Tabelle im Drucklayout.

Steuer damit, welche verknüpften Datensätze und Spalten im PDF erscheinen. Das ist nützlich, wenn Kunden nur relevante Details sehen sollen.

{% hint style="info" %}
Diese Änderungen gelten nur für das Drucklayout. Die zugrunde liegende verknüpfte Tabelle bleibt unverändert.
{% endhint %}

Wähle die Tabelle im Drucklayout aus, die aus einem Feld vom Typ **Mehrere Datensätze verknüpfen** stammt. Du kannst alle oben genannten Optionen für **Text**, **Logik** und **Daten** nutzen, außer **Textausrichtung** und **Zeilenhöhe**.

Zusätzlich stehen dir diese Optionen für verknüpfte Tabellen zur Verfügung:

* **Kopfzeile anzeigen**, um Spaltentitel ein- oder auszublenden
* **Fußzeile anzeigen**, um Aggregations-Ergebnisse für Spalten mit **Aggregation** ein- oder auszublenden
* <i class="fa-eye-slash">:eye-slash:</i> x **ausgeblendete Spalten**, **Filtern** und **Sortieren**
* **Tabellenrahmen**, um das Aussehen des Tabellenrasters festzulegen
* **Zellenabstand**, um den Abstand zwischen Wert und Zellenrand festzulegen

Du kannst Tabellenspalten auch direkt im ausgewählten Tabellenrahmen ändern:

* Nutze oben rechts <i class="fa-eye-slash">:eye-slash:</i> x **ausgeblendete Spalten**, **Filtern** und **Sortieren**.
* Im Dropdown-Menü jeder Spalte kannst du:
  * **Spalte umbenennen**
  * **Spalte duplizieren**
  * **Spalte links einfügen** oder **Spalte rechts einfügen**
  * aufsteigend oder absteigend **sortieren**
  * **Aggregation** wählen, abhängig vom Datentyp. Mit **Fußzeile anzeigen** blendest du das Ergebnis ein.
  * **Spalte ausblenden**

## **Ein PDF generieren**

Wenn dein Drucklayout fertig ist, klicke oben rechts auf **Dokument generieren**. Standardmäßig öffnet sich das PDF im Browser.

Klicke auf den Pfeil neben **Dokument generieren**, um auszuwählen, welche Datensätze im PDF enthalten sein sollen:

* **Für ausgewählten Datensatz generieren**
* **Für alle Datensätze generieren**\
  Diese Option erstellt eine einzelne PDF-Datei mit allen Datensätzen der offenen Tabellenansicht auf separaten Seiten.

{% hint style="info" %}
**Für alle Datensätze generieren** steht nur zur Verfügung, wenn der Datensatz in einer Tabellenansicht geöffnet wurde.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.ninox.com/getting-started/de/builder-getting-started/set-up-your-ninox-manually/create-print-layouts-and-generate-pdfs.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
