1. 程式人生 > >Java 列印PDF文件的3種情況

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)

 

(本文