怎样在客户端打印一个pdf文件
在客户端怎么用java 打印一个PDF文件
也就是怎么把一个已经存在的PDF文件发送到打印机
问题点数:100、回复次数:8Top
1 楼totodo(土豆仙)回复于 2004-04-05 09:27:20 得分 0
你试一下ireport吧。
upTop
2 楼CoolAbu(阿卜-Never Stop(★★★★))回复于 2004-04-05 12:47:35 得分 50
试试如下代码
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
Top
3 楼goldenhua(Stay foolish. Stay hungry.)回复于 2004-04-05 14:05:11 得分 0
真是个奇怪的问题!一般的说,你只需要在客户端安装Acrobat即可。Top
4 楼KitSdk(kitsdk)回复于 2004-04-05 15:34:41 得分 0
CoolAbu(阿卜-Never Stop):
当我改为
DocFlavor flavor = DocFlavor.INPUT_STREAM.PDF
之后就找不到可用的打印机 也就是printService[] 长度为0
请指点
Top
5 楼CoolAbu(阿卜-Never Stop(★★★★))回复于 2004-04-05 16:13:13 得分 30
你把Flavor改成如下的试试。
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE
Top
6 楼KitSdk(kitsdk)回复于 2004-04-05 19:44:36 得分 0
我改为DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE 要么是抛出flavor不匹配的异常 要么打印出好多00111的二进制字符
急啊!!!Top
7 楼satangf(好好学习,天天向上!)回复于 2004-04-05 20:06:54 得分 0
学习一下!Top
8 楼etre(林荃)回复于 2004-04-06 10:27:46 得分 20
上面那段代码是不行的,因为java本身并没有pdf文件的解析,他只是提供service.你得自己实现.所以最简单的就是在client安装Acrobat,然后通过activex技术嵌进来。
当然adobe去下载pure的pdf viewer然后可以很好的嵌放你的程序,不过很报谦,他现在还不支持中文。Top




