`
lggege
  • 浏览: 376511 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

    博客分类:
  • Java
阅读更多
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方法来做指定打印机的打印。

分享到:
评论
3 楼 antony102201 2011-12-20  
有没有java调用Adobe_PDF_Printer来把一些能打印的文件都通过程序来打印成PDF啊
2 楼 xiaoqing20 2010-01-14  
谢谢楼主分享。!
1 楼 远方的你 2009-12-28  
好东西,谢谢,刚刚需要这个知识的..

相关推荐

    java实现自动静默打印功能(csdn)————程序.pdf

    在前端,我们主要使用 JavaScript 和 pdfjs 将 pdf 文件流转成图片,并调用 print 静默打印。下面是核心代码的实现: ```html <!-- 在 html 文件 body 中插入 canvas 元素 --> ;"> <!-- 引入 Lodop 打印 js 和 ...

    java调用实体打印机打印pdf文件

    在Java编程环境中,调用实体打印机来打印PDF文件是一项常见的任务。这通常涉及到将PDF文档内容转换成打印机能够理解的格式,然后通过Java的打印服务API进行操作。在这个过程中,我们需要借助特定的库来处理PDF文件和...

    Python后台静默打印PDF文件附属执行程序

    通过这种方式,Python开发者可以利用Ghostscript和Gsprint的组合,在后台静默地完成PDF打印任务,极大地提升了工作效率,特别是在需要大量打印且不需要人工干预的场景下。这种技术在企业自动化、报告生成等领域有着...

    纯java代码跨平台调用打印机打印word、pdf、图片等。

    9. **代码组织**:`PdfUtil.java`可能包含了处理PDF打印的工具方法,而`PrintUtil.java`则负责整体的打印流程,包括选择打印机、设置打印参数以及实际的打印操作。 综上所述,这个项目展示了如何利用Java的开源库和...

    java调用cmd创建目录和复制文件

    下面将详细解释如何使用Java调用CMD来创建目录和复制文件。 首先,我们需要了解CMD中的命令。在Windows CMD中,我们可以使用`mkdir`命令创建目录,`copy`命令复制文件。例如,创建一个名为“我的文件夹”的目录,...

    java 打印pdf文件 也可批量打印

    本文将详细介绍如何利用Java进行PDF文件的打印,包括单个文件打印以及批量打印的方法。 #### 二、基础知识 在讨论具体实现之前,我们需要了解一些基本概念: - **Adobe Reader**:Adobe Reader是一款广泛使用的...

    开源PDF库ITEXTSHARP图片创建PDF,及PDF静默打印

    首先,我们需要创建一个`PrintDocument`实例,设置其`PrinterSettings`,然后在`PrintPage`事件中调用`iTextSharp.text.Document`的`WriteToStream`方法,将PDF内容写入打印机的输出流。这里的关键在于,我们需要...

    Java调用小票打印机打印小票

    在IT行业中,尤其是在开发零售或餐饮系统的背景下,Java调用小票打印机打印购物清单是一项常见的任务。这个过程涉及到几个关键的技术点,包括打印机驱动的处理、串口通信、文本格式化以及与硬件设备的交互。以下是对...

    GSPRINT静默打印pdf

    总的来说,GSPRINT结合Ghostscript的静默打印功能,提供了Python开发者一种强大的工具,用于自动化处理PDF打印任务。掌握这项技术可以提升工作效率,减少手动操作,尤其适用于企业内部文档处理流程和服务器端的无人...

    浏览器不弹出打印窗口, 直接调动打印机打印 静默打印程序

    5. **提交打印任务**: 调用`PrinterJob.print()`方法,这会立即启动打印任务,而不会显示打印对话框。 在实际开发中,你可能还需要处理错误和异常,例如打印机未连接、无纸张、墨盒空等问题。同时,为了确保跨平台...

    Java调用Zebra条码打印机打印条码、中英文数字条码混合标签

    本文将深入探讨如何使用Java编程语言调用Zebra条码打印机来打印包含中英文数字混合的条码标签,以及如何自由控制其格式和排版。 Zebra打印机是一款专业的条码和标签打印机,支持多种打印语言,其中ZPL(Zebra ...

    java 以管理员身份调用cmd 需要用到的文件

    在Java编程中,有时我们需要执行...总之,要以管理员身份在Java中调用CMD,可以通过`nircmd.exe`这样的辅助工具来实现,或者利用Java自身的API进行权限请求。理解这个过程对于编写需要高权限操作的Java程序至关重要。

    TSC条码打印机java调用.pdf

    标题和描述中提到的知识点主要集中在如何...综上所述,该文档提供了一个Java程序调用TSC条码打印机DLL库的示例,涵盖了打印机的基本操作方法和参数设置,这对于开发一个与TSC条码打印机交互的Java应用程序非常有帮助。

    java调用wps,实现word转pdf,word转图片等

    本话题主要关注如何利用Java调用WPS(金山办公软件)来实现Word到PDF的转换以及Word到图片的转换。这些功能对于处理大量文档和报告的企业尤其有用,可以自动化工作流程,减少手动操作。 首先,让我们了解WPS。WPS ...

    JAVA调用斑马打印机打印

    将打印指令放到txt文档中,读取文档中的指令,发送到斑马打印机中,实现打印。此代码已经非常精简,项目需要用到ts24.lib,资源中也付带这个文件,并且附带一个C.txt文档的指令作为实验用。C.txt和ts24.lib请放在代码...

    java调用WPS或pdfcreator的com接口实现doc转pdf

    通过设置打印作业的目标为PDFCreator,我们可以在Java中调用打印接口,实现doc到pdf的转换。 5. **Jacob的使用步骤**: - 首先,需要将Jacob的jar文件添加到项目的类路径中,同时确保系统环境变量`PATH`包含了...

    Java调用条码打印机

    在Java web程序上实现调用条码打印机打印条码,斑马打印机

    java javascript 调用命令行 cmd

    这种需求通常通过调用命令行(CMD)来实现。本文将详细探讨如何在Java和JavaScript中调用命令行操作。 **Java调用命令行** 在Java中,我们可以使用`Runtime`类或`ProcessBuilder`类来执行命令行操作。 1. **使用...

    Java web 打印,Java pdf打印,Java 打印

    综上所述,这个项目涉及了Java Web打印的自定义实现,利用Java技术直接调用PDF打印,而非依赖浏览器功能。开发者使用了MyEclipse作为开发工具,并可能借助了特定库如iText或PDFBox来生成和打印PDF。而“mimeograph”...

    java调用C#封装的dll方法

    ### Java调用C#封装的DLL方法 #### 第一种方法:Java利用JNA进行调用 **背景介绍:** 为了实现Java与C#之间的交互,一种常用的方式是通过调用C#封装的DLL文件来完成特定功能。这种方法涉及到.NET Framework与Java...

Global site tag (gtag.js) - Google Analytics