开始打印工作之前,可以通过PrinterJob.printDialog来显示一个打印对话框。它给用户一个机会以选择应该打印的页码范围,并可供用户改变打印设置。它是一个本地对话框。
解决方案 »
- 下面这个程序哪里有错误?
- java做个小系统,请给些建议
- 请教..关于线程与垃圾回收
- 送分了,关于java -jar classpath的小问题。
- *急呀!!*用jdbc:inetdae7:localhost的驱动,怎样解决"Too many connections"问题??
- 菜鸟的问题
- 如何取出ResultSet中的数据?
- ●●●●(再线等待)在appelt中可否象html一样用table生成表格,然后把各种组件放到里面(单文框,多文本框,按钮,下拉菜单等),这样
- jar 的异常!帮忙一起研究研究
- maven编译错误,请高手帮帮忙
- 关于FileInputStream.available()
- 哪里能下到sun的jdbc-odbc driver??
谢谢!但我要做的就是要不出现任何对话框的情况下(preview,page setup ,printer set up)的情况下,实现指定的打印效果
1.我要打的是两个文件,test.gif,test.txt
2.我要打的东西只有一页(这两个文件的内容肯定能在一张A4纸上打得下,这是由我的应用决定的)
3.打印时上边和左边都是靠边的,即上边距和左边距均<1mm
4.要能打印多国文字(test.txt中的内容)
http://www.javaresearch.org/article/showarticle.jsp?column=451&thread=9145
这个例子不能实现我要的效果
1.不能将两个文件的内容打在同一张纸上
2.上边距和左边距均>1mm
刚工作,又是初学java,
饭碗攸关,高手帮忙呀!
:(
不过我可以帮你找找资料,这两天白天忙,我回家帮你看看
可以解决页边距<1mm的问题,
打印图片和文本的还没解决
public int print(Graphics g, PageFormat pageFormat, int pageIndex) {
//int i;
Graphics2D g2d;
//Line2D.Double line = new Line2D.Double ();
//--- Create a graphic2D object a set the default parameters
g2d = (Graphics2D) g;
//--- Set the drawing color to black
g2d.setColor (Color.black);
g2d.setStroke (new BasicStroke ((float)0.5));
//--- Translate the origin to be (0,0)
g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY()); //--- Validate the page number
if (pageIndex == 0) {
printout(g2d);
return (PAGE_EXISTS);
}else{
return (NO_SUCH_PAGE);
}
}private printout(Graphics2D g){
g.drawImage();//具体你自己看着办吧
g.drawString();//具体你自己看着办吧}然后再printJob.print();的时候就会将Image和文件内容打印出来了
public void printOutWithAlertFlag(boolean alertFlag) {
//--- Create a printerJob object
PrinterJob printJob = PrinterJob.getPrinterJob(); PageFormat pageFormat = printJob.defaultPage();
Paper paper = new Paper();
paper.setSize(this.A4_PAPER_WIDTH,this.A4_PAPER_HEIGHT);
paper.setImageableArea(this.A4_IMAGEABLE_AREA_X
,this.A4_IMAGEABLE_AREA_Y
,this.A4_IMAGEABLE_AREA_WIDTH
,this.A4_IMAGEABLE_AREA_HEIGHT
);
pageFormat.setPaper(paper);
pageFormat.setOrientation(PageFormat.LANDSCAPE); printJob.setPrintable (this,pageFormat); if(alertFlag){
if (printJob.printDialog()) {
try {
printJob.print();
} catch (PrinterException pe) {
pe.printStackTrace();
}
}
}else{
try {
printJob.print();
} catch (PrinterException pe) {
pe.printStackTrace();
}
}
}
其实要打一点东西出来很容易,网上有几个例子,书上也有
但是要打的和自己想要得一样就不太容易了
这个问题,我也没有很好解决,但能打出来了
明天回家!
过年了,大家接分快乐!