RFR: 8314070: javax.print: Support IPP output-bin attribute extension [v15]
Alexander Scherbatiy
alexsch at openjdk.org
Tue May 28 16:47:21 UTC 2024
> The fix adds new public `OutputBin` print attribute class which allow to set a printer output bin in a `PrinterJob` class. The corresponding internal `CustomOutputBin` class is added as well.
>
> - Constants used in `OutputBin` class are based on [Internet Printing Protocol (IPP): “output-bin” attribute extension](https://ftp.pwg.org/pub/pwg/candidates/cs-ippoutputbin10-20010207-5100.2.pdf) document.
> - `CUPSPrinter.getOutputBins(String printer)` method uses PPD `ppdFindOption(..., "OutputBin")` function to get supported output bins for the given printer on native level.
> - The fix propagates the `OutputBin` attribute from the printer job attributes to `NSPrintInfo` print settings with `OutputBin` key on macOS.
>
> The fix was tested on `Kyocera ECOSYS M8130cidn` printer where `ppdFindOption(..., "OutputBin")` call returns 4 output bins (text, choice):
> - Printer settings, None
> - Inner tray, INNERTRAY
> - Separator tray, SEPARATORTRAY
> - Finisher (face-down), Main
>
> if `Printer settings`, `Inner tray`, or `Finisher (face-down)` CustomOutputBins is set to `PrinterJob.print(...)` attributes a test page is printed to the Main tray of the `Kyocera ECOSYS M8130cidn` printer. If `Separator tray` is used a page is printed to the Separator tray. This is consistent with the printer behavior when a native print dialog is used from a native Preview app to print a document on macOS.
Alexander Scherbatiy has updated the pull request incrementally with four additional commits since the last revision:
- Move OutputBin import before PageRanges in RasterPrinterJob
- Add item listener to cbOutput only if the cbOutput is enabled
- Add messages if no print service is found or OutputBin category is not supported
- Move OutputBin import before PageRanges in CPrinterJob.java
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/16166/files
- new: https://git.openjdk.org/jdk/pull/16166/files/c3034f37..c3d3295e
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=16166&range=14
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=16166&range=13-14
Stats: 43 lines in 5 files changed: 23 ins; 4 del; 16 mod
Patch: https://git.openjdk.org/jdk/pull/16166.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/16166/head:pull/16166
PR: https://git.openjdk.org/jdk/pull/16166
More information about the client-libs-dev
mailing list