Inquiry about PrintDialog Properties button behavior on Linux (JDK-8246742)
David Holmes
david.holmes at oracle.com
Fri Mar 21 06:44:21 UTC 2025
Hi,
This is probably better directed to the client-libs-dev at openjdk.org
mailing list.
Regards,
David
On 21/03/2025 4:20 pm, last last wrote:
> *Dear OpenJDK Community,*
>
> I'm writing regarding an observation about the PrintDialog's Properties
> button behavior on Linux platforms. On my Ubuntu 20.04 system (OpenJDK
> version: 17), I noticed that the Properties button in the print dialog
> remains disabled.
>
> Through previous research, I found this is documented in JDK-8246742
> ("Disable Properties button in PrintDialog for Unixes and Mac"). The
> ticket suggests this behavior was intentionally implemented.
>
> But from a user perspective, this disabled state raises some concerns:
>
> 1. 1.Users familiar with Windows implementation may find this inconsistent
> 2. 2.Prevents access to printer-specific options that might otherwise
> be configurable
> 3. 3.Could be confusing for applications relying on this functionality
>
> Reproducer:
> import java.awt.*;
> import java.awt.print.*;
>
> public class PrintDialogExample implements Printable {
>
> public static void main(String[] args) {
> // 创建 PrinterJob 对象
> PrinterJob printerJob = PrinterJob.getPrinterJob();
>
> // 设置打印内容
> printerJob.setPrintable(new PrintDialogExample());
>
> // 显示打印对话框
> if (printerJob.printDialog()) {
> try {
> // 执行打印任务
> printerJob.print();
> System.out.println("Printing complete.");
> } catch (PrinterException e) {
> e.printStackTrace();
> }
> } else {
> System.out.println("Printing cancelled.");
> }
> }
>
> @Override
> public int print(Graphics graphics, PageFormat pageFormat, int
> pageIndex) throws PrinterException {
> // 只打印第一页
> if (pageIndex > 0) {
> return Printable.NO_SUCH_PAGE;
> }
>
> // 将 Graphics 对象转换为 Graphics2D
> Graphics2D g2d = (Graphics2D) graphics;
>
> // 设置字体和颜色
> g2d.setFont(new Font("Serif", Font.PLAIN, 12));
> g2d.setColor(Color.BLACK);
>
> // 打印文本
> String text = "Hello, this is a test print job!";
> g2d.drawString(text, 100, 100);
>
> // 返回打印成功
> return Printable.PAGE_EXISTS;
> }
> }
>
> I'd like to inquire:
>
> 1. 1.Is this considered an accepted platform behavior difference?
> 2. 2.Are there any plans to implement native printer property support
> for Linux/MacOS?
> 3. 3.Would there be value in creating a feature request for this
> capability?
>
> Additional environment details:
>
> * Desktop Environment: GNOME [3.34.3-0ubuntu1 ]
> * Default Print System: CUPS [2.3.1-9ubuntu1.4]
>
> Thank you for your insights. I'm happy to provide further testing
> support if needed.
>
More information about the jdk-dev
mailing list