Java Word文書を印刷する方法

<p>今日は、JavaでWord文書を印刷する方法を紹介していただきます。Spire.doc for Javaで三つのやり方があって、すなわち：</p>
<ol>
<li>PrinterJobクラスで印刷</li>
<li>物理プリンターに印刷</li>
<li>仮想プリンターに印</li>
</ol>
<p>というものになります。</p>
<p>では、今それぞれを紹介させていただきましょう。</p>
<h4> 下準備</h4>
<p>1.E-iceblueの公式サイトから<a href="https://www.e-iceblue.com/Download/doc-for-java-free.html">Free Spire.doc for Java</a>無料版をダウンロードしてください。</p>
<p><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/l/lendoris/20201216/20201216121839.png" alt="f:id:lendoris:20201216121839p:plain" title="" class="hatena-fotolife" itemprop="image" /></p>
<p>2.IDEを起動して新規プロジェクトを作成してから、インストールされたファイルにあった相応しいSpire.doc.jarを参照に追加してください。</p>
<p><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/l/lendoris/20201216/20201216121911.png" alt="f:id:lendoris:20201216121911p:plain" title="" class="hatena-fotolife" itemprop="image" /></p>
<h4>PrinterJobクラスで印刷</h4>
```JAVA
import com.spire.doc.*;
import java.awt.print.*;
public class WordPrint {

    public static void main(String[] args) throws Exception {
        // Documentをロードします。
        Document doc = new Document();
        doc.loadFromFile("Sample.docx");

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

        //用紙サイズを設定します。 
        Paper loPaper = loPageFormat.getPaper();
        loPaper.setSize(600, 500);
        loPageFormat.setPaper(loPaper);

        //デフォルトのマージンを削除します。
        loPaper.setImageableArea(0, 0, loPageFormat.getWidth(), loPageFormat.getHeight());
        //印刷部数を設定します。
        loPrinterJob.setCopies(1);
        loPrinterJob.setPrintable(doc, loPageFormat);
        //ダイアログボックスを設定します。
        if (loPrinterJob.printDialog()) {
            //印刷します。
            try {
                loPrinterJob.print();
            } catch (PrinterException e)

            {
                e.printStackTrace();
            }
        }
    }
}

```

<h4>物理プリンターに印刷</h4>
```JAVA
import com.spire.doc.Document;
import com.spire.ms.System.Drawing.Printing.PrinterSettings;

public class PrintWord {

    public static void main(String[] args) {

        //Wordをロードします。
        Document document = new Document();
        document.loadFromFile("C:\\Users\\Administrator\\Desktop\\DocoumentToPrint.docx");

        //PrinterSettings objectを作成します。
        PrinterSettings printerSettings = new PrinterSettings();

        //物理プリンターの名前を設定します。
        printerSettings.setPrinterName("\\\\192.168.1.104\\HP LaserJet P1007");

        //印刷部数を設定します。
        printerSettings.setCopies((short) 1);

        //印刷範囲を設定します。
        printerSettings.setFromPage(2);
        printerSettings.setToPage(4);

        //設定を適用します。
        document.getPrintDocument().setPrinterSettings(printerSettings);

        //印刷します。
        document.getPrintDocument().print();
    }
}
```


<h4>仮想プリンターに印刷</h4>
```JAVA
import com.spire.doc.Document;
import com.spire.ms.System.Drawing.Printing.PrinterSettings;

public class PrintWord {

    public static void main(String[] args) {

        //Wordをロードします。
        Document document = new Document();
        document.loadFromFile("C:\\Users\\Administrator\\Desktop\\DocumentToPrint.docx");

        //PrinterSettingsオブジェクトを作成します。
        PrinterSettings printerSettings = new PrinterSettings();

        //仮想プリンターを設定します。
        printerSettings.setPrinterName("Microsoft Print to PDF");

        //ファイルに印刷します。
        printerSettings.setPrintToFile(true);

        //ファイルの保存場所と名前を設定します。
        printerSettings.setPrintFileName("output/PrintToPDF.pdf");

        //設定を適用します。
        document.getPrintDocument().setPrinterSettings(printerSettings);

        //印刷します。
        document.getPrintDocument().print();
    }
}
```

<p><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/l/lendoris/20201216/20201216122015.png" alt="f:id:lendoris:20201216122015p:plain" title="" class="hatena-fotolife" itemprop="image" /></p>
<p><br /><br /></p>
<p> </p>