v0.6.0 · Sprache .pdfl + CLI pdfl
PDFLang ersetzt die Checkliste, die jemand am Bildschirm abarbeitet, durch ein versioniertes Skript. Farbauftrag, eingebettete Schriften, Pflichtklauseln, Barcodes, personenbezogene Daten — einmal deklariert, bei jeder Datei geprüft, im Terminal oder in der CI.
profile "offset-magazine" { const TAC_LIMIT = 300% const MIN_DPI = 300 check "Ink coverage" tags: ["prepress"] { doc.pages.each { |page| tac = prepress::calculate_exact_tac(page.number) assert tac <= TAC_LIMIT, "page #{page.number}: #{tac}% ink" } } check "Fonts" tags: ["fonts"] { loose = prepress::detect_text_substitution() assert loose.length == 0, "fonts not embedded: #{loose.join(", ")}" } }
Jeder Namensraum deckt eine Problemklasse ab. Sie nutzen nur, was Sie brauchen: Ein Skript, das codes:: nie anfasst, zahlt auch nicht für das Scannen der Seiten.
Exakter Gesamtfarbauftrag, Separationen, Sonderfarben, Tiefschwarz, Haarlinien, Schriftersetzung, Mindestschriftgrad, Rahmen und Beschnitt. Was die Platte gezeigt hätte — vor der Platte.
Extraktion, Normalisierung, Suche per regulärem Ausdruck und Prüfung dessen, was tatsächlich in der Datei steht — einschließlich Erkennung personenbezogener Daten.
Die Datei selbst: Metadaten, XMP, interne Objekte, Verschlüsselung und Berechtigungen, Prüfsummen. Beantwortet, ob das PDF ist, was es vorgibt zu sein.
Rahmen, Seitendrehung und -reihenfolge, Wasserzeichen, Zusammenführen und Teilen, Optimierung. Schreibt ein neues PDF; das Original bleibt unangetastet.
Effektive Auflösung, Qualität, perzeptueller Hash und SSIM-Vergleich zweier Fassungen. Findet das niedrig aufgelöste Logo, das das Auge bei 100 % durchwinkt.
Erkennt und decodiert EAN, UPC, Code 128/39, ITF, QR-Code, Data Matrix, Aztec und PDF417 — und gleicht den gelesenen Inhalt mit dem Soll ab.
Gleicht den Dokumentinhalt mit Ihren eigenen Glossaren, Datensätzen und Nachschlagetabellen ab: Chargennummern, Artikelnummern, freigegebene Terminologie.
Jeder prüfende Befehl folgt derselben Konvention: 0 alles bestanden, 1 nur Warnungen, 2 Prüffehler, 3 Syntaxfehler im Skript. Der Bericht entsteht als JSON, CSV, HTML oder Audit-PDF — eines für die Pipeline, eines für den Kunden.
# .github/workflows/preflight.yml - run: pdfl run profiles/offset.pdfl artwork.pdf \ --output html --output-file report.html \ --fail-on warning # 0 ok · 1 warnings · 2 validation errors · 3 syntax error $ pdfl run profiles/offset.pdfl artwork.pdf $ echo $? 2
Die Datei kommt vom Kunden und jemand muss Farbauftrag, Schriften, Bilder und Beschnitt prüfen, bevor es auf die Platte geht. Ein Fehler, der danach auffällt, kostet die gesamte Auflage.
Ein Profil je Bedruckstoff. pdfl watch prüft, was im Hotfolder landet, und liefert einen HTML-Bericht, den Sie unverändert weiterleiten können.
Verträge und Richtlinien müssen Pflichtklauseln enthalten, dürfen keine personenbezogenen Daten preisgeben und sollen über alle Fassungen hinweg konsistente Metadaten führen.
Klauseln werden zu Zusicherungen mit Ihren eigenen Fehlermeldungen. pdfl compare zeigt, was sich zwischen zwei Fassungen desselben Dokuments geändert hat.
Die Packungsbeilage muss die behördlich vorgeschriebenen Texte tragen und einen Chargencode, der zur tatsächlich produzierten Charge passt.
text:: prüft den Pflichtwortlaut, codes:: decodiert die gedruckte Data Matrix und vergleicht sie mit dem Produktionsdatensatz.
Die Lizenz gilt je Gerät: pdfl fingerprint identifiziert die Maschine, pdfl license schaltet sie frei. Dasselbe Binary auf dem Arbeitsplatz des Operators und auf dem Build-Agent.