`
lggege
  • 浏览: 375482 次
  • 性别: 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调用实体打印机打印pdf文件

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

    GSPRINT静默打印pdf

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

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

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

    java使用pdfbox打印PDF

    `pdfbox-tools-2.0.8.jar`则包含了额外的工具类,其中包括了PDF打印的功能。 以下是使用PDFBox 2.0.8打印PDF的基本步骤: 1. 引入依赖:将这三个JAR文件添加到项目的类路径中,或者如果你使用的是Maven或Gradle,...

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

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

    TSC条码打印机java调用.pdf

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

    pdf静默打印依赖包

    GSPRINT则是专门用于PDF打印的辅助工具,它扩展了Ghostscript的功能,使其支持无用户交互的打印。GSPRINT的压缩文件`GSPRINT.rar`需要解压并安装到系统中,这样在调用Ghostscript进行打印时,可以利用GSPRINT提供的...

    易语言控制台调用CMD命令

    通过研究这些源码,你可以更好地理解和掌握易语言中控制台调用CMD命令的具体实现方法。 总之,易语言控制台调用CMD命令是一项实用的功能,它可以帮助开发者扩展易语言程序的能力,实现与操作系统更深度的交互。通过...

    如何使用Adobe Reader和C#静默打印PDF

    在IT行业中,静默打印PDF是一项重要的任务,特别是在自动化流程或无人值守的环境中。Adobe Reader是一款广泛使用的PDF阅读器,而C#是一种流行的编程语言,适用于开发桌面应用程序。结合这两者,我们可以实现PDF的无...

    Java调用OCR进行图片识别[归纳].pdf

    Java 调用 OCR 进行图片识别 Java 调用 OCR 进行图片识别是指使用 Java 语言调用 OCR(Optical Character Recognition,光学字符识别)技术来识别图片中的文字信息。这种技术可以将图片中的文字信息提取出来,并将...

    ( java调用js__方法.docx

    Java 调用 JS 方法详解 Java 调用 JS 方法是指在 Java 代码中调用 JavaScript 代码的方法,从而实现 Java 和 JavaScript 之间的交互。在本文中,我们将详细介绍 Java 调用 JS 方法的实现步骤和相关知识点。 Java ...

    java调用第三方dll心得.pdf

    java调用第三方dll心得,文档格式pdf

    java执行cmd命令并返回运行结果

    使用方法: (1)导入Command.jar工具包 (2)Command.exeCmd("cmd命令")//该方法返回String

    Java调用相应cmd命令的实例

    通过这些基础知识,我们可以灵活地在Java程序中调用CMD命令,执行系统级别的操作。这在自动化任务、系统集成或者需要操作系统功能支持的场景下非常实用。但同时,也要注意权限控制和安全问题,避免潜在的攻击风险。

    JAVA调用zpl条码打印机打印中文打印及网络打印实例

    本实例主要探讨的是如何使用JAVA语言来调用ZPL(Zebra Programming Language)指令,实现中文字符的打印以及网络打印功能。这涉及到Java的IO操作、字符串处理以及网络通信等多个方面的知识。 ZPL是一种专门用于配置...

    java打印控件以及IE自带打印方法调用

    在IE浏览器打印中由于版本问题,可使用打印控件打印,如果打印控件打印不兼容,可以使用IE自带的打印功能

    利用JNative实现Java调用动态库.pdf

    利用JNative实现Java调用动态库.pdf

    用itextsharp打印pdf示例

    6. **关闭文档**:所有内容添加完毕后,别忘了调用`Document`的`Close()`方法,结束PDF的写入操作。 7. **打印PDF**:最后,如果你需要打印PDF,可以使用`PrintDocument`类创建一个打印作业,并指定PDF文件作为源。...

    JAVA根据PDF模板生成PDF文件.rar

    主要包含一个Java类`PdfUtilsPic.java`,一个PDF模板文件`M8.pdf`,以及一个名为`调用方法及Maven.txt`的文件,该文件很可能是关于如何使用这些资源的说明。 `PdfUtilsPic.java`可能是自定义的工具类,用于根据指定...

Global site tag (gtag.js) - Google Analytics