N-up-PDF-Seiten
Der Rechner für N-up-PDF-Seitenlayouts erstellt aus der Größe einer Originalseite und einer unterstützten Seitenzahl pro Blatt einen vollständigen Platzierungsplan.
Im Browser ausführen – kostenlos
Er liefert die Rastermaße, die erforderliche Breite und Höhe des Ausgabeblatts sowie die genaue Position jeder Zelle. Verwenden Sie für Breite und Höhe dieselbe Einheit; sämtliche Ergebnisse behalten diese Einheit bei. Die Berechnung ist deterministisch und verändert, überträgt oder rendert das Dokument nicht.
Beginnen Sie mit den Maßen der ursprünglichen PDF-Seite
Ein N-up-Layout basiert auf dem Medienformat einer ursprünglichen PDF-Seite. Geben Sie dieses Format als page_width und page_height an und verwenden Sie für beide Werte dieselbe Einheit. PDF-Software nennt Maße häufig in Punkten, wobei zweiundsiebzig Punkte einem Zoll entsprechen; der Rechner schreibt jedoch keine Einheit vor. Millimeter, Zoll oder jede andere einheitliche Maßeinheit funktionieren ebenso, da alle Ergebnisse durch Multiplikation und nicht durch Umrechnung entstehen. Das Werkzeug setzt voraus, dass sämtliche Quellseiten die angegebenen Maße besitzen. Enthält ein Dokument Hochformat, Querformat oder benutzerdefinierte Seitengrößen, berechnen Sie für jede Gruppe einen eigenen Plan oder vereinheitlichen Sie die Seiten zuvor. Beide Maße müssen endliche Zahlen größer als null sein; fehlende, negative, unendliche, nicht numerische Werte und null werden abgelehnt. Diese strenge Prüfung verhindert eine scheinbar plausible Blattspezifikation auf unbrauchbarer Geometrie. Die Funktion verarbeitet Seitengeometrie statt PDF-Bytes; ermitteln Sie daher vorher Breite und Höhe der MediaBox.
Wählen Sie ein unterstütztes Seitenraster
Setzen Sie n auf 2, 4, 6 oder 9. Jeder Wert ergibt ein eindeutiges Raster: Zwei Seiten verwenden zwei Spalten und eine Zeile, vier Seiten zwei Spalten und zwei Zeilen, sechs Seiten drei Spalten und zwei Zeilen und neun Seiten drei Spalten und drei Zeilen. Diese feste Zuordnung verhindert mehrdeutige Anordnungen und sorgt bei wiederholten Aufträgen für stabile Ergebnisse. Die Breite des Ausgabeblatts entspricht der ursprünglichen Seitenbreite multipliziert mit der Spaltenzahl; seine Höhe entspricht der ursprünglichen Seitenhöhe multipliziert mit der Zeilenzahl. Jede Quellseite bleibt in Originalgröße, ohne Skalierung, Drehung, Ränder, Zwischenräume, Beschnitt oder Schnittmarken. Solche Produktionsentscheidungen können Sie anschließend mit einem Ausschieß- oder Rendering-Werkzeug anwenden. Werte außerhalb der unterstützten Menge werden abgelehnt und weder gerundet noch in ein unvollständiges Raster gezwängt. Konfigurationsfehler werden dadurch früh sichtbar, besonders wenn n aus einer Benutzereinstellung, einer gespeicherten Vorlage oder einer Befehlszeilenoption stammt.
Erstellen Sie jedes Blatt anhand des Platzierungsplans
Das Array placements beschreibt die Zellen zeilenweise mit den nullbasierten Werten page_index, row und column. Die erste Quellseite liegt links oben; weitere Seiten folgen innerhalb der Zeile, und nach der letzten Spalte beginnt eine neue Zeile. Jede Platzierung enthält x- und y-Koordinaten sowie die unveränderte Breite und Höhe der Zelle. Der Koordinatenursprung liegt links oben: x wächst nach rechts und y nach unten. Verwendet Ihre PDF-Bibliothek einen Ursprung links unten, rechnen Sie y beim Rendern um, indem Sie y und die Zellenhöhe von sheet_height abziehen. Nehmen Sie für jedes Ausgabeblatt die nächsten n Quellseiten und wenden Sie dieselben Platzierungen der Reihe nach an. Das letzte Blatt darf weniger Seiten enthalten; ignorieren Sie ungenutzte Einträge, sofern Ihr Ablauf keine leeren Füllseiten verlangt. Das Ergebnis kann PDF-Erstellung, Druckvorschau, Ausschießkontrolle oder Auftragsscheine steuern, ohne die Rasterarithmetik erneut zu implementieren.
Anwendungsfälle
Einen Ausschießauftrag vorbereiten
Erstellen Sie das Zielblatt und platzieren Sie jede Seite anhand deterministischer Koordinaten, bevor Sie die Ausgabe-PDF schreiben.
Erforderliche Blattmaße ermitteln
Berechnen Sie die vollformatige Fläche eines unterstützten N-up-Layouts, ohne das Quelldokument zu öffnen oder zu verändern.
Druckeinstellungen prüfen
Lehnen Sie nicht unterstützte Seitenzahlen frühzeitig ab und vergleichen Sie das Raster mit Druck- oder Weiterverarbeitungsgrenzen.
Häufige Fragen
Wie hoch sind die Kosten?
Jede API-Anfrage kostet $0.002. Die Berechnung kann außerdem im Browser ausgeführt werden.
Welche N-up-Werte werden unterstützt?
Unterstützt werden 2, 4, 6 und 9. Jeder andere Wert führt zu einem Fehler wegen ungültiger Eingabe.
Welche Maßeinheit soll ich verwenden?
Sie können jede Einheit verwenden, sofern page_width und page_height dieselbe nutzen. Alle Ergebnisse behalten sie bei.
Skaliert oder dreht der Rechner die Seiten?
Nein. Er übernimmt Breite und Höhe und berechnet ein Raster in Originalgröße ohne Drehung, Skalierung, Ränder oder Zwischenräume.
Wird meine PDF hochgeladen oder neu geschrieben?
Nein. Berechnet wird nur die Geometrie aus den Maßen und n; PDF-Bytes werden weder gelesen, gespeichert, gerendert noch verändert.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/pdf/n-up-layout \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"page_width":612,"page_height":792,"n":4}'const res = await fetch("https://api.kit.forhosting.com/pdf/n-up-layout", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"page_width": 612,
"page_height": 792,
"n": 4
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/n-up-layout",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"page_width": 612,
"page_height": 792,
"n": 4
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/n-up-layout", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"page_width":612,"page_height":792,"n":4}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"page_width":612,"page_height":792,"n":4}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/n-up-layout", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"page_width": 612,
"page_height": 792,
"n": 4
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.n_up_layout",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_mb | 25 |
max_pages | 200 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |