http://riashanghai.com/zh-hant/node/42
在Windows下用Java实现静默打印PDF,而又不想用别人的PDF库来打印PDF的,在这里总结两个比较流行的偷懒方法。
支持在Windows cmd下打印PDF的命令有很多。之所以介绍下面的两个方法,是因为其软件使用普及率比较高。
两个方法都要安装一下三方的PDF浏览软件。
分别是利用Acrobat Reader 和 GSview。
Acrobat Reader 方法
前提是安装 Adobe Reader
代码如下
public static boolean printPdf(String pdfPath){
try{
Runtime.getRuntime().exec("cmd.exe /C start acrord32 /P /h " + pdfPath);
return true;
}catch(Exception e){
e.printStackTrace();
return false;
}
}
这里调用了Adobe的acrord32.exe方法,相应的,介绍下这个命令的参数。
AcroRd32.exe filename - 执行Adobe Reader,并且浏览PDF
其他还支持的参数有:
AcroRd32.exe /p filename - 执行Adobe Reader,并且打印一个PDF文件
AcroRd32.exe /t path printername drivername portname
初始化Adobe Reader, 不弹出打印对话框,然后结束打印
/t 命令所需的四个参数有
path - 打印文件路径
printername - 打印机名字
drivername - 打印机驱动名字
portname - 打印机端口
其他的参数:
/n 开一个新的Adobe Reader, 尽管有Adobe Reader已经打开 (静默打印不用)
/s 打开一个Adobe Reader不开splash screen
/o 打开一个Adobe Reader不开打开文件对话框
/h 以最小化方式打开一个Adobe Reader (静默打印使用)
Ghostscript 8.63 for 32-bit Windows
GSView 4.9 Win32 self extracting archive
代码如下
public static boolean printKitchenPdf(String pdfPath){
try{
Runtime.getRuntime().exec("cmd.exe /C \"c:\\Program Files\\Ghostgum\\gsview\\gsprint\" -printer myprinter " + pdfPath);
return true;
}catch(Exception e)
{
e.printStackTrace();
return false;
}
}
这里用到的cmd命令是gsprint. -printer 是指定用哪个打印机来进行打印。其它的参数过多,推荐到官方网页进行查看。
值得注意的是,gsprint在命令里面,不能通过参数来设置纸张的大小,只能在Windows的打印机驱动里面设置。
在用Adobe Reader方法指定打印机进行打印时(非默认打印机打印),Adobe Reader总是会从最小化状态变成激活状态,本人不知道用什么方式使Adobe Reader隐藏窗口。推荐用gsview方法来做指定打印机的打印。
分享到:
相关推荐
java实现自动静默打印功能(csdn)————程序
java调用实体打印机打印pdf文件,包含需要的jar包以及源码
java语言通过cmd命令在远程电脑上创建定时任务,从而达到控制远程开启或者关闭自己想要处理的应用程序,而不用亲临。很简单,由于win10系统的安全性,使用邮箱在线注册过的win10估计是不行的,自己试吧。
java 以管理员身份调用cmd 需要用到的文件 使用命令方法 "解压路径"nircmd.exe elevate +"你需要用的cmd命令
JAVA调用zpl条码打印机打印中文打印及网络打印实例
Java调用Zebra条码打印机打印条码、中英文数字条码混合标签,可自由控制格式和排版。
Java调用小票打印机打印购物清单
纯java代码实现跨平台打印word、pdf、图片等信息,无需系统嵌入第三方dll文件等,方便,可移植性好。
java调用cmd创建目录和复制文件 在d盘创建一个以自己名字的文件夹 并把c盘windows fonts的楷体字体文件复制到此文件夹下
所以,在以前用Java/Applet/JSP/Servlet设计的程序中,较复杂的打印都是通过调用ActiveX/OCX控件或者VB/VC程序来实现的,非常麻烦。实际上,SUN公司也一直致力于Java打印功能的完善,而Java2平台则终于有了一个健壮...
java调用shell命令.pdf
JAVA调用zpl条码打印机打印中文打印及网络打印实例
java javascript 调用cmd命令
java 如何调用系统打印机打印文件,也是从别人借鉴过来,免费的
在Java web程序上实现调用条码打印机打印条码,斑马打印机
原生Java打印pdf时,不支持一些打印机,使用2.08版pdfbox打印PDF,包含代码,jar。
Java调用OCR进行图片识别[归纳].pdf
Bartender提供了.net的开发sdk,但是没有提供java的,使得java开发者调用Bartender实现模板打印比较困难。本示例是结合Bartender官方资料,利用java通过COM组件方式实现可传递参数的模板打印。
java调用js方法.pdf