以下内容归纳了通过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种情况的更多相关文章

  1. C# 打印PDF文档的10种方法

    操作PDF文档时,打印是常见的需求之一.针对不同的打印需求,可分多种情况来进行,如设置静默打印.指定打印页码范围和打印纸张大小.双面打印.黑白打印等等.经过测试,下面将对常见的几种PDF打印需求做一些 ...

  2. Java 复制PDF文档的2种方法

    本文将介绍通过Java程序来复制PDF页面,包括: 跨文档复制,即从文档1复制到文档2 在同一文档内复制,即从页面A复制到页面B 使用工具:Free Spire.PDF for Java (免费版) ...

  3. C# 插入超链接到PDF文档(3种情况)

    超链接可以实现不同元素之间的连接,用户可以通过点击被链接的元素来激活这些链接.具有高效.快捷.准确的特点.本文中,将分享通过C#编程在PDF文档中插入超链接的方法.内容包含以下要点: 插入网页链接 插 ...

  4. 安卓打印实现打印pdf文档

    先声明一下,此处的打印非pos打印机打印和蓝牙打印机打印,如果想查找打印小票的pos打印机请进入下面的传送门,蓝牙打印目前没做过,有做过的请指教. pos打印机传送门: 1. https://www. ...

  5. [开源框架推荐]Icepdf:纯java的pdf文档的提取和转换库

    ICEpdf 是一个轻量级的开源 Java 语言的 PDF 类库.通过 ICEpdf 可以用来浏览.内容提取和转换 PDF 文档,而无须一些本地PDF库的支持. 可以用来做什么? 1.从pdf文件中提 ...

  6. Java 设置PDF文档背景——单色背景、图片背景

    一般生成的PDF文档默认的文档底色为白色,我们可以通过一定方法来更改文档的背景色,以达到文档美化的作用. 以下内容提供了Java编程来设置PDF背景色的方法.包括2种设置方法: 设置纯色背景色 设置图 ...

  7. Java 设置PDF文档浏览偏好

    在查看PDF文档时,可进行一些浏览偏好设置,例如是否全屏浏览.隐藏或显示菜单栏/工具栏.设置页面布局模式等,下面将通过Java编程的方式来演示如何设置. 使用工具: Free Spire.PDF fo ...

  8. Java 打印Word文档

    本文介绍如何在Java程序中通过物理打印机和虚拟打印机来打印Word文档的方法.文中使用了类库Spire.Doc for Java,可通过官网下载jar文件并导入程序或者直接通过maven仓库安装导入 ...

  9. Java 在PDF文档中绘制图形

    本篇文档将介绍通过Java编程在PDF文档中绘制图形的方法.包括绘制矩形.椭圆形.不规则多边形.线条.弧线.曲线.扇形等等.针对方法中提供的思路,也可以自行变换图形设计思路,如菱形.梯形或者组合图形等 ...

随机推荐

  1. poi包的几行基本的设置单元格样式

    ——杂言:写过很多遍这段代码,今天姑且记录一下,便于翻阅. jar:poi-3.7.jar 注意:第8行应该调用cellStyle.setFillForeGroundColor(HSSFColor.G ...

  2. /*带动画效果的hover*/

    <!DOCTYPE html> /*带动画效果的hover*/ <html lang="en"> <head> <meta charset ...

  3. 22、IDP-ASE

    IDPASE https://github.com/bdeonovic/IDPASE.jl Prepare necessary input files (1)FASTQ file of your hy ...

  4. ubuntu判断系统是32位还是64位

    1. 打开终端. 2. 输入命令  sudo uname -m 3. 如果输出为 x86_64, 则说明是64位操作系统:如果输出为 i686,说明是32位操作系统.

  5. 获得Servlet的初始化参数

    通过ServletConfig接口的getInitParameter(java.lang.String name)方法

  6. redis学习总结2

    redis配置文件说明:以下这篇文章已经说明的很明白了.感谢~ http://blog.sina.com.cn/s/blog_636415010101970j.html

  7. hdu1071

    #include <iostream> #include <stdio.h> using namespace std; int main() { int t; double x ...

  8. 【转】log4j.properties 详解与配置步骤 - edward0830ly的专栏 - 博客频道 - CSDN.NET

    一.log4j.properties 的使用详解 1.输出级别的种类 ERROR.WARN.INFO.DEBUGERROR 为严重错误 主要是程序的错误WARN 为一般警告,比如session丢失IN ...

  9. 【C#】截取字符串

    几个经常用到的字符串的截取 string str="123abc456"; int i=3; 1 取字符串的前i个字符 str=str.Substring(0,i); // or ...

  10. jq写的上拉刷新

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...