====== std.pdf.spot ======
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.
→ [[lyx_-_programmiersprache:units:pdf:shading|std.pdf.shading]] · [[lyx_-_programmiersprache:units:pdf:graphics|std.pdf.graphics]] · [[lyx_-_programmiersprache:units|Standard Library]]
----
===== Funktionen =====
^ 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''. |
----
===== Parameter-Details =====
Detaillierte Parameter-Beschreibung pro Funktion:
==== PdfDefineSpotColor — CMYK-Werte ×100 ====
^ 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.
==== PdfSetStrokeSpot / PdfSetFillSpot — tint ====
''tint'' steuert die Tintenstärke der Spot-Farbe:
* ''0.0'' — kein Auftrag (weiß / transparent)
* ''1.0'' — voller Tintenauftrag (100 % Spot-Farbe)
* Zwischenwerte sind möglich (z. B. ''0.5'' = 50 % Auftrag)
----
===== Verwendung =====
==== PANTONE-Farbe definieren und verwenden ====
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);
}
==== Mehrere Spot-Farben auf einer Seite ====
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);
}
==== Spot-Farbe mit Tint-Verlauf (manuell) ====
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;
}
}
----
===== Hinweise =====
* ''spotId'' ist stabil innerhalb eines Dokuments — einmal registrierte Spot-Farben können auf beliebigen Seiten verwendet werden.
* Die ''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.
* Spot-Farben und CMYK-/RGB-Farbbefehle lassen sich auf einer Seite mischen; nach ''PdfSetFillSpot'' gilt der Spot-Farbraum bis zum nächsten ''PdfSetFillColor'' / ''PdfRestoreState''.
* PDF/A-1b erlaubt Spot-Farben mit ''DeviceCMYK'' als Alternativ-Farbraum (wie hier implementiert).
----
===== Verwandte Units =====
* ''[[lyx_-_programmiersprache:units:pdf:graphics|std.pdf.graphics]]'' — Pfade, Fill, Stroke, PdfSaveState
* ''[[lyx_-_programmiersprache:units:pdf:shading|std.pdf.shading]]'' — Verläufe (RGB-Gradienten)
* ''[[lyx_-_programmiersprache:units:pdf:pdfa|std.pdf.pdfa]]'' — PDF/A-Konformität
Letzte Aktualisierung: 2026-06-05