JavaでExcelドキュメントを印刷する


JavaコードからのExcel文書の印刷は、Java開発者の共通の要件です.この記事では、Excelドキュメントを印刷し、無料のスパイスを使用して、すべての種類の印刷設定を設定する方法を紹介します.Java用のXLS.
PrinterジョブクラスとPageSuptupクラスの2つの重要なクラスがあります.彼らの定義について学ぶために、テーブルの下でチェックしてください.
クラス
定義
パッケージ
プリインタージョブ
PrinterJobクラスはプリンターを制御するプリンシパルクラスです.アプリケーションは、このクラスでメソッドを呼び出して、ジョブを設定し、必要に応じてユーザーと印刷ダイアログを起動し、ジョブのページを印刷します.
ジャバ.AWTプリント
ページアップ
ページ設定記述を表します.PageSetupオブジェクトには、プロパティとしてすべてのページ設定属性(左マージン、ボトムマージン、用紙サイズなど)が含まれます.また、印刷領域、印刷品質、印刷コメントなどの印刷設定属性が含まれます.
COM .尖塔XLSワークシート

spireのインストールXLSジャー
Mavenプロジェクトを作成する場合は、次の構成を使用して、アプリケーション内のJARを簡単にインポートできます.非Mavenプロジェクトの場合は、this linkから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.xls.free</artifactId>
        <version>3.9.1</version>
    </dependency>
</dependencies>

例1デフォルトプリンタで印刷する
import com.spire.xls.Workbook;
import java.awt.print.PageFormat;
import java.awt.print.Paper;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;

public class PrintByDefaultPrinter {
    public static void main(String[] args) {

        //Create a workbook and load an Excel file
        Workbook workbook = new Workbook();
        workbook.loadFromFile("C:\\Users\\Administrator\\Desktop\\Sample.xlsx");

        //Create a PrinterJob object
        PrinterJob printerJob = PrinterJob.getPrinterJob();

        //Create a PageFormat object and set it to the default size and orientation
        PageFormat pageFormat = printerJob.defaultPage();

        //Return a copy of the Paper object associated with this PageFormat
        Paper paper = pageFormat.getPaper();

        //Set the imageable area of this Paper
        paper.setImageableArea(0, 0, pageFormat.getWidth(), pageFormat.getHeight());

        //Set the number of copies
        printerJob.setCopies(1);

        //Set the Paper object for this PageFormat
        pageFormat.setPaper(paper);

        //Call painter to render the pages in the specified format
        printerJob.setPrintable(workbook, pageFormat);

        //Execute print
        try {
            printerJob.print();
        } catch (PrinterException e) {
            e.printStackTrace();
        }
    }
}

例2特定のプリンタで印刷する
import com.spire.xls.Workbook;
import javax.print.PrintService;
import java.awt.print.PageFormat;
import java.awt.print.Paper;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;

public class PrintExcel {

    public static void main(String[] args) throws Exception{

        //Create a workbook and load an Excel file
        Workbook workbook = new Workbook();
        workbook.loadFromFile("C:\\Users\\Administrator\\Desktop\\Sample.xlsx");

        //Create a PrinterJob object
        PrinterJob printerJob = PrinterJob.getPrinterJob();

        //Create a PageFormat object and set it to the default size and orientation
        PageFormat pageFormat  = printerJob.defaultPage();

        //Specify printer name
        PrintService myPrintService = findPrintService("\\\\192.168.1.104\\HP LaserJet P1007");
        printerJob.setPrintService(myPrintService);

        //Return a copy of the Paper object associated with this PageFormat
        Paper paper = pageFormat .getPaper();

        //Set the imageable area of this Paper
        paper.setImageableArea(0,0,pageFormat .getWidth(),pageFormat .getHeight());

        //Set the Paper object for this PageFormat
        pageFormat .setPaper(paper);

        //Set the number of copies
        printerJob .setCopies(1);

        //Call painter to render the pages in the specified format
        printerJob .setPrintable(workbook,pageFormat);

        //Execute print
        try {
            printerJob.print();
        } catch (PrinterException e) {
            e.printStackTrace();
        }
    }
    //Get print service by printer name
    private static PrintService findPrintService(String printerName) {

        PrintService[] printServices = PrinterJob.lookupPrintServices();
        for (PrintService printService : printServices) {
            if (printService.getName().equals(printerName)) {
                return printService;
            }
        }
        return null;
    }
}

例3PageSetupオブジェクトを設定する
import com.spire.xls.*;
import java.awt.print.PageFormat;
import java.awt.print.Paper;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;

public class SetPrintSettingsThroughPageSetup {

    public static void main(String[] args) {

        //Create a workbook and load an Excel file
        Workbook workbook = new Workbook();
        workbook.loadFromFile("C:\\Users\\Administrator\\Desktop\\Sample.xlsx");

        //Get the first worksheet
        Worksheet worksheet = workbook.getWorksheets().get(0);

        //Get the PageSetup object
        PageSetup pageSetup = worksheet.getPageSetup();

        //Specify the print area
        pageSetup.setPrintArea("A1:E19");

        //Set row 1 as the title row, which means row 1 will be printed repeatedly at the top of each page
        pageSetup.setPrintTitleRows("$1:$1");

        //Allow to print grid lines
        pageSetup.isPrintGridlines(true);

        //Allow to print headings
        pageSetup.isPrintHeadings(true);

        //Allow to print worksheet in black & white mode
        pageSetup.setBlackAndWhite(true);

        //Set print quality
        pageSetup.setPrintQuality(150);

        //Set the order that Microsoft Excel uses to number pages when printing a large worksheet
        pageSetup.setOrder(OrderType.OverThenDown);

        //Print document through PrinterJob interface
        PrinterJob printerJob = PrinterJob.getPrinterJob();
        PageFormat pageFormat  = printerJob.defaultPage();
        Paper paper = pageFormat.getPaper();
        paper.setImageableArea(0,0,pageFormat.getWidth(),pageFormat.getHeight());
        printerJob.setCopies(1);
        pageFormat.setPaper(paper);
        printerJob.setPrintable(workbook,pageFormat);
        try {
            printerJob.print();
        } catch (PrinterException e) {
            e.printStackTrace();
        }
    }
}