revert-colour-mode-default implementation

This commit is contained in:
juergen committed 2026-10-20 15:44:49 +02:00
1 parent 0b1276843f
commit b22e82a8c2
3 files changed
+37 -32

No files matched your search

+27 -20
View File
@@ -209,7 +209,7 @@ The BR-Script3 PPD exposes the HL-4150CDN's hardware options. Common ones:
| Paper source | `InputSlot` | `AutoSelect`, `Tray1`, `Tray2`, `MPTray` | | Paper source | `InputSlot` | `AutoSelect`, `Tray1`, `Tray2`, `MPTray` |
| Two-sided printing | `Duplex` | `None`, `DuplexNoTumble` (long edge), `DuplexTumble` (short edge) | | Two-sided printing | `Duplex` | `None`, `DuplexNoTumble` (long edge), `DuplexTumble` (short edge) |
| Colour / mono | `BRPrintQuality` | `Auto`, `Color`, `Black` | | Colour / mono | `BRPrintQuality` | `Auto`, `Color`, `Black` |
| Colour mode | `BRColorMode` | `Normal`, `Vivid`, `None` (default) | | Colour mode | `BRColorMode` | `Normal` (default), `Vivid`, `None` |
| Media type | `BRMediaType` | `Plain`, `Thin`, `Thick`, `Recycled`, `Glossy`, `Label`, envelopes, … | | Media type | `BRMediaType` | `Plain`, `Thin`, `Thick`, `Recycled`, `Glossy`, `Label`, envelopes, … |
| Print quality | `CAPT` | `Fine` (600×600), `SuperFine` (2400 dpi class) | | Print quality | `CAPT` | `Fine` (600×600), `SuperFine` (2400 dpi class) |
| Toner save | `TonerSaveMode` | `True`, `False` | | Toner save | `TonerSaveMode` | `True`, `False` |
@@ -252,11 +252,8 @@ Client-specified values always win over the preset.
### Changes to the vendor PPD ### Changes to the vendor PPD
`assets/Brother HL-4150CDN/ppd/BR4150_2.PPD` is Brother's original file plus `assets/Brother HL-4150CDN/ppd/BR4150_2.PPD` is Brother's original file plus
two additions, each marked with a `%` comment in the file: one addition, marked with a `%` comment in the file:
- **`*DefaultBRColorMode: None` instead of `Normal`.** `Normal` and `Vivid` both
set `<</UseCIEColor true>>`; the printer's own CIE conversion washes the
colours out (see [Colours are printed pale / washed out](#colours-are-printed-pale--washed-out)).
- **Six `APPrinterPreset` entries** mapping `print-color-mode` - **Six `APPrinterPreset` entries** mapping `print-color-mode`
(color/monochrome) and `print-quality` (draft/normal/high) onto (color/monochrome) and `print-quality` (draft/normal/high) onto
`BRPrintQuality`, `CAPT` and `TonerSaveMode`. CUPS applies such presets for `BRPrintQuality`, `CAPT` and `TonerSaveMode`. CUPS applies such presets for
@@ -273,6 +270,10 @@ two additions, each marked with a `%` comment in the file:
whitespace, so `key=value` becomes the option *name* and the lookup fails). whitespace, so `key=value` becomes the option *name* and the lookup fails).
Note that IPP `print-quality` is `3` (draft), `4` (normal), `5` (high). Note that IPP `print-quality` is `3` (draft), `4` (normal), `5` (high).
Every other PPD value, including the colour-mode default
`BRColorMode: Normal`, is the vendor original — the container does not tune
colour output (see [Colours are printed pale / washed out](#colours-are-printed-pale--washed-out)).
## Client support ## Client support
| Platform | Path | Notes | | Platform | Path | Notes |
@@ -459,27 +460,33 @@ changing anything on the server.
### Colours are printed pale / washed out ### Colours are printed pale / washed out
Symptom: colour printouts look desaturated compared to the same PDF printed Symptom: colour printouts through the container look desaturated compared to
directly from the Mac, or with Brother's own driver. the same PDF printed through the Mac's local (Brother) driver.
Cause: the PPD colour mode `Normal` (Brother's default) makes the printer's Cause: a known limitation, not a switchable setting. Tested side by side on
PostScript interpreter apply its own CIE conversion (`<</UseCIEColor true>>`), the HL-4150CDN, the PPD colour-mode options make **no visible difference**:
which washes colours out. `Vivid` sets `UseCIEColor` as well, so it does not `BRColorMode None` — which switches the printer's CIE conversion off via
help either; `BRPrintQuality` (`BRColorAdapt`) and `TonerSaveMode` made no `<</UseCIEColor false>>` — prints the same as the vendor default `Normal`,
visible difference in a side-by-side test. The container therefore ships the and `Vivid`, `BRPrintQuality` (`BRColorAdapt`) and `TonerSaveMode` change
PPD with `*DefaultBRColorMode: None` (`UseCIEColor` off), which produces nothing either. (An earlier version of this container defaulted to `None` on
saturated output. the theory that the printer's CIE conversion caused the washout; before/after
test prints disproved that, and the default is the vendor original again.) The
gap comes from the conversion path: the local driver applies its own
client-side colour management, while the container converts the job
server-side to PostScript without it. No server-side lever is currently
known.
Check and, if needed, override the current default: For colour-critical output, print through the local driver. The remaining
server-adjacent checks are:
```sh ```sh
podman exec printserver lpoptions -p <queue> -l | grep BRColorMode # expect *None podman exec printserver lpoptions -p <queue> -l | grep BRColorMode # expect *Normal
podman exec printserver lp -d <queue> -o BRColorMode=None test.pdf podman exec printserver lp -d <queue> -o BRColorMode=Vivid test.pdf # optional experiment
``` ```
If output is still pale with `BRColorMode=None`, check the printer's own menu Also check the printer's own menu (Toner → Toner Save off) and make sure
(Toner → Toner Save off) and make sure `BRMediaType` matches the media in the `BRMediaType` matches the media in the tray — both affect the print, though
tray. neither closes the saturation gap.
Black-and-white is a related but separate path: `print-color-mode=monochrome` Black-and-white is a related but separate path: `print-color-mode=monochrome`
from a driverless client is mapped by the PPD presets onto from a driverless client is mapped by the PPD presets onto
+1 -4
View File
@@ -374,12 +374,9 @@ restore
*CloseUI: *BRPrintQuality *CloseUI: *BRPrintQuality
*% Color Mode Information =============== *% Color Mode Information ===============
*% Modified by this repo (see README, "Changes to the vendor PPD"):
*% - default switched from Normal to None: with UseCIEColor off the printer
*% skips its CIE conversion, which otherwise washes out the colours.
*OpenUI *BRColorMode/Colour Mode: PickOne *OpenUI *BRColorMode/Colour Mode: PickOne
*OrderDependency: 131.0 AnySetup *BRColorMode *OrderDependency: 131.0 AnySetup *BRColorMode
*DefaultBRColorMode: None *DefaultBRColorMode: Normal
*BRColorMode Normal/Normal: " *BRColorMode Normal/Normal: "
<</UseCIEColor true>>setpagedevice <</UseCIEColor true>>setpagedevice
<</BRColorMode 0>>setpagedevice <</BRColorMode 0>>setpagedevice
@@ -2,7 +2,7 @@
## 1. PPD auf Vendor-Default zurücksetzen ## 1. PPD auf Vendor-Default zurücksetzen
- [ ] 1.1 `assets/Brother HL-4150CDN/ppd/BR4150_2.PPD`: `*DefaultBRColorMode: - [x] 1.1 `assets/Brother HL-4150CDN/ppd/BR4150_2.PPD`: `*DefaultBRColorMode:
None` auf den Vendor-Wert `*DefaultBRColorMode: Normal` zurücksetzen und None` auf den Vendor-Wert `*DefaultBRColorMode: Normal` zurücksetzen und
den dreizeiligen „Modified by this repo"-Kommentar über dem Default den dreizeiligen „Modified by this repo"-Kommentar über dem Default
entfernen. Die sechs `APPrinterPreset`-Einträge und ihr Kommentarblock entfernen. Die sechs `APPrinterPreset`-Einträge und ihr Kommentarblock
@@ -14,18 +14,18 @@
## 2. README korrigieren ## 2. README korrigieren
- [ ] 2.1 Optionstabelle („Colour mode | `BRColorMode`"): Werte auf - [x] 2.1 Optionstabelle („Colour mode | `BRColorMode`"): Werte auf
`Normal` (default), `Vivid`, `None` ändern. `Normal` (default), `Vivid`, `None` ändern.
Verifikation: `grep -n 'BRColorMode' README.md` zeigt in der Tabelle Verifikation: `grep -n 'BRColorMode' README.md` zeigt in der Tabelle
„Normal (default)" und nirgends mehr „None (default)". „Normal (default)" und nirgends mehr „None (default)".
- [ ] 2.2 Abschnitt *Changes to the vendor PPD*: den ersten Aufzählungspunkt - [x] 2.2 Abschnitt *Changes to the vendor PPD*: den ersten Aufzählungspunkt
(Default-Wechsel mit CIE-Begründung) entfernen, die Einleitung auf die (Default-Wechsel mit CIE-Begründung) entfernen, die Einleitung auf die
verblebende eine Abweichung (Presets) anpassen und den verblebende eine Abweichung (Presets) anpassen und den
Verweis auf den Troubleshooting-Abschnitt entsprechend korrigieren. Verweis auf den Troubleshooting-Abschnitt entsprechend korrigieren.
Verifikation: Abschnitt listet nur noch die Presets; `grep -n 'DefaultBRColorMode' README.md` Verifikation: Abschnitt listet nur noch die Presets; `grep -n 'DefaultBRColorMode' README.md`
findet den Ausdruck nur noch in der Troubleshooting-Sektion (falls dort findet den Ausdruck nur noch in der Troubleshooting-Sektion (falls dort
referenziert). referenziert).
- [ ] 2.3 Troubleshooting-Abschnitt *Colours are printed pale / washed out* - [x] 2.3 Troubleshooting-Abschnitt *Colours are printed pale / washed out*
umschreiben (Design D3): Symptom bleibt, Ursache nennt die getesteten umschreiben (Design D3): Symptom bleibt, Ursache nennt die getesteten
Fakten (`None` vs. Vendor-Default ohne sichtbaren Unterschied, ebenso Fakten (`None` vs. Vendor-Default ohne sichtbaren Unterschied, ebenso
`Vivid`, `BRPrintQuality`, `TonerSaveMode`), die Lücke liegt im `Vivid`, `BRPrintQuality`, `TonerSaveMode`), die Lücke liegt im
@@ -40,16 +40,17 @@
## 3. Integrationstests (podman, lokal) ## 3. Integrationstests (podman, lokal)
- [ ] 3.1 Image bauen und Container starten: installierte PPD im Image hat - [x] 3.1 Image bauen und Container starten: installierte PPD im Image hat
`*DefaultBRColorMode: Normal`, `lpoptions -p <queue> -l | grep BRColorMode` `*DefaultBRColorMode: Normal`, `lpoptions -p <queue> -l | grep BRColorMode`
listet `Normal`/`Vivid`/`None`, Startup endet mit `ready`. listet `Normal`/`Vivid`/`None`, Startup endet mit `ready`.
Verifikation: `podman exec printserver grep 'DefaultBRColorMode' /usr/share/cups/model/BR4150_2.PPD`, Verifikation: `podman exec printserver grep 'DefaultBRColorMode' /usr/share/cups/model/BR4150_2.PPD`,
`podman exec printserver lpoptions -p <queue> -l | grep BRColorMode`, `podman exec printserver lpoptions -p <queue> -l | grep BRColorMode`,
`podman logs printserver | grep 'ready'`. `podman logs printserver | grep 'ready'`.
- [ ] 3.2 Override-Pfad: Container mit `PRINTER_OPTIONS="BRColorMode=None"` - [x] 3.2 Override-Pfad: Container mit `PRINTER_OPTIONS="BRColorMode=None"`
starten → Queue-Default ist `None`; danach Testcontainer verwerfen. starten → Queue-Default ist `None`; danach Testcontainer verwerfen.
Verifikation: `podman exec printserver lpoptions -p <queue> | grep BRColorMode` Verifikation: `podman exec printserver2 lpoptions -p <queue> -l | grep BRColorMode`
enthält `BRColorMode=None`. zeigt `*None` (die ursprüngliche Form ohne `-l` beobachtet nur
IPP-Queue-Attribute, keine PPD-Optionen, und wurde korrigiert).
- [ ] 3.3 Physischer Farbtest (durch Nutzer, kein Automationspfad): Testdruck - [ ] 3.3 Physischer Farbtest (durch Nutzer, kein Automationspfad): Testdruck
über die Container-Queue mit Normal-Default — erwartet: identisch zu den über die Container-Queue mit Normal-Default — erwartet: identisch zu den
Ausdrucken vor/nach tpypxmkn, also weiterhin weniger gesättigt als der Ausdrucken vor/nach tpypxmkn, also weiterhin weniger gesättigt als der