|
阅读:1460回复:9
打印程序打出一个黑乎乎的东西!!
实际上,没那么吓人,不知道为什么,它打出了一个黑的边框
在打印的内容里没有任何东西可以产生这个边框的 而且有个现象是: 用a3的纸,打没有那么大的东西也会出一个a3那么大的黑边框 这是啥原因?。。 同一个打印机,用excel打印的时候又没有那个边框 程序 Java 1.5 打印机: hp 1180c 纸张:a3 |
|
|
|
1C#
发布于:2006-03-17 17:11
Re:打印程序打出一个黑乎乎的东西!!
俺的第6666帖。。。希望能给偶解决问题帖代码鸟这是打印预览,点一下打印就能出打印的那个东西,有什么打印机选择的,不是重点import java.awt.BorderLayout;import java.awt.Dimension;import java.awt.Toolkit;im.. g2.draw(new Rectangle2D.Double(0, 0, pf.getImageableWidth(), pf .getImageableHeight())); 这一行是不是画一个方框的函数?我瞎猜的 |
|
|
|
2C#
发布于:2006-03-14 20:21
Re:打印程序打出一个黑乎乎的东西!!
调试时用的吧 |
|
|
|
3C#
发布于:2006-03-14 14:20
Re:打印程序打出一个黑乎乎的东西!!
我晕。。。啥时候写的这一行!!! 去掉就没事了 |
|
|
|
4C#
发布于:2006-03-14 13:33
Re:打印程序打出一个黑乎乎的东西!!
俺的第6666帖。。。希望能给偶解决问题
帖代码鸟 这是打印预览,点一下打印就能出打印的那个东西,有什么打印机选择的,不是重点 import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import cn.osdn.mr0.print.controller.GUIController;
import cn.osdn.mr0.print.model.Certificate;
/**
* 打印预览窗口
* @author m(_O_)m
*
*/
public class PreviewFrame extends JFrame {
private PrintPreview preview;
private PrintRequestAttributeSet attributes;
public PreviewFrame(Certificate certificate) {
super("打印预览");
preview = new PrintPreview(certificate);
add(preview, BorderLayout.CENTER);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
/*
* 窗口居中
*/
int width = 800;
int height = 610;
this.setLocation(screenSize.width / 2 - width / 2, screenSize.height
/ 2 - height / 2);
this.setSize(width, height);
attributes = new HashPrintRequestAttributeSet();
JPanel buttonPanel = new JPanel();
JButton printButton = new JButton("打印");
printButton.setName("button.print");
buttonPanel.add(printButton);
printButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
try {
GUIController.setLookAndFeel(GUIController.systemLAF);
PrinterJob job = PrinterJob.getPrinterJob();
job.setPrintable(preview);
if (job.printDialog(attributes))
job.print(attributes);
} catch (PrinterException e) {
JOptionPane.showMessageDialog(PreviewFrame.this, e);
}
}
});
JButton pageSetupButton = new JButton("页面设置");
pageSetupButton.setName("button.pageSetup");
buttonPanel.add(pageSetupButton);
pageSetupButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
GUIController.setLookAndFeel(GUIController.systemLAF);
PrinterJob job = PrinterJob.getPrinterJob();
job.pageDialog(attributes);
}
});
add(buttonPanel, BorderLayout.NORTH);
}
}
这里就是要打印的内容了 /**
按下打印控件的时候应该就调用这里,执行打印功能
*/
public int print(Graphics g, PageFormat pf, int page)
throws PrinterException {
if (page >= 1)
return Printable.NO_SUCH_PAGE;
Graphics2D g2 = (Graphics2D) g;
g2.translate(pf.getImageableX(), pf.getImageableY());
g2.draw(new Rectangle2D.Double(0, 0, pf.getImageableWidth(), pf
.getImageableHeight()));
drawPrintItems(g2);
return Printable.PAGE_EXISTS;
}
/**
* Draw Print items to page
* @param g2
*/
public void drawPrintItems(Graphics2D g2) {
g2.setPaint(Color.BLACK);
g2.setFont(new Font("Serif", Font.PLAIN, 20));
PrintConfig printConf = null;
if (certificate.isMainCard()) {
printConf = new PrintConfig(PrintConfig.MAIN);
} else if (certificate.isSubCard()) {
printConf = new PrintConfig(PrintConfig.SUB);
}
g2.drawString(certificate.getCertificateNumber(), printConf.getNumber()
.getX(), printConf.getNumber().getY());
/* ....... 打印的内容,都是些其它的数据,和上面一样~~*/
} |
|
|
|
5C#
发布于:2006-03-14 13:12
Re:打印程序打出一个黑乎乎的东西!!
这个不模糊了吧,打印出来就这效果。 调调面边距,那个边框就变了 奇怪的是,那个打印控件里页边距不能随便调,不能调到0 |
|
|
|
6C#
发布于:2006-03-14 12:58
Re:打印程序打出一个黑乎乎的东西!!
1、人品问题
2、机品问题 |
|
|
|
7C#
发布于:2006-03-14 12:58
Re:打印程序打出一个黑乎乎的东西!!
模糊……
只能告诉你和打印驱动无关,找打印控件的问题吧,也许就是打印设置参数的问题 |
|
|
|
8C#
发布于:2006-03-14 12:23
Re:打印程序打出一个黑乎乎的东西!!
选a4的纸就打a4的框框。。 |
|
|
|
9C#
发布于:2006-03-14 12:23
Re:打印程序打出一个黑乎乎的东西!!
测试发现打印的东西好像是“页面范围”一样的,调整页边距,那个框就变了 |
|
|