src/java.desktop/share/classes/sun/print/PSPrinterJob.java

Print this page

        

@@ -44,10 +44,11 @@
 import java.awt.geom.PathIterator;
 import java.awt.geom.Rectangle2D;
 
 import java.awt.image.BufferedImage;
 
+import java.awt.peer.FontPeer;
 import java.awt.print.Pageable;
 import java.awt.print.PageFormat;
 import java.awt.print.Paper;
 import java.awt.print.Printable;
 import java.awt.print.PrinterException;

@@ -91,10 +92,11 @@
 import sun.awt.CharsetString;
 import sun.awt.FontConfiguration;
 import sun.awt.FontDescriptor;
 import sun.awt.PlatformFont;
 import sun.awt.SunToolkit;
+import sun.font.FontAccess;
 import sun.font.FontManagerFactory;
 import sun.font.FontUtilities;
 
 import java.nio.charset.*;
 import java.nio.CharBuffer;

@@ -1212,26 +1214,25 @@
 
     /* return of 0 means unsupported. Other return indicates the number
      * of distinct PS fonts needed to draw this text. This saves us
      * doing this processing one extra time.
      */
-    @SuppressWarnings("deprecation")
     protected int platformFontCount(Font font, String str) {
         if (mFontProps == null) {
             return 0;
         }
-        CharsetString[] acs =
-            ((PlatformFont)(font.getPeer())).makeMultiCharsetString(str,false);
+        PlatformFont peer = (PlatformFont) FontAccess.getFontAccess()
+                                                     .getFontPeer(font);
+        CharsetString[] acs = peer.makeMultiCharsetString(str, false);
         if (acs == null) {
             /* AWT can't convert all chars so use 2D path */
             return 0;
         }
         int[] psFonts = getPSFontIndexArray(font, acs);
         return (psFonts == null) ? 0 : psFonts.length;
     }
 
-    @SuppressWarnings("deprecation")
      protected boolean textOut(Graphics g, String str, float x, float y,
                                Font mLastFont, FontRenderContext frc,
                                float width) {
         boolean didText = true;
 

@@ -1252,13 +1253,13 @@
              */
             str = removeControlChars(str);
             if (str.length() == 0) {
                 return true;
             }
-            CharsetString[] acs =
-                ((PlatformFont)
-                 (mLastFont.getPeer())).makeMultiCharsetString(str, false);
+            PlatformFont peer = (PlatformFont) FontAccess.getFontAccess()
+                                                         .getFontPeer(mLastFont);
+            CharsetString[] acs = peer.makeMultiCharsetString(str, false);
             if (acs == null) {
                 /* AWT can't convert all chars so use 2D path */
                 return false;
             }
             /* Get an array of indices into our PostScript name