java平台下通过jacob对excel,word进行打印等操作
因为项目有个需求,要求能够在某个预定时间对特定报表进行自动打印。报表的形式主要是excel。如果是c++或者c#什么的,简直是小菜一碟。可惜,偏偏是java实现。并且,这又不同于常见的页面手工打印,可以通过javascript调用打印机来实现。于是乎,开始摸索如何实现该功能。
首先想到的是java自带的打印类。在javax.print包下。根据jdk说明,照着搬来了个程序,小试牛刀。
/**
* @author xjj
* 说明:打印类
* email: exceljava@163.com
* @date Oct 29, 2008
*/
public class AutoPrint {
public static void main(String[] args) {
FileInputStream psStream;
try {
psStream = new FileInputStream("file.ps");
} catch (FileNotFoundException ffne) {
}
if (psStream == null) {
return;
}
DocFlavor psInFormat = DocFlavor.INPUT_STREAM.POSTSCRIPT;
Doc myDoc = new SimpleDoc(psStream, psInFormat, null);
PrintRequestAttributeSet aset =
new HashPrintRequestAttributeSet();
aset.add(new Copies(5));
aset.add(MediaSize.A4);
aset.add(Sides.DUPLEX);
PrintService[] services =
PrintServiceLookup.lookupPrintServices(psInFormat, aset);
if(services.length<1){
throw new RuntimeException("找不到打印机");
}
if (services.length > 0) {
DocPrintJob job = services[0].createPrintJob();
try {
job.print(myDoc, aset);
} catch (PrintException pe) {}
}
}
通过测试,始终无法找到打印机,运行时报定义的:找不到打印机。听说,局域网内的打印机无法链接,打印机只能连在本机上。而测试的打印机刚好在局域网内而不在本机上。然后,查看了下文档,忽然发现,java自带的打印只对plain文本,gif,jpeg,pdf等支持,而对excle,word等是不支持的。看来要学会放弃,goodbye java print。
有道是:车道山前必有路。这不,关键时刻,jacob出
相关文档:
渣滓回收的悖论
所谓“成也萧何败萧何”。Java的渣滓回收确确实实带到了很多好处,为开发带回了方便。但是在一些高性能、高并发的情况下,渣滓回收确变为了钳制Java使用的瓶颈。当前JDK的渣滓回收算法,始终没法解决渣滓回收时的暂停问题,由于这个暂停严重影响了程序的呼应时间,促成堵塞或积聚。这也是后续JDK ......
72、EJB的角色和三个对象
一个完整的基于EJB的分布式计算结构由六个角色组成,这六个角色可以由不同的开发商提供,每个角色所作的工作必须遵循Sun公司提供的EJB规范,以保证彼此之间的兼容性。这六个角色分别是EJB组件开发者(Enterprise Bean Provider)、应用组合者(Application Assembler)、部署者(Deployer)、EJ ......
123、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。
以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。
public class ThreadTest1{
private int j;
public static void main(String args[]){
ThreadTest1 tt=new ThreadTest1();
Inc inc=tt. ......
XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便。对于XML本身的语法知识与技术细节,需要阅读相关的技术文献,这里面包括的内容有DOM(Document Object Model),DTD(Document Type Definition),SAX(Simple API for XML),XSD(Xml Schema Definition),XSLT(Exten ......