Excel表格网

java直接打印excel(java直接打印集合)

来源:www.0djx.com  时间:2022-12-06 13:21   点击:211  编辑:表格网  手机版

1. java直接打印集合

如果这个栈是你自己写的,那你自己知道每一个元素,就可以一个个按你想要的顺序打印。如果这个栈的类是别人写的,别人之提供给你push,pop方法,那么估计也只有全部pop出来这种方法了 ================================================================== 哦,你的意思是栈虽然是你自己写的,但是你用的时候却需要反过来遍历,而不是说在栈的内部做这个遍历?那么在外部的话我觉得是没有好办法的,因为栈只有那两个操作,除非像java的Stack那样,还提供了整个线性表的功能。但是如果是你需要反过来遍历的话,我觉得这就不适合用栈这种数据结构啊 ================================================================= 用什么数据结构要看你什么需求,比如你做的事情的确是栈的概念,你也的确只需要出栈,进栈的操作的话,那么你只需要栈就可以了。你现在要遍历整个集合,那就用最普通的顺序表好了

2. java批量打印文件

采用报表打印插件是最好的方式。报表插件优势:报表插件在服务器端不驻留程序,服务器只要提供约定格式的 XML 数据就行了。所以有如下优势:

1、支持所有的WEB服务器平台。

2、报表的生成是在各自客户端电脑上,这样大大减轻了服务器的负载压力,能够做到更大的并发访问。

3、插件在客户端运行是电脑原生程序,与桌面程序具有一样的运行性能,并能开发出桌面程序类似的报表功能。

4、能驱动打印机直接进行打印,是WEB软件实现打印功能的最好方式。

3. java调用打印机打印文件

先打印张测试纸,如果可以,说明打印机没有问题。

如果打印机没问题,那就把JAVA软件重新安装下试试。

4. JAVA打印输出

使用了如下方法获得异常所在的文件,行号和方法:

StackTraceElement stackTraceElement= ex.getStackTrace()[0];// 得到异常棧的首个元素

System.out.println("File="+stackTraceElement.getFileName());// 打印文件名

System.out.println("Line="+stackTraceElement.getLineNumber());// 打印出错行号

System.out.println("Method="+stackTraceElement.getMethodName());// 打印出错方法

程序如下:

public class ExceptionTest{

public static void main(String[] arg) {

try{

throw new Exception("Exception Test!");

}

catch(Exception ex){

ex.printStackTrace();

String strTemp=ex.getStackTrace().toString();

StackTraceElement stackTraceElement= ex.getStackTrace()[0];

System.out.println("File="+stackTraceElement.getFileName());

System.out.println("Line="+stackTraceElement.getLineNumber());

System.out.println("Method="+stackTraceElement.getMethodName());

}

}

}

输出如下(在Eclipse3.1中):

java.lang.Exception: Exception Test!

at ExceptionTest.main(ExceptionTest.java:5)

File=ExceptionTest.java

Line=5

Method=main

大家可以看到,输出基本可以满足需求,但是没有ex.printStackTrace();产生的链接效果,如点击ExceptionTest.java:5 就可以到达错误处,这里不知道如何处理,那位知道请告知.

然而,上述方法不能应付类反射出现的异常,请大家看如下程序:

public void fetchCommand(String strCmmd){

cmmdArgs=strCmmd.split("/s+");

String className="Command"+cmmdArgs[0];

try{

Class cls=Class.forName(className);

cmmd=(Command)cls.newInstance();

}

catch(Exception ex){

ex.printStackTrace();

//System.out.println(ex.getStackTrace()[0].getLineNumber());///getFileName() ;

StackTraceElement stackTraceElement= ex.getStackTrace()[0];

System.out.println("File="+stackTraceElement.getFileName());

System.out.println("Line="+stackTraceElement.getLineNumber());

System.out.println("Method="+stackTraceElement.getMethodName());

}

}

当className不是可识别的类名时,输出如下:

commandType01 start!

commandType01 Length=3

commandType01 End!

commandType02 start!

commandType02 is: Type02 1 2 3 4

commandType02 End!

File=null // 这里找不到文件

Line=-1 // 行出错

Method=run // 方法错

commandType02 start!

commandType02 is: Type04 USA Russia China

commandType02 End!

java.lang.ClassNotFoundException: CommandType04

at java.net.URLClassLoader.run(Unknown Source)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

at java.lang.ClassLoader.loadClassInternal(Unknown Source)

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Unknown Source)

at Mediation.fetchCommand(Mediation.java:16) // 这里倒是对了

at Inlet.main(Inlet.java:11)// 这里也对

看来StackTraceElement stackTraceElement= ex.getStackTrace()[0];还要继续挖掘.

经跟踪发现,现在用这个办法可以完全搞定:

StackTraceElement stackTraceElement= ex.getStackTrace()[ex.getStackTrace().length-1];

System.out.println("File="+stackTraceElement.getFileName());

System.out.println("Line="+stackTraceElement.getLineNumber());

System.out.println("Method="+stackTraceElement.getMethodName());

这里的变化是将ex.getStackTrace()[0]修改成了ex.getStackTrace()[ex.getStackTrace().length-1],因为只有数组的最后一个元素才有我想要的信息,原先的ex.getStackTrace()[0]只是恰巧数组的最后一个元素就是首个元素而已.

5. java获取打印机列表

参考javax.print.*

大致过程是这样的:

写一个servlet,专门实现打印服务

这个servlet内是这样处理的:

1.获取打印机对象printer

通过枚举PrintServiceprintservices[]=PrintServiceLookup.lookupPrintServices(...)

2.生成DocPrintJobjob=PrintService.createPrintJob();

3.生成文档Docdoc=newSimpleDoc(...);

需要3个参数

第一个是打印的数据,可以根据条码,生成一幅图像,然把图像作为输入流,作为第一个参数

第二个参数用一个DocFlavor.INPUT_STREAM对象

DocFlavor类有相应的静态变量,你根据图像的mime类型选择

第三个参数是一个DocAttributeSet对象

4.打印

job.print(doc,pras);

这是我以前写的练习:

-----------------------------------------------------------------------

packageprinttest;

importjava.io.*;

importjavax.print.*;

importjava.awt.*;

importjava.awt.image.*;

importjavax.imageio.*;

publicclassApplication1

{

publicstaticvoidtest(Stringcode)

{

try{

DocFlavorflavor=DocFlavor.INPUT_STREAM.JPEG;

//getaprinter

PrintService[]printers=PrintServiceLookup.lookupPrintServices(flavor,null);

for(inti=0;i<printers.length;i++)System.out.println(printers[i].getName());

PrintServiceprinter=printers[0];

//job

DocPrintJobjob=printer.createPrintJob();

//document

BufferedImageimg=newBufferedImage(400,300,BufferedImage.TYPE_USHORT_555_RGB);

Graphicsg=img.getGraphics();

g.drawString(code,100,100);

ByteArrayOutputStreamoutstream=newByteArrayOutputStream();

ImageIO.write(img,"jpg",outstream);

byte[]buf=outstream.toByteArray();

InputStreamstream=newByteArrayInputStream(buf);

Docdoc=newSimpleDoc(stream,flavor,null);

//print

job.print(doc,null);

}

catch(Exceptione)

{

e.printStackTrace();

}

}

//Mainmethod

publicstaticvoidmain(String[]args)

{

test("12345");

}

}

6. java打印类

java中调用本地系统上关联的打印机打印本地文件:

import java.io.File;

import java.io.FileInputStream;

import javax.print.Doc;

import javax.print.DocFlavor;

import javax.print.DocPrintJob;

import javax.print.PrintService;

import javax.print.PrintServiceLookup;

import javax.print.ServiceUI;

import javax.print.SimpleDoc;

import javax.print.attribute.DocAttributeSet;

import javax.print.attribute.HashDocAttributeSet;

import javax.print.attribute.HashPrintRequestAttributeSet;

import javax.swing.JFileChooser;

public class TestPrinter1 {

public static void main(String[] args) {

JFileChooser fileChooser = new JFileChooser();//创建打印作业

int state = fileChooser.showOpenDialog(null);

if(state == fileChooser.APPROVE_OPTION){

//File file = new File("D:/haha.txt");//获取选择的文件

File file = fileChooser.getSelectedFile();//获取选择的文件

//构建打印请求属性集

HashPrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();

//设置打印格式,因为未确定类型,所以选择autosense

DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;

//查找所有的可用的打印服务

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(file);//构造待打印的文件流

DocAttributeSet das = new HashDocAttributeSet();

Doc doc = new SimpleDoc(fis, flavor, das);

job.print(doc, pras);

} catch (Exception e){

e.printStackTrace();

}

}

}

}

}

7. java打印机打印

直接生成pdf呀,现在浏览器都支持直接预览pdf并打印了,推荐XMReport,简单易用

8. java怎么打印集合

1. 首先我们打开电脑进入到桌面,然后找到excel图标点击打开。进入到软件界面之后,我们可以看到有多个工作表。

2.接下来我们就按住键盘上的ctrl键,然后使用鼠标选中想要打印的工作表。

3. 然后我们就可以看到我们选中的表已经集合了一个组合表。

4. 接下来我们只需要点击软件左上角的文件选项。

5. 然后我们会进入到文件界面,我们点击左侧菜单的打印选项。

6. 接下来我们就可以在右侧的界面中找到打印活动工作表选项,点击打开。

7. 然后我们就可以看到这么多张工作表经经组合成一张,接下来我们只需要点击打印按钮就可以。

8. 文档打印完成之后,我们只需要再次鼠标右击选中的标签,然后点击菜单中的取消组合工作表就可以了。

9. java打印到文件

最简单的jar包——直接输出hello

最终生成的jar包结构

META-INF

Hello.class

方法步骤

(1)用记事本写一个Hello.java的文件

1 class Hello{2 public static void main(String[] agrs){3 System.out.println("hello");4 }5 }

(2)用命令行进入到该目录下,编译这个文件

   javac Hello.java

(3)将编译后的Hello.class文件打成jar包

   jar -cvf hello.jar Hello.class

  c表示要创建一个新的jar包,v表示创建的过程中在控制台输出创建过程的一些信息,f表示给生成的jar包命名

(4)运行jar包

   java -jar hello.jar 这时会报如下错误 hello.jar中没有主清单属性

  添加Main-Class属性

  用压缩软件打开hello.jar,会发现里面多了一个META-INF文件夹,里面有一个MENIFEST.MF的文件,用记事本打开

1 Manifest-Version: 1.02 Created-By: 1.8.0_121 (Oracle Corporation)3

  在第三行的位置写入 Main-Class: Hello (注意冒号后面有一个空格,整个文件最后有一行空行),保存

  再次运行 java -jar hello.jar ,此时成功在控制台看到 hello ,成功

顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
用户名: 验证码:点击我更换图片