大出血!!放分100(小弟的最大承受能力!!速求java打印混合文件(包含文本和图形))谢谢啊! 是报告就用JReport,其他的普通打印,图形和文本事一样处理的。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 虽然没有用过,但是看了O'reilly的JFC后知道,其实很简单阿,打印就和在画布上画画和写字一样啊:以下是主要打印的回调部分,实现大部分打印工作public int print(Graphics g,PageFormat format,int pagenum) { ...省略判断页数和字体基线定义 //清除背景为白色 g.setColor(Color.white); g.gillRect((int)format.getImageableX(),(int)format.getImageableY(), (int)format.getImageableWidth(),(int)foramt.getImageableHeight()); //设置字体颜色 g.setFont(font) g.setColor(Color.black); g.drawString("xxxx",x,y); g.draw(new Rectangle2D.Double(x,y,rectWidth,rectHeight)); 等等,随便怎么都可以了 return PAGE_EXISTS;} 试试如下代码import javax.print.*;import javax.print.attribute.*;import javax.print.attribute.standard.*;import java.io.*;public class PrintFileTest{ public static String TMP_FILE="C:\\172.gif"; public static void main(String[] args){ String filename = TMP_FILE; PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet(); DocFlavor flavor = DocFlavor.INPUT_STREAM.GIF; PrintService printService[] = PrintServiceLookup.lookupPrintServices(flavor, pras); PrintService defaultService = PrintServiceLookup.lookupDefaultPrintService(); PrintService service = ServiceUI.printDialog(null, 200, 200,printService, defaultService, flavor, pras); if (service != null) { try { DocPrintJob job = service.createPrintJob(); FileInputStream fis = new FileInputStream(filename); DocAttributeSet das = new HashDocAttributeSet(); Doc doc = new SimpleDoc(fis, flavor, das); job.print(doc, pras); // Thread.sleep(10000); }catch(Exception e) { e.printStackTrace(); } } System.exit(0); }}下面是的PDF是Java中那两个打印包的用法,还有例子,大家可以下下来看看。http://java.sun.com/j2se/1.4.2/pdf/JPS_PDF.pdf 最好的方法就是将JTextPane里的内容打印出来,打印包都是要用钱买的关注一下 同意CoolAbu(阿卜-Never Stop(★★★★)) 的。 同意CoolAbu(阿卜-Never Stop(★★★★)) 的观点不妨试一试 几个数据库查查询语句问题 正则表达式表示指定的时间格式 两个double类型的变量相加产生的怪现象 如何用JAVA实现数字转换为大写? 并行下载上传时进度条显示 我用jdbc连接db2插入clob字段结果抛出这样的异常 如何将类似0.5浮点数转换5.000E-1? dijkstra算法出问题了,求指教! 有谁知道将JTable设为只读的函数? 找出其中的5个问题 简易的计算程序 学习lucene源码的疑问11111111111111111111111111
public int print(Graphics g,PageFormat format,int pagenum) { ...省略判断页数和字体基线定义
//清除背景为白色
g.setColor(Color.white);
g.gillRect((int)format.getImageableX(),(int)format.getImageableY(),
(int)format.getImageableWidth(),(int)foramt.getImageableHeight());
//设置字体颜色
g.setFont(font)
g.setColor(Color.black);
g.drawString("xxxx",x,y);
g.draw(new Rectangle2D.Double(x,y,rectWidth,rectHeight));
等等,随便怎么都可以了
return PAGE_EXISTS;
}
import javax.print.*;
import javax.print.attribute.*;
import javax.print.attribute.standard.*;
import java.io.*;public class PrintFileTest{ public static String TMP_FILE="C:\\172.gif";
public static void main(String[] args){
String filename = TMP_FILE;
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
DocFlavor flavor = DocFlavor.INPUT_STREAM.GIF;
PrintService printService[] = PrintServiceLookup.lookupPrintServices(flavor, pras);
PrintService defaultService = PrintServiceLookup.lookupDefaultPrintService();
PrintService service = ServiceUI.printDialog(null, 200, 200,printService, defaultService, flavor, pras);
if (service != null) {
try
{
DocPrintJob job = service.createPrintJob();
FileInputStream fis = new FileInputStream(filename);
DocAttributeSet das = new HashDocAttributeSet();
Doc doc = new SimpleDoc(fis, flavor, das);
job.print(doc, pras);
// Thread.sleep(10000);
}catch(Exception e)
{
e.printStackTrace();
}
}
System.exit(0);
}
}下面是的PDF是Java中那两个打印包的用法,还有例子,大家可以下下来看看。
http://java.sun.com/j2se/1.4.2/pdf/JPS_PDF.pdf
打印包都是要用钱买的
关注一下
不妨试一试