PDF-Spot-Farben (Separation Color Space, WP-PDF-25): Registriert benannte Spot-Farben (z. B. PANTONE-Töne) mit CMYK-Alternativwerten und wählt sie als Strich- oder Füllfarbe auf einer Seite aus. Spot-Farben werden im PDF als Separation-Farbraum mit einer DeviceCMYK-Tint-Funktion eingebettet.
→ std.pdf.shading · std.pdf.graphics · Standard Library
| Signatur | Beschreibung |
|---|---|
PdfDefineSpotColor(doc: int64, name: pchar, c100: int64, m100: int64, y100: int64, k100: int64): int64 | Registriert eine benannte Spot-Farbe mit CMYK-Alternativwerten (je ×100, 0–10 000). Gibt spotId (≥ 0) zurück, −1 bei Fehler. |
PdfSetStrokeSpot(doc: int64, page: int64, spotId: int64, tint: f64): void | Wählt die Spot-Farbe spotId als Strichfarbe und setzt die Tintenstärke (0,0–1,0). Emittiert /SP{n} CS {tint} SC. |
PdfSetFillSpot(doc: int64, page: int64, spotId: int64, tint: f64): void | Wählt die Spot-Farbe spotId als Füllfarbe und setzt die Tintenstärke (0,0–1,0). Emittiert /SP{n} cs {tint} sc. |
Detaillierte Parameter-Beschreibung pro Funktion:
| Parameter | Bereich | Beschreibung |
|---|---|---|
c100 | 0–10 000 | Cyan-Anteil: 0 = 0 %, 10 000 = 100 % |
m100 | 0–10 000 | Magenta-Anteil |
y100 | 0–10 000 | Yellow-Anteil |
k100 | 0–10 000 | Key (Black) -Anteil |
Die CMYK-Werte definieren die Druckfarb-Simulation in Viewern ohne Spot-Color-Support. Der tatsächliche Farbton auf der Druckmaschine wird durch die physische Spot-Farbe bestimmt.
tint steuert die Tintenstärke der Spot-Farbe:
0.0 — kein Auftrag (weiß / transparent)1.0 — voller Tintenauftrag (100 % Spot-Farbe)0.5 = 50 % Auftrag)
import std.pdf.spot;
import std.pdf.graphics;
fn PantoneExample(doc: int64, page: int64): void {
// PANTONE 485 C (leuchtendes Rot): C=0, M=95, Y=100, K=0
var red485 := PdfDefineSpotColor(doc, "PANTONE 485 C", 0, 9500, 10000, 0);
if (red485 < 0) { return; }
// Gefülltes Rechteck mit PANTONE 485 C
PdfSetFillSpot(doc, page, red485, 1.0);
PdfRect(doc, page, 50.0, 700.0, 200.0, 50.0);
PdfFill(doc, page);
}
import std.pdf.spot;
import std.pdf.graphics;
fn SpotPalette(doc: int64, page: int64): void {
// Zwei PANTONE-Farben registrieren
var gold := PdfDefineSpotColor(doc, "PANTONE 871 C", 0, 1800, 7000, 2800); // Metallic Gold
var black := PdfDefineSpotColor(doc, "PANTONE Process Black C", 0, 0, 0, 10000);
// Goldener Rahmen (Strich)
PdfSetStrokeSpot(doc, page, gold, 1.0);
PdfSetLineWidth(doc, page, 2.0);
PdfRectStroke(doc, page, 50.0, 650.0, 495.0, 150.0);
// Schwarzer Text-Hintergrund (Füllung, 80 % Tinte)
PdfSetFillSpot(doc, page, black, 0.8);
PdfRect(doc, page, 60.0, 660.0, 200.0, 40.0);
PdfFill(doc, page);
}
import std.pdf.spot;
import std.pdf.graphics;
fn TintSteps(doc: int64, page: int64): void {
var pantoneBlue := PdfDefineSpotColor(doc, "PANTONE 300 C", 10000, 4300, 0, 0);
// 5 Rechtecke mit 100%, 75%, 50%, 25%, 10% Tinte
var i: int64 := 0;
while (i < 5) {
var tint: f64 := (5 - i) as f64 * 0.2;
PdfSetFillSpot(doc, page, pantoneBlue, tint);
PdfRect(doc, page, 50.0 + i as f64 * 60.0, 600.0, 50.0, 50.0);
PdfFill(doc, page);
i := i + 1;
}
}
spotId ist stabil innerhalb eines Dokuments — einmal registrierte Spot-Farben können auf beliebigen Seiten verwendet werden.name-Zeichenkette wird in das PDF übernommen — PANTONE-Namen exakt laut Farbfächer schreiben (z. B. „PANTONE 485 C„), damit RIP-Software die Farbe korrekt erkennt.PdfSetFillSpot gilt der Spot-Farbraum bis zum nächsten PdfSetFillColor / PdfRestoreState.DeviceCMYK als Alternativ-Farbraum (wie hier implementiert).std.pdf.graphics — Pfade, Fill, Stroke, PdfSaveStatestd.pdf.shading — Verläufe (RGB-Gradienten)std.pdf.pdfa — PDF/A-KonformitätLetzte Aktualisierung: 2026-06-05