diff --git a/jdk/src/share/classes/sun/print/PSPrinterJob.java b/jdk/src/share/classes/sun/print/PSPrinterJob.java index c4bcc23aa02..30777b3cefe 100644 --- a/jdk/src/share/classes/sun/print/PSPrinterJob.java +++ b/jdk/src/share/classes/sun/print/PSPrinterJob.java @@ -339,6 +339,8 @@ public class PSPrinterJob extends RasterPrinterJob { */ private static Properties mFontProps = null; + private static boolean isMac; + /* Class static initialiser block */ static { //enable priviledges so initProps can access system properties, @@ -347,6 +349,8 @@ public class PSPrinterJob extends RasterPrinterJob { new java.security.PrivilegedAction() { public Object run() { mFontProps = initProps(); + String osName = System.getProperty("os.name"); + isMac = osName.startsWith("Mac"); return null; } }); @@ -473,6 +477,12 @@ public class PSPrinterJob extends RasterPrinterJob { PrintService pServ = getPrintService(); if (pServ != null) { mDestination = pServ.getName(); + if (isMac) { + PrintServiceAttributeSet psaSet = pServ.getAttributes() ; + if (psaSet != null) { + mDestination = psaSet.get(PrinterName.class).toString(); + } + } } } } @@ -771,6 +781,12 @@ public class PSPrinterJob extends RasterPrinterJob { PrintService pServ = getPrintService(); if (pServ != null) { mDestination = pServ.getName(); + if (isMac) { + PrintServiceAttributeSet psaSet = pServ.getAttributes(); + if (psaSet != null) { + mDestination = psaSet.get(PrinterName.class).toString() ; + } + } } PrinterSpooler spooler = new PrinterSpooler(); java.security.AccessController.doPrivileged(spooler);