- 本文
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(); } } } }