关于java:Java-打印PDF文档

10次阅读

共计 2337 个字符,预计需要花费 6 分钟才能阅读完成。

本文将介绍如何在 Java 应用程序中打印 PDF 文档。个别有以下三种常见打印形式:

  • 静默打印
  • 显示打印对话框打印
  • 打印 PDF 时自定义纸张大小
应用工具:Free Spire.PDF for Java
创立运行环境:

形式 1: 通过官网下载组件,解压后将 lib 文件夹下的 Spire.Pdf.jar 手动导入 IDEA 中。具体步骤可参考下图。

形式 2: 通过 Maven 仓库装置产品及导入相干依赖包。在 pom.xml 文件中配置 Maven 仓库门路,及指定 Free Spire.PDF for Java 的 Maven 依赖。

<repositories>
<repository>
<id>com.e-iceblue</id>
<url>http://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.pdf.free</artifactId>
<version>2.6.3</version>
</dependency>
</dependencies>

配置实现后,在 IDEA 中,您只需点击 ”Import Changes” 即可导入 JAR 包;在 Eclipse 中,则需点击 ”Save” 按钮。

代码演示

静默打印
import com.spire.pdf.*;
import java.awt.print.*;

public class Print {public static void main(String[] args) {
        // 加载文档
        PdfDocument pdf = new PdfDocument();
        pdf.loadFromFile("C:\\Users\\Test1\\Desktop\\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();
        }
    }
}
显示打印对话框打印 PDF 文档
import com.spire.pdf.*;
import java.awt.print.*;

public class Print {public static void main(String[] args) {
        // 加载文档
        PdfDocument pdf = new PdfDocument();
        pdf.loadFromFile("C:\\Users\\Test1\\Desktop\\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();
            }
        }
    }
}
打印时自定义纸张大小
import com.spire.pdf.*;
import java.awt.print.*;

public class Print {public static void main(String[] args) {
        // 加载文档
        PdfDocument pdf = new PdfDocument();
        pdf.loadFromFile("C:\\Users\\Test1\\Desktop\\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();
        }
    }
}
正文完
 0