PrintService关于PDF的生成以及打印机打印

Java打印PDF文件
本文介绍了一种使用Java在服务器端实现PDF文件打印的方法,并详细解释了如何通过代码配置打印机、纸张尺寸、方向等参数,同时提供了利用POI生成PDF文件的实用工具类。

之前通过网上查询java实现打印机打印功能的方法大部分都是通过SimpleDoc类构件打印机的打印文件属性,通过PrintJob的Print()实现打印,但是打印出来的都是乱码。

首先考虑能不能打印文件,因为程序部署在服务器端,需要直接控制前端设备打印,所以需要无界面化操作,我使用的代码:

public static void PDFprint(File file, String printerName) throws Exception {
			PDDocument document = null;
			try {
				document = PDDocument.load(file);
				PrinterJob printJob = PrinterJob.getPrinterJob();
				printJob.setJobName(file.getName());
				if (printerName != null) {
					// 查找并设置打印机
					// 获得本台电脑连接的所有打印机
//					PrintService[] printServices = PrinterJob.lookupPrintServices();
//					if (printServices == null || printServices.length == 0) {
//						System.out.print("打印失败,未找到可用打印机,请检查。");
//						return;
//					}
					PrintService printService = PrintServiceLookup.lookupDefaultPrintService();
//					// 匹配指定打印机
//					for (int i = 0; i < printServices.length; i++) {
//						System.out.println(printServices[i].getName());
//						if (printServices[i].getName().contains(printerName)) {
//							printService = printServices[i];
//							break;
//						}
//					}
					if (printService != null) {
						printJob.setPrintService(printService);
					} else {
						System.out.print("打印失败,未找到名称为" + printerName + "的打印机,请检查。");
						return;
					}
				}
				// 设置纸张及缩放
				PDFPrintable pdfPrintable = new PDFPrintable(document, Scaling.ACTUAL_SIZE);
				// 设置多页打印
				Book book = new Book();
				PageF
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值