三种Java打印PDF文档的实例代码
作者:EiceblueSpire 发布时间:2022-01-23 09:29:25
标签:JAVA,PDF,打印
以下内容归纳了通过Java程序打印PDF文档时的3种情形。即:
1 静默打印
2 显示打印对话框打印
3 打印PDF时自定义纸张大小
使用工具:Spire.PDF for Java
Jar文件获取及导入:
方法1:下载jar包。下载后,解压文件,并将lib文件夹下的Spire.Pdf.jar导入java程序。
方法2:可通过maven库导入。参考导入方法。
Java代码示例
【示例1】静默打印
即通过使用默认打印机直接打印PDF文档。打印时,我们可以设置打印份数,设置纸张打印页边距等。
import com.spire.pdf.*;
import java.awt.print.*;
public class Print {
public static void main(String[] args) {
//加载文档
PdfDocument pdf = new PdfDocument();
pdf.loadFromFile("Sample.pdf");
PrinterJob loPrinterJob = PrinterJob.getPrinterJob();
PageFormat loPageFormat = loPrinterJob.defaultPage();
Paper loPaper = loPageFormat.getPaper();
//删除默认页边距
loPaper.setImageableArea(0,0,loPageFormat.getWidth(),loPageFormat.getHeight());
//设置打印份数
loPrinterJob.setCopies(2);
loPageFormat.setPaper(loPaper);
loPrinterJob.setPrintable(pdf,loPageFormat);
try {
loPrinterJob.print();
} catch (PrinterException e) {
e.printStackTrace();
}
}
}
【示例2】显示打印对话框打印PDF文档
import com.spire.pdf.*;
import java.awt.print.*;
public class Print {
public static void main(String[] args) {
//加载文档
PdfDocument pdf = new PdfDocument();
pdf.loadFromFile("Sample.pdf");
PrinterJob loPrinterJob = PrinterJob.getPrinterJob();
PageFormat loPageFormat = loPrinterJob.defaultPage();
Paper loPaper = loPageFormat.getPaper();
//删除默认页边距
loPaper.setImageableArea(0,0,loPageFormat.getWidth(),loPageFormat.getHeight());
loPageFormat.setPaper(loPaper);
loPrinterJob.setPrintable(pdf,loPageFormat);
//显示打印对话框
if (loPrinterJob.printDialog()) {
try {
loPrinterJob.print();
} catch (PrinterException e) {
e.printStackTrace();
}
}
}
}
【示例3】打印时自定义纸张大小
import com.spire.pdf.*;
import java.awt.print.*;
public class Print {
public static void main(String[] args) {
//加载文档
PdfDocument pdf = new PdfDocument();
pdf.loadFromFile("Sample.pdf");
PrinterJob loPrinterJob = PrinterJob.getPrinterJob();
PageFormat loPageFormat = loPrinterJob.defaultPage();
//设置打印纸张大小
Paper loPaper = loPageFormat.getPaper();
loPaper.setSize(500,600);
loPageFormat.setPaper(loPaper);
loPrinterJob.setPrintable(pdf,loPageFormat);
try {
loPrinterJob.print();
} catch (PrinterException e) {
e.printStackTrace();
}
}
}
如果需要更详细的打印设置,可以在PrinterJob下设置相应的参数,可从参考:https://www.programcreek.com/java-api-examples/java.awt.print.PrinterJob
(本文完)
来源:https://www.imooc.com/article/294674
0
投稿
猜你喜欢
- 问题背景通常我们开发的时候,需要联合控制台和Navicat/PLSQL等工具进行语句的拼接检查,如果只是输出了一堆???,那么将极大降低我们
- 1.1 概述分布式系统:分布式系统指由很多台计算机组成的一个整体!这个整体一致对外,并且处理同一请求!系统对内透明,对外不透明!内部的每台计
- 在网上也没有找到好的解决方案,于是自己研究了下给解决了,分享给大家,希望对大家能有所帮助。一、异常信息这种情况是因为FTP设置的默认目录引发
- 这个工具比较简单,用于配合另外一个工具进行文件传送,废话少说,上代码import java.net.URL;import java.net.
- Interceptor 介绍 * (Interceptor)同 Filter 过滤器一样,它俩都是面向切面编程—&
- 定义JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动
- 发现问题:问题如图所示,在eclipse中开启tomcat服务器时报错:端口已被占用。这是因为在tomcat开启的状态下,eclipse异常
- 这篇文章主要介绍了SpringBoot Jpa分页查询配置方式解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价
- 今天在研究dubbo时,发现一个新的知识点,可以使用javassist包进行动态编程,hibernate也使用该包进行编程。晚上百度了很多资
- Linux下的五种I/O模型1)阻塞I/O(blocking I/O)2)非阻塞I/O (nonblocking I/O)3) I/O复用(
- 首先需要清楚一个概念:函数式接口;它指的是有且只有一个未实现的方法的接口,一般通过FunctionalInterface这个注解来表明某个接
- 本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下using System;using Microsoft
- Struts2是Struts社区和WebWork社区的共同成果,我们甚至可以说,Struts2是WebWork的升级版,他采用的正是WebW
- 1、数组数组的引用传递public class TestDemo1{public static void main(String args[
- 1.编写源代码编写源文件:CardLayoutDemo.java并保存,例如:I:\myApp\CardLayoutDemo.java。程序
- 前言相信很多人对枚举并不陌生,枚举可以很方便和直观的管理一组特定值。如果我们在页面上直接输出我们希望匹配的汉语意思或则其他满足我们需求的语句
- 本文实例讲述了Java设计模式之 * 模式。分享给大家供大家参考,具体如下:前面介绍了静态代理模式, * 比静态代理模式更加强大。它能在
- Spring Cloud Gateway使用Spring Cloud Gateway是一个基于Spring Boot 2.x和Spring&
- 1. 概述将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。2. 解决的问题当希望忽
- 一、目的针对不同地区,设置不同的语言信息。SpringBoot国际化配置文件默认放在classpath:message.properties