Java 打印PDF文档 - 指定打印机、自定义纸张大小、设置打印参数、显示打印对话框等

这篇文章介绍如何在Java应用程序中打印PDF文档以及进行一些打印设置,包括指定打印机、自定义纸张大小、设置打印参数、以及显示打印对话框等。

导入jar文件

本文所使用的PDF类库是Spire.PDF for Java, 如果你的项目是maven工程的话,在pom.xml文件中添加如下依赖,即可导入Spire.PDF for Java库jar文件。

<repositories>

        <repository>

            <id>com.e-iceblue</id>

            <name>e-iceblue</name>

            <url>http://repo.e-iceblue.com/nexus/content/groups/public/</url>

        </repository>

</repositories>


<dependencies>

    <dependency>

        <groupId> e-iceblue </groupId>

        <artifactId>spire.pdf</artifactId>

        <version>2.1.3</version>

    </dependency>

    <dependency>

        <groupId>e-iceblue</groupId>

        <artifactId>spire.pdf.common</artifactId>

        <version>2.1.3</version>

    </dependency>

</dependencies>

如果不是maven,可通过官网下载最新的Spire.PDF for Java的jar文件(是一个压缩包,解压缩后在lib文件夹下可找到jar文件),然后按步骤将jar文件添加至程序中,下载地址

打印类代码参考

import com.spire.pdf.PdfDocument;
import javax.print.PrintService;
import java.awt.print.*;

public class PrintPDF {
    public static void main(String[] args) throws PrinterException {

        PdfDocument loDoc = new PdfDocument("Additional.pdf");

        PrinterJob loPrinterJob = PrinterJob.getPrinterJob();
        PageFormat loPageFormat  = loPrinterJob.defaultPage();
        Paper loPaper = loPageFormat.getPaper();
        loPaper.setSize(500,600);
        loPageFormat.setPaper(loPaper); //自定义纸张大小

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

        loPrinterJob.setPrintable(loDoc,loPageFormat);

        //指定打印机
        String printerName ="Microsoft XPS Document Writer";
        PrintService[] pservices = PrinterJob.lookupPrintServices();

        if (pservices.length > 0) {
            for (PrintService ps : pservices) {
                if (ps.getName().contains(printerName)) {
                    try {
                        loPrinterJob.setPrintService(ps);
                        break;
                    } catch (PrinterException e) {
                        e.printStackTrace();
                    }

                }
            }
        }

        try {
            loPrinterJob.print(); //进行打印

            /*//显示打印对话框
            if(loPrinterJob.printDialog()) {
                //Print the pdf document
                loPrinterJob.print();
            }*/
        } catch (PrinterException e) {
            e.printStackTrace();
        }
    }
}

文中只介绍了部分打印设置,如果需要更详细的设置,可以自己在PrinterJob下设置相应的参数,在线帮助文档:https://www.programcreek.com/java-api-examples/java.awt.print.PrinterJob

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值