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方法来做指定打印机的打印。
分享到:
相关推荐
在前端,我们主要使用 JavaScript 和 pdfjs 将 pdf 文件流转成图片,并调用 print 静默打印。下面是核心代码的实现: ```html <!-- 在 html 文件 body 中插入 canvas 元素 --> ;"> <!-- 引入 Lodop 打印 js 和 ...
在Java编程环境中,调用实体打印机来打印PDF文件是一项常见的任务。这通常涉及到将PDF文档内容转换成打印机能够理解的格式,然后通过Java的打印服务API进行操作。在这个过程中,我们需要借助特定的库来处理PDF文件和...
通过这种方式,Python开发者可以利用Ghostscript和Gsprint的组合,在后台静默地完成PDF打印任务,极大地提升了工作效率,特别是在需要大量打印且不需要人工干预的场景下。这种技术在企业自动化、报告生成等领域有着...
9. **代码组织**:`PdfUtil.java`可能包含了处理PDF打印的工具方法,而`PrintUtil.java`则负责整体的打印流程,包括选择打印机、设置打印参数以及实际的打印操作。 综上所述,这个项目展示了如何利用Java的开源库和...
下面将详细解释如何使用Java调用CMD来创建目录和复制文件。 首先,我们需要了解CMD中的命令。在Windows CMD中,我们可以使用`mkdir`命令创建目录,`copy`命令复制文件。例如,创建一个名为“我的文件夹”的目录,...
本文将详细介绍如何利用Java进行PDF文件的打印,包括单个文件打印以及批量打印的方法。 #### 二、基础知识 在讨论具体实现之前,我们需要了解一些基本概念: - **Adobe Reader**:Adobe Reader是一款广泛使用的...
首先,我们需要创建一个`PrintDocument`实例,设置其`PrinterSettings`,然后在`PrintPage`事件中调用`iTextSharp.text.Document`的`WriteToStream`方法,将PDF内容写入打印机的输出流。这里的关键在于,我们需要...
在IT行业中,尤其是在开发零售或餐饮系统的背景下,Java调用小票打印机打印购物清单是一项常见的任务。这个过程涉及到几个关键的技术点,包括打印机驱动的处理、串口通信、文本格式化以及与硬件设备的交互。以下是对...
总的来说,GSPRINT结合Ghostscript的静默打印功能,提供了Python开发者一种强大的工具,用于自动化处理PDF打印任务。掌握这项技术可以提升工作效率,减少手动操作,尤其适用于企业内部文档处理流程和服务器端的无人...
5. **提交打印任务**: 调用`PrinterJob.print()`方法,这会立即启动打印任务,而不会显示打印对话框。 在实际开发中,你可能还需要处理错误和异常,例如打印机未连接、无纸张、墨盒空等问题。同时,为了确保跨平台...
本文将深入探讨如何使用Java编程语言调用Zebra条码打印机来打印包含中英文数字混合的条码标签,以及如何自由控制其格式和排版。 Zebra打印机是一款专业的条码和标签打印机,支持多种打印语言,其中ZPL(Zebra ...
在Java编程中,有时我们需要执行...总之,要以管理员身份在Java中调用CMD,可以通过`nircmd.exe`这样的辅助工具来实现,或者利用Java自身的API进行权限请求。理解这个过程对于编写需要高权限操作的Java程序至关重要。
标题和描述中提到的知识点主要集中在如何...综上所述,该文档提供了一个Java程序调用TSC条码打印机DLL库的示例,涵盖了打印机的基本操作方法和参数设置,这对于开发一个与TSC条码打印机交互的Java应用程序非常有帮助。
本话题主要关注如何利用Java调用WPS(金山办公软件)来实现Word到PDF的转换以及Word到图片的转换。这些功能对于处理大量文档和报告的企业尤其有用,可以自动化工作流程,减少手动操作。 首先,让我们了解WPS。WPS ...
将打印指令放到txt文档中,读取文档中的指令,发送到斑马打印机中,实现打印。此代码已经非常精简,项目需要用到ts24.lib,资源中也付带这个文件,并且附带一个C.txt文档的指令作为实验用。C.txt和ts24.lib请放在代码...
通过设置打印作业的目标为PDFCreator,我们可以在Java中调用打印接口,实现doc到pdf的转换。 5. **Jacob的使用步骤**: - 首先,需要将Jacob的jar文件添加到项目的类路径中,同时确保系统环境变量`PATH`包含了...
在Java web程序上实现调用条码打印机打印条码,斑马打印机
这种需求通常通过调用命令行(CMD)来实现。本文将详细探讨如何在Java和JavaScript中调用命令行操作。 **Java调用命令行** 在Java中,我们可以使用`Runtime`类或`ProcessBuilder`类来执行命令行操作。 1. **使用...
综上所述,这个项目涉及了Java Web打印的自定义实现,利用Java技术直接调用PDF打印,而非依赖浏览器功能。开发者使用了MyEclipse作为开发工具,并可能借助了特定库如iText或PDFBox来生成和打印PDF。而“mimeograph”...
### Java调用C#封装的DLL方法 #### 第一种方法:Java利用JNA进行调用 **背景介绍:** 为了实现Java与C#之间的交互,一种常用的方式是通过调用C#封装的DLL文件来完成特定功能。这种方法涉及到.NET Framework与Java...