Java 打印PDF文档的3种情况
以下内容归纳了通过Java程序打印PDF文档时的3种情形。即:
- 静默打印
- 显示打印对话框打印
- 打印PDF时自定义纸张大小
使用工具:Spire.PDF for Java
Jar导入:
方法1:通过官网下载jar包。
方法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
扩展:C# 打印PDF文档的10种方法,请参阅这篇文章。(注:使用Spire.PDF for .NET)
(本文完)
Java 打印PDF文档的3种情况的更多相关文章
- C# 打印PDF文档的10种方法
操作PDF文档时,打印是常见的需求之一.针对不同的打印需求,可分多种情况来进行,如设置静默打印.指定打印页码范围和打印纸张大小.双面打印.黑白打印等等.经过测试,下面将对常见的几种PDF打印需求做一些 ...
- Java 复制PDF文档的2种方法
本文将介绍通过Java程序来复制PDF页面,包括: 跨文档复制,即从文档1复制到文档2 在同一文档内复制,即从页面A复制到页面B 使用工具:Free Spire.PDF for Java (免费版) ...
- C# 插入超链接到PDF文档(3种情况)
超链接可以实现不同元素之间的连接,用户可以通过点击被链接的元素来激活这些链接.具有高效.快捷.准确的特点.本文中,将分享通过C#编程在PDF文档中插入超链接的方法.内容包含以下要点: 插入网页链接 插 ...
- 安卓打印实现打印pdf文档
先声明一下,此处的打印非pos打印机打印和蓝牙打印机打印,如果想查找打印小票的pos打印机请进入下面的传送门,蓝牙打印目前没做过,有做过的请指教. pos打印机传送门: 1. https://www. ...
- [开源框架推荐]Icepdf:纯java的pdf文档的提取和转换库
ICEpdf 是一个轻量级的开源 Java 语言的 PDF 类库.通过 ICEpdf 可以用来浏览.内容提取和转换 PDF 文档,而无须一些本地PDF库的支持. 可以用来做什么? 1.从pdf文件中提 ...
- Java 设置PDF文档背景——单色背景、图片背景
一般生成的PDF文档默认的文档底色为白色,我们可以通过一定方法来更改文档的背景色,以达到文档美化的作用. 以下内容提供了Java编程来设置PDF背景色的方法.包括2种设置方法: 设置纯色背景色 设置图 ...
- Java 设置PDF文档浏览偏好
在查看PDF文档时,可进行一些浏览偏好设置,例如是否全屏浏览.隐藏或显示菜单栏/工具栏.设置页面布局模式等,下面将通过Java编程的方式来演示如何设置. 使用工具: Free Spire.PDF fo ...
- Java 打印Word文档
本文介绍如何在Java程序中通过物理打印机和虚拟打印机来打印Word文档的方法.文中使用了类库Spire.Doc for Java,可通过官网下载jar文件并导入程序或者直接通过maven仓库安装导入 ...
- Java 在PDF文档中绘制图形
本篇文档将介绍通过Java编程在PDF文档中绘制图形的方法.包括绘制矩形.椭圆形.不规则多边形.线条.弧线.曲线.扇形等等.针对方法中提供的思路,也可以自行变换图形设计思路,如菱形.梯形或者组合图形等 ...
随机推荐
- javaScript之this的五种情况
this一直是JavaScript研究的难题,特别是在笔试和面试中的各种程序分析问题中,也常常会被问到.下面来看一看this被运用的五中情况: (1) 纯粹的函数调用 函数最普通用法,此时 ...
- Java探索之旅(11)——抽象类与接口
1.Java数据类型 ❶不可变类,是指当创建了这个类的实例后,就不允许修改它的属性值. 它包括: Primitive变量:boolean,byte, char, doubl ...
- 4、在线blast比对结果解析(保守结构域)
转载:http://www.bio1000.com/experiment/fenzi/237846.html 标签: NCBI Blast LASTP 摘要 : NCBI BLAST比对结果报告分析: ...
- Struts2学习第五课 通过和ServletAPI耦合的方式获取WEB资源
与Servlet耦合的访问方式 直接访问Servlet API将使Action与环境Servlet环境耦合在一起,测试时需要有Servlet容器,不便对Action的单元测试. 直接获取HttpSer ...
- Python开发【第六篇】:文件处理
1. 文件 文件处理流程: 打开文件,获得文件句柄,并赋值 通过句柄对文件进行操作 关闭文件 1.1 打开文件 在 Python 中使用 open()函数打开文件,并返回文件对象: open( ...
- C习题练习
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h> //比较俩个数的大小 //int max(int a, int b) {// int t ...
- 消耗战——dp+虚树
题目 [题目描述] 在一场战争中,战场由 $n$ 个岛屿和 $n-1$ 个桥梁组成,保证每两个岛屿间有且仅有一条路径可达.现在,我军已经侦查到敌军的总部在编号为 $1$ 的岛屿,而且他们已经没有足够多 ...
- [Xcode 实际操作]四、常用控件-(10)动作表样式警告窗口的使用
目录:[Swift]Xcode实际操作 本文将演示动作表单窗口的使用. 动作表单可以给用户展现一系列的选项, 和警告窗口不同的是,动作表单的展示形式和设备的尺寸有关. 在项目导航区,打开视图控制器的代 ...
- JavaScript 性能优化
加载和执行 1. </body>闭合标签之前,将所有的<script> 标签放在页面底部,确保在脚步执行之前页面已经完成渲染. 2. 合并脚本.下载单个 100KB 的文件将比 ...
- 说一说solr在tomcat,jetty上的运行和安装优缺点
本文是我从别的文章中组合而成的,结合自己实际操作进行了修改. Solr是什么 Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器.Solr提供了比Lu ...