Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1052192
  • 博文数量: 92
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 909
  • 用 户 组: 普通用户
  • 注册时间: 2017-10-27 10:00
  • 认证徽章:
文章分类

全部博文(92)

文章存档

2019年(38)

2018年(45)

2017年(9)

我的朋友

分类: Java

2019-07-11 14:03:45

以下内容归纳了通过Java程序打印PDF文档时的3种情形。即:


  • 静默打印
  • 显示打印对话框打印
  • 打印PDF时自定义纸张大小


使用工具:Spire.PDF for Java

Jar文件获取及导入

方法1通过官网下载jar包。下载文件后,解压,并将lib文件夹下的Spire.Pdf.jar文件导入到java程序。

方法2可通过maven库导入。参考导入方法


Java代码示例

【示例1】静默打印

即通过使用默认打印机直接打印PDF文档。打印时,我们可以设置打印份数,设置纸张打印页边距等。

  1. import com.spire.pdf.*;
  2. import java.awt.print.*;

  3. public class Print {
  4.     public static void main(String[] args) {
  5.         //加载文档
  6.         PdfDocument pdf = new PdfDocument();
  7.         pdf.loadFromFile("Sample.pdf");

  8.         PrinterJob loPrinterJob = PrinterJob.getPrinterJob();
  9.         PageFormat loPageFormat = loPrinterJob.defaultPage();
  10.         Paper loPaper = loPageFormat.getPaper();

  11.         //删除默认页边距
  12.         loPaper.setImageableArea(0,0,loPageFormat.getWidth(),loPageFormat.getHeight());

  13.         //设置打印份数
  14.         loPrinterJob.setCopies(2);

  15.         loPageFormat.setPaper(loPaper);
  16.         loPrinterJob.setPrintable(pdf,loPageFormat);
  17.         try {
  18.             loPrinterJob.print();
  19.         } catch (PrinterException e) {
  20.             e.printStackTrace();
  21.         }
  22.     }
  23. }


【示例
2】显示打印对话框打印PDF文档

  1. import com.spire.pdf.*;
  2. import java.awt.print.*;

  3. public class Print {
  4.     public static void main(String[] args) {
  5.         //加载文档
  6.         PdfDocument pdf = new PdfDocument();
  7.         pdf.loadFromFile("Sample.pdf");

  8.         PrinterJob loPrinterJob = PrinterJob.getPrinterJob();
  9.         PageFormat loPageFormat = loPrinterJob.defaultPage();
  10.         Paper loPaper = loPageFormat.getPaper();

  11.         //删除默认页边距
  12.         loPaper.setImageableArea(0,0,loPageFormat.getWidth(),loPageFormat.getHeight());

  13.         loPageFormat.setPaper(loPaper);
  14.         loPrinterJob.setPrintable(pdf,loPageFormat);

  15.         //显示打印对话框
  16.         if (loPrinterJob.printDialog()) {
  17.             try {
  18.                 loPrinterJob.print();
  19.             } catch (PrinterException e) {
  20.                 e.printStackTrace();
  21.             }
  22.         }
  23.     }
  24. }


【示例
3】打印时自定义纸张大小

  1. import com.spire.pdf.*;
  2. import java.awt.print.*;
  3. public class Print {
  4.     public static void main(String[] args) {
  5.         //加载文档
  6.         PdfDocument pdf = new PdfDocument();
  7.         pdf.loadFromFile("Sample.pdf");

  8.         PrinterJob loPrinterJob = PrinterJob.getPrinterJob();
  9.         PageFormat loPageFormat = loPrinterJob.defaultPage();

  10.        //设置打印纸张大小
  11.         Paper loPaper = loPageFormat.getPaper();
  12.         loPaper.setSize(500,600);
  13.         loPageFormat.setPaper(loPaper);
  14.         loPrinterJob.setPrintable(pdf,loPageFormat);
  15.         try {
  16.             loPrinterJob.print();
  17.         } catch (PrinterException e) {
  18.             e.printStackTrace();
  19.         }
  20.     }
  21. }
如果需要更详细的打印设置,可以在PrinterJob下设置相应的参数,可参考:https://www.programcreek.com/java-api-examples/java.awt.print.PrinterJob 

(本文完)


阅读(87) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册