-
Bug
-
Resolution: Duplicate
-
P3
-
None
-
7
FULL PRODUCT VERSION :
A DESCRIPTION OF THE PROBLEM :
I have a problem in printing to any printers. It working properly at java 6 but trying to print at java 7; the characters are overlapping to next character.
REGRESSION. Last worked in version 7u21
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Here is the test case .
import java.awt.*;
import java.awt.event.*;
import java.awt.font.*;
import java.awt.geom.*;
import java.awt.print.*;
import java.util.*;
import javax.swing.*;
public class PrintTest {
public static void main(String[] args) {
new PrintTestFrame().setVisible(true);
}
}
class PrintTestFrame extends JFrame implements ActionListener {
public PrintTestFrame() {
setTitle( " PrintTest " );
setSize(350, 300);
setDefaultCloseOperation(PrintTestFrame.EXIT_ON_CLOSE);
Container contentPane = getContentPane();
canvas = new PrintPanel();
contentPane.add(canvas, " Center " );
JPanel buttonPanel = new JPanel();
printButton = new JButton( " Print " );
buttonPanel.add(printButton);
printButton.addActionListener(this);
contentPane.add(buttonPanel, " North " );
}
public void actionPerformed(ActionEvent event) {
Object source = event.getSource();
if (source == printButton) {
PrinterJob printJob = PrinterJob.getPrinterJob();
PageFormat pageFormat = printJob.defaultPage();
printJob.setPrintable(canvas, pageFormat);
if (printJob.printDialog()) {
try {
printJob.print();
} catch (PrinterException exception) {
JOptionPane.showMessageDialog(this, exception);
}
}
}
}
private JButton printButton;
private PrintPanel canvas;
}
class PrintPanel extends JPanel implements Printable {
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
drawPage(g2);
}
public int print(Graphics g, PageFormat pf, int page)
throws PrinterException {
if (page >= 1)
return Printable.NO_SUCH_PAGE;
Graphics2D g2 = (Graphics2D) g;
g2.setPaint(Color.black);
g2.translate(pf.getImageableX(), pf.getImageableY());
g2.draw(new Rectangle2D.Double(0, 0, pf.getImageableWidth(), pf
.getImageableHeight()));
drawPage(g2);
return Printable.PAGE_EXISTS;
}
public void drawPage(Graphics2D g2) {
Font f = new Font(Font.DIALOG, Font.PLAIN, 12);
g2.setFont(f);
g2.drawString( " 100094 ?? ?? ??? ??????68?????? " , 10, 10);
}
}
REPRODUCIBILITY :
This bug can be reproduced always.
A DESCRIPTION OF THE PROBLEM :
I have a problem in printing to any printers. It working properly at java 6 but trying to print at java 7; the characters are overlapping to next character.
REGRESSION. Last worked in version 7u21
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Here is the test case .
import java.awt.*;
import java.awt.event.*;
import java.awt.font.*;
import java.awt.geom.*;
import java.awt.print.*;
import java.util.*;
import javax.swing.*;
public class PrintTest {
public static void main(String[] args) {
new PrintTestFrame().setVisible(true);
}
}
class PrintTestFrame extends JFrame implements ActionListener {
public PrintTestFrame() {
setTitle( " PrintTest " );
setSize(350, 300);
setDefaultCloseOperation(PrintTestFrame.EXIT_ON_CLOSE);
Container contentPane = getContentPane();
canvas = new PrintPanel();
contentPane.add(canvas, " Center " );
JPanel buttonPanel = new JPanel();
printButton = new JButton( " Print " );
buttonPanel.add(printButton);
printButton.addActionListener(this);
contentPane.add(buttonPanel, " North " );
}
public void actionPerformed(ActionEvent event) {
Object source = event.getSource();
if (source == printButton) {
PrinterJob printJob = PrinterJob.getPrinterJob();
PageFormat pageFormat = printJob.defaultPage();
printJob.setPrintable(canvas, pageFormat);
if (printJob.printDialog()) {
try {
printJob.print();
} catch (PrinterException exception) {
JOptionPane.showMessageDialog(this, exception);
}
}
}
}
private JButton printButton;
private PrintPanel canvas;
}
class PrintPanel extends JPanel implements Printable {
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
drawPage(g2);
}
public int print(Graphics g, PageFormat pf, int page)
throws PrinterException {
if (page >= 1)
return Printable.NO_SUCH_PAGE;
Graphics2D g2 = (Graphics2D) g;
g2.setPaint(Color.black);
g2.translate(pf.getImageableX(), pf.getImageableY());
g2.draw(new Rectangle2D.Double(0, 0, pf.getImageableWidth(), pf
.getImageableHeight()));
drawPage(g2);
return Printable.PAGE_EXISTS;
}
public void drawPage(Graphics2D g2) {
Font f = new Font(Font.DIALOG, Font.PLAIN, 12);
g2.setFont(f);
g2.drawString( " 100094 ?? ?? ??? ??????68?????? " , 10, 10);
}
}
REPRODUCIBILITY :
This bug can be reproduced always.
- duplicates
-
JDK-8008535 JDK7 Printing : CJK and Latin Text in a string overlap.
-
- Closed
-
-
JDK-8008535 JDK7 Printing : CJK and Latin Text in a string overlap.
-
- Closed
-