Java调用cmd的静默打印PDF方法

在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方法来做指定打印机的打印。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值