Set *DefaultBRColorMode: None in the vendor PPD so every job sends <</UseCIEColor false>>: Brother's Normal/Vivid modes enable the printer's own CIE conversion, which washed the colours out. Add six APPrinterPreset entries mapping print-color-mode and print-quality from driverless (AirPrint/IPP) clients onto the Brother device options; they use the notation CUPS generates itself (Apple metadata as 'key value' pairs, PPD options as '*Name Value'), because key=value strings are silently discarded. print-quality is 3/4/5. Add the PRINTER_OPTIONS env var: whitespace-separated key=value pairs applied as queue defaults on every start via lpadmin -o, validated against the queue's PPD, with warnings instead of a failed startup. Document all of it in the README. The VividNoCIE candidate was dropped after test prints showed no difference from None. Archive the OpenSpec change and sync the printserver/cups spec with the two new requirements.
This commit is contained in:
1 parent
75b68fe438
commit
30670de93b
9 files changed
+319
-33
No files matched your search
+92
@@ -0,0 +1,92 @@
|
||||
# Proposal
|
||||
|
||||
## Why
|
||||
|
||||
Drucken funktioniert von macOS und iOS, aber die Ausgabe ist blass, und
|
||||
driverless AirPrint-Clients erreichen nur IPP-Standardoptionen – Farbmodus
|
||||
(Vivid), Medientyp und Toner Save sind reine PPD-Optionen und weder im
|
||||
Druckdialog wählbar noch dauerhaft konfigurierbar. Zusätzlich wirkt die
|
||||
im Dialog wählbare Option *Schwarz/Weiß* nicht: Der `pdftops`-Filter läuft
|
||||
bei Debian für Brother-Drucker mit dem Poppler-Renderer, der keine
|
||||
Graustufen erzeugen kann – der Job wird farbig gedruckt.
|
||||
|
||||
Messbare Befunde der Testreihe (ein und dieselbe farbige PDF, gleiche
|
||||
Drucker-Queue):
|
||||
|
||||
- Nur `BRColorMode=None` liefert gesättigte Farben → die Vorgabe
|
||||
`Normal` setzt `<</UseCIEColor true>>`, die CIE-Umrechnung im Drucker-RIP
|
||||
wäscht die Farben aus. `Vivid` (setzt ebenfalls `UseCIEColor true`) und
|
||||
`BRPrintQuality=Color` (`BRColorAdapt`) sowie `TonerSaveMode=False`
|
||||
waren ohne sichtbaren Effekt.
|
||||
- `print-color-mode=monochrome` gedruckt farbig → Ursache ist der
|
||||
Poppler-Renderer von `pdftops` (siehe `WARNING: Grayscale/monochrome
|
||||
could be printed as color with Poppler`).
|
||||
- Der macOS-Druck ist identisch zu `lp`-Drücken → der Client (ColorSync)
|
||||
ist nicht beteiligt.
|
||||
|
||||
## What Changes
|
||||
|
||||
- **Queue-Vorgabe für den Farbmodus kippt von `Normal` nach `None`** in der
|
||||
BR-Script3-PPD (`*DefaultBRColorMode`): `UseCIEColor` ist damit aus,
|
||||
Farben bleiben gesättigt. Verifiziert per Testdruck.
|
||||
- **Die PPD erhält `APPrinterPreset`-Einträge**, die die für AirPrint
|
||||
verfügbaren IPP-Attribute auf Geräteoptionen abbilden:
|
||||
- `print-color-mode=monochrome` → `BRPrintQuality=Black` (der *Drucker*
|
||||
rendert mono, unabhängig vom PDF-Renderer),
|
||||
- `print-color-mode=color` → `TonerSaveMode=False`,
|
||||
- `print-quality` draft/normal/high → `TonerSaveMode` und `CAPT`
|
||||
(Fine/SuperFine).
|
||||
- **Neue Umgebungsvariable `PRINTER_OPTIONS`** im `entrypoint.sh`:
|
||||
leerzeichengetrennte `key=value`-Paare, die per `lpadmin -o` bei jedem
|
||||
Start als Queue-Defaults gesetzt werden – damit überleben
|
||||
PPD-Optionen (z. B. `BRMediaType`, `TonerSaveMode`, `BRColorMode=Vivid`)
|
||||
die Neuerzeugung der Queue.
|
||||
- **README**: neuer Abschnitt, warum der AirPrint-Dialog nur
|
||||
IPP-Standardoptionen zeigt und wie PPD-Optionen gesetzt werden (Env-Var,
|
||||
CUPS-Web-UI, `lp`); Troubleshooting „Farben sind blass" mit der
|
||||
durchgeführten Testreihe; Dokumentation der funktionierenden
|
||||
S/W-Abbildung.
|
||||
|
||||
Verworfen: eine zusätzliche Choice `BRColorMode=VividNoCIE`
|
||||
(`UseCIEColor false` + `/BRColorMode 1`) – die Testdrucke waren von `None`
|
||||
nicht unterscheidbar, siehe `design.md`.
|
||||
|
||||
Kein Bestandteil: Änderungen am Containerfile (die PPD wird bereits
|
||||
installiert), am Verbindungs-/Zertifikatsverhalten oder eine
|
||||
Server-seitige Erzwingung von Graustufen über `pdftops-renderer=gs`
|
||||
(ausgeschlossen, weil der Ghostscript-Renderer genau die
|
||||
PS-Interpreter-Bugs umgeht, die der Poppler-Renderer bei Brother
|
||||
vermeidet).
|
||||
|
||||
## Capabilities
|
||||
|
||||
### New Capabilities
|
||||
|
||||
*(keine)*
|
||||
|
||||
### Modified Capabilities
|
||||
|
||||
- `printserver/cups`:
|
||||
- **Neues Requirement** „Queue-Defaults sind zur Laufzeit konfigurierbar":
|
||||
`PRINTER_OPTIONS` wird bei jedem Start als `lpadmin -o` gesetzt.
|
||||
- **Neues Requirement** „Farbausgabe ist standardmäßig gesättigt": Queue
|
||||
und PPD-Default für `BRColorMode` sind `None` (`UseCIEColor` aus),
|
||||
sofern nicht durch `PRINTER_OPTIONS` überschrieben.
|
||||
- **Geändertes Requirement** „Hardware options are sent to the printer":
|
||||
Szenario „Colour or mono" wird um die driverless-Clients erweitert –
|
||||
`print-color-mode=monochrome` eines AirPrint-Clients muss zu
|
||||
`BRPrintQuality=Black` und damit zu den mono-Parametern im
|
||||
PostScript führen; zusätzlich Szenarien für `print-quality`.
|
||||
|
||||
## Impact
|
||||
|
||||
- `assets/Brother HL-4150CDN/ppd/BR4150_2.PPD` (Default `BRColorMode`,
|
||||
neue `APPrinterPreset`-Einträge, ggf. neue Choice) – die
|
||||
Herstellerdatei wird direkt im Repo gepatcht, der Build bleibt unverändert.
|
||||
- `entrypoint.sh` (Auswertung von `PRINTER_OPTIONS`, idempotente
|
||||
Queue-Defaults).
|
||||
- `README.md` (Env-Var-Tabelle, „Printing options", Client-Unterstützung,
|
||||
Troubleshooting).
|
||||
- Verhalten für alle Clients (macOS, iOS, Linux): S/W-Auswahl wirkt ab
|
||||
dann geräteitig statt gar nicht; bestehende Ausgabe wird gesättigter.
|
||||
- Nicht betroffen: Containerfile, Zertifikat/Discovery, Windows-Weg.
|
||||
Reference in new issue
Block a user