QA@IT
«質問へ戻る

9
本文
       PrinterJob job = PrinterJob.getPrinterJob();
       Printable painter = new Printable() {
           public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) 
-                                                                        throws PrinterException {
+                                                                   throws PrinterException {
               if(pageIndex > 0){
                   return NO_SUCH_PAGE;
               }

Java7のdrawStringについて教えてください。

みなさまご教示下さい。

Windows7+Java7環境での動作についてです。以下のような印刷ロジックの場合、
BOLD指定した下2つの印字がJava5、Java6で印字したよりも横幅が大きくなってしまいます。
(Windows8.1+Java7も同様に大きくなってしまいます。)
これは仕様なのでしょうか?それともJavaの障害なのでしょうか?

恐れ入りますが、みなさまご教示下さい。よろしくお願い致します。

package sample;
import java.awt.print.*;
import java.awt.*;

public class Sample_005 {

public static void main(String[] args) {

  PrinterJob job = PrinterJob.getPrinterJob();
  Printable painter = new Printable() {
      public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) 
                                                               throws PrinterException {
          if(pageIndex > 0){
              return NO_SUCH_PAGE;
          }

        Graphics2D g = (Graphics2D) graphics;
        g.setColor(Color.GRAY);
        g.fillRect(200, 100, 200, 200);

        g.setColor(Color.BLACK);
        g.setFont(new Font("MS ゴシック",Font.PLAIN ,8));
        g.drawString("ABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFG",200, 100);


        g.setColor(Color.BLACK);
        g.setFont(new Font("MS ゴシック",Font.PLAIN ,8));
        g.drawString("12345678901234567890123456789012345678901234567890",200, 150);

        g.setColor(Color.BLACK);
        g.setFont(new Font("MS ゴシック",Font.BOLD ,8));
        g.drawString("ABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFG",200, 200);

        g.setColor(Color.BLACK);
        g.setFont(new Font("MS ゴシック",Font.BOLD ,8));
        g.drawString("12345678901234567890123456789012345678901234567890",200, 250);

        return PAGE_EXISTS;
      }
  };
  job.setPrintable(painter);

  boolean print = job.printDialog();
  if(print){
      try {
        job.print();
    }
    catch (PrinterException e) {
        e.printStackTrace();
    }
  }     

}

}
みなさまご教示下さい。

Windows7+Java7環境での動作についてです。以下のような印刷ロジックの場合、
BOLD指定した下2つの印字がJava5、Java6で印字したよりも横幅が大きくなってしまいます。
(Windows8.1+Java7も同様に大きくなってしまいます。)
これは仕様なのでしょうか?それともJavaの障害なのでしょうか?

恐れ入りますが、みなさまご教示下さい。よろしくお願い致します。

    package sample;
    import java.awt.print.*;
    import java.awt.*;

    public class Sample_005 {

    public static void main(String[] args) {

      PrinterJob job = PrinterJob.getPrinterJob();
      Printable painter = new Printable() {
          public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) 
                                                                   throws PrinterException {
              if(pageIndex > 0){
                  return NO_SUCH_PAGE;
              }
              
            Graphics2D g = (Graphics2D) graphics;
            g.setColor(Color.GRAY);
            g.fillRect(200, 100, 200, 200);

            g.setColor(Color.BLACK);
            g.setFont(new Font("MS ゴシック",Font.PLAIN ,8));
            g.drawString("ABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFG",200, 100);

            
            g.setColor(Color.BLACK);
            g.setFont(new Font("MS ゴシック",Font.PLAIN ,8));
            g.drawString("12345678901234567890123456789012345678901234567890",200, 150);

            g.setColor(Color.BLACK);
            g.setFont(new Font("MS ゴシック",Font.BOLD ,8));
            g.drawString("ABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFG",200, 200);

            g.setColor(Color.BLACK);
            g.setFont(new Font("MS ゴシック",Font.BOLD ,8));
            g.drawString("12345678901234567890123456789012345678901234567890",200, 250);
            
            return PAGE_EXISTS;
          }
      };
      job.setPrintable(painter);

      boolean print = job.printDialog();
      if(print){
          try {
            job.print();
        }
        catch (PrinterException e) {
            e.printStackTrace();
        }
      }     
      
    }
  
    }

9
本文
 
 恐れ入りますが、みなさまご教示下さい。よろしくお願い致します。
 
-     PrinterJob job = PrinterJob.getPrinterJob();
-     Printable painter = new Printable() {
+    package sample;
+    import java.awt.print.*;
+    import java.awt.*;
 
-     public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) 
-                                                                   throws PrinterException {
-            if(pageIndex > 0){
-               return NO_SUCH_PAGE;
-            }
+    public class Sample_005 {
+
+    public static void main(String[] args) {
+
+      PrinterJob job = PrinterJob.getPrinterJob();
+      Printable painter = new Printable() {
+          public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) 
+                                                                        throws PrinterException {
+              if(pageIndex > 0){
+                  return NO_SUCH_PAGE;
+              }
               
             Graphics2D g = (Graphics2D) graphics;
             g.setColor(Color.GRAY);
             g.setFont(new Font("MS ゴシック",Font.PLAIN ,8));
             g.drawString("ABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFG",200, 100);
 
+            
             g.setColor(Color.BLACK);
             g.setFont(new Font("MS ゴシック",Font.PLAIN ,8));
             g.drawString("12345678901234567890123456789012345678901234567890",200, 150);
             g.setColor(Color.BLACK);
             g.setFont(new Font("MS ゴシック",Font.BOLD ,8));
             g.drawString("12345678901234567890123456789012345678901234567890",200, 250);
-
-              return PAGE_EXISTS;
+            
+            return PAGE_EXISTS;
           }
       };
       job.setPrintable(painter);
       if(print){
           try {
             job.print();
-            
         }
         catch (PrinterException e) {
-            // TODO 自動生成された catch ブロック
             e.printStackTrace();
         }
       }     
       
+    }
+  
+    }

Java7のdrawStringについて教えてください。

みなさまご教示下さい。

Windows7+Java7環境での動作についてです。以下のような印刷ロジックの場合、
BOLD指定した下2つの印字がJava5、Java6で印字したよりも横幅が大きくなってしまいます。
(Windows8.1+Java7も同様に大きくなってしまいます。)
これは仕様なのでしょうか?それともJavaの障害なのでしょうか?

恐れ入りますが、みなさまご教示下さい。よろしくお願い致します。

package sample;
import java.awt.print.*;
import java.awt.*;

public class Sample_005 {

public static void main(String[] args) {

  PrinterJob job = PrinterJob.getPrinterJob();
  Printable painter = new Printable() {
      public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) 
                                                                    throws PrinterException {
          if(pageIndex > 0){
              return NO_SUCH_PAGE;
          }

        Graphics2D g = (Graphics2D) graphics;
        g.setColor(Color.GRAY);
        g.fillRect(200, 100, 200, 200);

        g.setColor(Color.BLACK);
        g.setFont(new Font("MS ゴシック",Font.PLAIN ,8));
        g.drawString("ABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFG",200, 100);


        g.setColor(Color.BLACK);
        g.setFont(new Font("MS ゴシック",Font.PLAIN ,8));
        g.drawString("12345678901234567890123456789012345678901234567890",200, 150);

        g.setColor(Color.BLACK);
        g.setFont(new Font("MS ゴシック",Font.BOLD ,8));
        g.drawString("ABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFG",200, 200);

        g.setColor(Color.BLACK);
        g.setFont(new Font("MS ゴシック",Font.BOLD ,8));
        g.drawString("12345678901234567890123456789012345678901234567890",200, 250);

        return PAGE_EXISTS;
      }
  };
  job.setPrintable(painter);

  boolean print = job.printDialog();
  if(print){
      try {
        job.print();
    }
    catch (PrinterException e) {
        e.printStackTrace();
    }
  }     

}

}
みなさまご教示下さい。

Windows7+Java7環境での動作についてです。以下のような印刷ロジックの場合、
BOLD指定した下2つの印字がJava5、Java6で印字したよりも横幅が大きくなってしまいます。
(Windows8.1+Java7も同様に大きくなってしまいます。)
これは仕様なのでしょうか?それともJavaの障害なのでしょうか?

恐れ入りますが、みなさまご教示下さい。よろしくお願い致します。

    package sample;
    import java.awt.print.*;
    import java.awt.*;

    public class Sample_005 {

    public static void main(String[] args) {

      PrinterJob job = PrinterJob.getPrinterJob();
      Printable painter = new Printable() {
          public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) 
                                                                        throws PrinterException {
              if(pageIndex > 0){
                  return NO_SUCH_PAGE;
              }
              
            Graphics2D g = (Graphics2D) graphics;
            g.setColor(Color.GRAY);
            g.fillRect(200, 100, 200, 200);

            g.setColor(Color.BLACK);
            g.setFont(new Font("MS ゴシック",Font.PLAIN ,8));
            g.drawString("ABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFG",200, 100);

            
            g.setColor(Color.BLACK);
            g.setFont(new Font("MS ゴシック",Font.PLAIN ,8));
            g.drawString("12345678901234567890123456789012345678901234567890",200, 150);

            g.setColor(Color.BLACK);
            g.setFont(new Font("MS ゴシック",Font.BOLD ,8));
            g.drawString("ABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFG",200, 200);

            g.setColor(Color.BLACK);
            g.setFont(new Font("MS ゴシック",Font.BOLD ,8));
            g.drawString("12345678901234567890123456789012345678901234567890",200, 250);
            
            return PAGE_EXISTS;
          }
      };
      job.setPrintable(painter);

      boolean print = job.printDialog();
      if(print){
          try {
            job.print();
        }
        catch (PrinterException e) {
            e.printStackTrace();
        }
      }     
      
    }
  
    }

9
本文
 
 恐れ入りますが、みなさまご教示下さい。よろしくお願い致します。
 
-PrinterJob job = PrinterJob.getPrinterJob();
-Printable painter = new Printable() {
+     PrinterJob job = PrinterJob.getPrinterJob();
+     Printable painter = new Printable() {
 
-public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
+     public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) 
+                                                                   throws PrinterException {
             if(pageIndex > 0){
                return NO_SUCH_PAGE;
             }

Java7のdrawStringについて教えてください。

みなさまご教示下さい。

Windows7+Java7環境での動作についてです。以下のような印刷ロジックの場合、
BOLD指定した下2つの印字がJava5、Java6で印字したよりも横幅が大きくなってしまいます。
(Windows8.1+Java7も同様に大きくなってしまいます。)
これは仕様なのでしょうか?それともJavaの障害なのでしょうか?

恐れ入りますが、みなさまご教示下さい。よろしくお願い致します。

 PrinterJob job = PrinterJob.getPrinterJob();
 Printable painter = new Printable() {

 public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) 
                                                               throws PrinterException {
        if(pageIndex > 0){
           return NO_SUCH_PAGE;
        }

        Graphics2D g = (Graphics2D) graphics;
        g.setColor(Color.GRAY);
        g.fillRect(200, 100, 200, 200);

        g.setColor(Color.BLACK);
        g.setFont(new Font("MS ゴシック",Font.PLAIN ,8));
        g.drawString("ABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFG",200, 100);

        g.setColor(Color.BLACK);
        g.setFont(new Font("MS ゴシック",Font.PLAIN ,8));
        g.drawString("12345678901234567890123456789012345678901234567890",200, 150);

        g.setColor(Color.BLACK);
        g.setFont(new Font("MS ゴシック",Font.BOLD ,8));
        g.drawString("ABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFG",200, 200);

        g.setColor(Color.BLACK);
        g.setFont(new Font("MS ゴシック",Font.BOLD ,8));
        g.drawString("12345678901234567890123456789012345678901234567890",200, 250);

          return PAGE_EXISTS;
      }
  };
  job.setPrintable(painter);

  boolean print = job.printDialog();
  if(print){
      try {
        job.print();

    }
    catch (PrinterException e) {
        // TODO 自動生成された catch ブロック
        e.printStackTrace();
    }
  }     
みなさまご教示下さい。

Windows7+Java7環境での動作についてです。以下のような印刷ロジックの場合、
BOLD指定した下2つの印字がJava5、Java6で印字したよりも横幅が大きくなってしまいます。
(Windows8.1+Java7も同様に大きくなってしまいます。)
これは仕様なのでしょうか?それともJavaの障害なのでしょうか?

恐れ入りますが、みなさまご教示下さい。よろしくお願い致します。

     PrinterJob job = PrinterJob.getPrinterJob();
     Printable painter = new Printable() {

     public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) 
                                                                   throws PrinterException {
            if(pageIndex > 0){
               return NO_SUCH_PAGE;
            }
              
            Graphics2D g = (Graphics2D) graphics;
            g.setColor(Color.GRAY);
            g.fillRect(200, 100, 200, 200);

            g.setColor(Color.BLACK);
            g.setFont(new Font("MS ゴシック",Font.PLAIN ,8));
            g.drawString("ABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFG",200, 100);

            g.setColor(Color.BLACK);
            g.setFont(new Font("MS ゴシック",Font.PLAIN ,8));
            g.drawString("12345678901234567890123456789012345678901234567890",200, 150);

            g.setColor(Color.BLACK);
            g.setFont(new Font("MS ゴシック",Font.BOLD ,8));
            g.drawString("ABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFG",200, 200);

            g.setColor(Color.BLACK);
            g.setFont(new Font("MS ゴシック",Font.BOLD ,8));
            g.drawString("12345678901234567890123456789012345678901234567890",200, 250);

              return PAGE_EXISTS;
          }
      };
      job.setPrintable(painter);

      boolean print = job.printDialog();
      if(print){
          try {
            job.print();
            
        }
        catch (PrinterException e) {
            // TODO 自動生成された catch ブロック
            e.printStackTrace();
        }
      }

9
本文
 
 恐れ入りますが、みなさまご教示下さい。よろしくお願い致します。
 
+PrinterJob job = PrinterJob.getPrinterJob();
+Printable painter = new Printable() {
 
-      PrinterJob job = PrinterJob.getPrinterJob();
-      Printable painter = new Printable() {
-      public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
-              if(pageIndex > 0){
-                  return NO_SUCH_PAGE;
-              }
+public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
+            if(pageIndex > 0){
+               return NO_SUCH_PAGE;
+            }
               
             Graphics2D g = (Graphics2D) graphics;
             g.setColor(Color.GRAY);

Java7のdrawStringについて教えてください。

みなさまご教示下さい。

Windows7+Java7環境での動作についてです。以下のような印刷ロジックの場合、
BOLD指定した下2つの印字がJava5、Java6で印字したよりも横幅が大きくなってしまいます。
(Windows8.1+Java7も同様に大きくなってしまいます。)
これは仕様なのでしょうか?それともJavaの障害なのでしょうか?

恐れ入りますが、みなさまご教示下さい。よろしくお願い致します。

PrinterJob job = PrinterJob.getPrinterJob();
Printable painter = new Printable() {

public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
if(pageIndex > 0){
return NO_SUCH_PAGE;
}

        Graphics2D g = (Graphics2D) graphics;
        g.setColor(Color.GRAY);
        g.fillRect(200, 100, 200, 200);

        g.setColor(Color.BLACK);
        g.setFont(new Font("MS ゴシック",Font.PLAIN ,8));
        g.drawString("ABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFG",200, 100);

        g.setColor(Color.BLACK);
        g.setFont(new Font("MS ゴシック",Font.PLAIN ,8));
        g.drawString("12345678901234567890123456789012345678901234567890",200, 150);

        g.setColor(Color.BLACK);
        g.setFont(new Font("MS ゴシック",Font.BOLD ,8));
        g.drawString("ABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFG",200, 200);

        g.setColor(Color.BLACK);
        g.setFont(new Font("MS ゴシック",Font.BOLD ,8));
        g.drawString("12345678901234567890123456789012345678901234567890",200, 250);

          return PAGE_EXISTS;
      }
  };
  job.setPrintable(painter);

  boolean print = job.printDialog();
  if(print){
      try {
        job.print();

    }
    catch (PrinterException e) {
        // TODO 自動生成された catch ブロック
        e.printStackTrace();
    }
  }     
みなさまご教示下さい。

Windows7+Java7環境での動作についてです。以下のような印刷ロジックの場合、
BOLD指定した下2つの印字がJava5、Java6で印字したよりも横幅が大きくなってしまいます。
(Windows8.1+Java7も同様に大きくなってしまいます。)
これは仕様なのでしょうか?それともJavaの障害なのでしょうか?

恐れ入りますが、みなさまご教示下さい。よろしくお願い致します。

PrinterJob job = PrinterJob.getPrinterJob();
Printable painter = new Printable() {

public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
            if(pageIndex > 0){
               return NO_SUCH_PAGE;
            }
              
            Graphics2D g = (Graphics2D) graphics;
            g.setColor(Color.GRAY);
            g.fillRect(200, 100, 200, 200);

            g.setColor(Color.BLACK);
            g.setFont(new Font("MS ゴシック",Font.PLAIN ,8));
            g.drawString("ABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFG",200, 100);

            g.setColor(Color.BLACK);
            g.setFont(new Font("MS ゴシック",Font.PLAIN ,8));
            g.drawString("12345678901234567890123456789012345678901234567890",200, 150);

            g.setColor(Color.BLACK);
            g.setFont(new Font("MS ゴシック",Font.BOLD ,8));
            g.drawString("ABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFG",200, 200);

            g.setColor(Color.BLACK);
            g.setFont(new Font("MS ゴシック",Font.BOLD ,8));
            g.drawString("12345678901234567890123456789012345678901234567890",200, 250);

              return PAGE_EXISTS;
          }
      };
      job.setPrintable(painter);

      boolean print = job.printDialog();
      if(print){
          try {
            job.print();
            
        }
        catch (PrinterException e) {
            // TODO 自動生成された catch ブロック
            e.printStackTrace();
        }
      }

9
本文
 
       PrinterJob job = PrinterJob.getPrinterJob();
       Printable painter = new Printable() {
-          public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
+      public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
               if(pageIndex > 0){
                   return NO_SUCH_PAGE;
               }
         }
       }     
       
-    }

Java7のdrawStringについて教えてください。

みなさまご教示下さい。

Windows7+Java7環境での動作についてです。以下のような印刷ロジックの場合、
BOLD指定した下2つの印字がJava5、Java6で印字したよりも横幅が大きくなってしまいます。
(Windows8.1+Java7も同様に大きくなってしまいます。)
これは仕様なのでしょうか?それともJavaの障害なのでしょうか?

恐れ入りますが、みなさまご教示下さい。よろしくお願い致します。

  PrinterJob job = PrinterJob.getPrinterJob();
  Printable painter = new Printable() {
  public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
          if(pageIndex > 0){
              return NO_SUCH_PAGE;
          }

        Graphics2D g = (Graphics2D) graphics;
        g.setColor(Color.GRAY);
        g.fillRect(200, 100, 200, 200);

        g.setColor(Color.BLACK);
        g.setFont(new Font("MS ゴシック",Font.PLAIN ,8));
        g.drawString("ABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFG",200, 100);

        g.setColor(Color.BLACK);
        g.setFont(new Font("MS ゴシック",Font.PLAIN ,8));
        g.drawString("12345678901234567890123456789012345678901234567890",200, 150);

        g.setColor(Color.BLACK);
        g.setFont(new Font("MS ゴシック",Font.BOLD ,8));
        g.drawString("ABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFG",200, 200);

        g.setColor(Color.BLACK);
        g.setFont(new Font("MS ゴシック",Font.BOLD ,8));
        g.drawString("12345678901234567890123456789012345678901234567890",200, 250);

          return PAGE_EXISTS;
      }
  };
  job.setPrintable(painter);

  boolean print = job.printDialog();
  if(print){
      try {
        job.print();

    }
    catch (PrinterException e) {
        // TODO 自動生成された catch ブロック
        e.printStackTrace();
    }
  }     
みなさまご教示下さい。

Windows7+Java7環境での動作についてです。以下のような印刷ロジックの場合、
BOLD指定した下2つの印字がJava5、Java6で印字したよりも横幅が大きくなってしまいます。
(Windows8.1+Java7も同様に大きくなってしまいます。)
これは仕様なのでしょうか?それともJavaの障害なのでしょうか?

恐れ入りますが、みなさまご教示下さい。よろしくお願い致します。


      PrinterJob job = PrinterJob.getPrinterJob();
      Printable painter = new Printable() {
      public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
              if(pageIndex > 0){
                  return NO_SUCH_PAGE;
              }
              
            Graphics2D g = (Graphics2D) graphics;
            g.setColor(Color.GRAY);
            g.fillRect(200, 100, 200, 200);

            g.setColor(Color.BLACK);
            g.setFont(new Font("MS ゴシック",Font.PLAIN ,8));
            g.drawString("ABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFG",200, 100);

            g.setColor(Color.BLACK);
            g.setFont(new Font("MS ゴシック",Font.PLAIN ,8));
            g.drawString("12345678901234567890123456789012345678901234567890",200, 150);

            g.setColor(Color.BLACK);
            g.setFont(new Font("MS ゴシック",Font.BOLD ,8));
            g.drawString("ABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFG",200, 200);

            g.setColor(Color.BLACK);
            g.setFont(new Font("MS ゴシック",Font.BOLD ,8));
            g.drawString("12345678901234567890123456789012345678901234567890",200, 250);

              return PAGE_EXISTS;
          }
      };
      job.setPrintable(painter);

      boolean print = job.printDialog();
      if(print){
          try {
            job.print();
            
        }
        catch (PrinterException e) {
            // TODO 自動生成された catch ブロック
            e.printStackTrace();
        }
      }

質問を投稿

Java7のdrawStringについて教えてください。

みなさまご教示下さい。

Windows7+Java7環境での動作についてです。以下のような印刷ロジックの場合、
BOLD指定した下2つの印字がJava5、Java6で印字したよりも横幅が大きくなってしまいます。
(Windows8.1+Java7も同様に大きくなってしまいます。)
これは仕様なのでしょうか?それともJavaの障害なのでしょうか?

恐れ入りますが、みなさまご教示下さい。よろしくお願い致します。

  PrinterJob job = PrinterJob.getPrinterJob();
  Printable painter = new Printable() {
      public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
          if(pageIndex > 0){
              return NO_SUCH_PAGE;
          }

        Graphics2D g = (Graphics2D) graphics;
        g.setColor(Color.GRAY);
        g.fillRect(200, 100, 200, 200);

        g.setColor(Color.BLACK);
        g.setFont(new Font("MS ゴシック",Font.PLAIN ,8));
        g.drawString("ABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFG",200, 100);

        g.setColor(Color.BLACK);
        g.setFont(new Font("MS ゴシック",Font.PLAIN ,8));
        g.drawString("12345678901234567890123456789012345678901234567890",200, 150);

        g.setColor(Color.BLACK);
        g.setFont(new Font("MS ゴシック",Font.BOLD ,8));
        g.drawString("ABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFG",200, 200);

        g.setColor(Color.BLACK);
        g.setFont(new Font("MS ゴシック",Font.BOLD ,8));
        g.drawString("12345678901234567890123456789012345678901234567890",200, 250);

          return PAGE_EXISTS;
      }
  };
  job.setPrintable(painter);

  boolean print = job.printDialog();
  if(print){
      try {
        job.print();

    }
    catch (PrinterException e) {
        // TODO 自動生成された catch ブロック
        e.printStackTrace();
    }
  }     

}
みなさまご教示下さい。

Windows7+Java7環境での動作についてです。以下のような印刷ロジックの場合、
BOLD指定した下2つの印字がJava5、Java6で印字したよりも横幅が大きくなってしまいます。
(Windows8.1+Java7も同様に大きくなってしまいます。)
これは仕様なのでしょうか?それともJavaの障害なのでしょうか?

恐れ入りますが、みなさまご教示下さい。よろしくお願い致します。


      PrinterJob job = PrinterJob.getPrinterJob();
      Printable painter = new Printable() {
          public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
              if(pageIndex > 0){
                  return NO_SUCH_PAGE;
              }
              
            Graphics2D g = (Graphics2D) graphics;
            g.setColor(Color.GRAY);
            g.fillRect(200, 100, 200, 200);

            g.setColor(Color.BLACK);
            g.setFont(new Font("MS ゴシック",Font.PLAIN ,8));
            g.drawString("ABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFG",200, 100);

            g.setColor(Color.BLACK);
            g.setFont(new Font("MS ゴシック",Font.PLAIN ,8));
            g.drawString("12345678901234567890123456789012345678901234567890",200, 150);

            g.setColor(Color.BLACK);
            g.setFont(new Font("MS ゴシック",Font.BOLD ,8));
            g.drawString("ABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFG",200, 200);

            g.setColor(Color.BLACK);
            g.setFont(new Font("MS ゴシック",Font.BOLD ,8));
            g.drawString("12345678901234567890123456789012345678901234567890",200, 250);

              return PAGE_EXISTS;
          }
      };
      job.setPrintable(painter);

      boolean print = job.printDialog();
      if(print){
          try {
            job.print();
            
        }
        catch (PrinterException e) {
            // TODO 自動生成された catch ブロック
            e.printStackTrace();
        }
      }     
      
    }