トラスト・ソフトウェア・システム
トラスト・ソフトウェア・システム

PDF Printer(PDF文書印刷) Javaサンプル

「PDF Printer」ソフトは、PDF文書を印刷するためのコンポーネントです。

このコンポーネントは高いパフォーマンスと統合のし易さが特徴で、以下の3つのバージョンで提供しています。
  • APIバージョンではアプリケーションに印刷機能を追加でき、それを制御します。
  • コマンドライン(バッチ処理)での大量印刷。
  • バックグラウンドでの自動印刷を行うサービス。
印刷するPDF文書は、インターネット上の文書をHTTPで指定できます。

表示しているPDF文書を印刷する場合は、PDFViewer(PDF表示)でも印刷できます。

他にC++C#VB6.0 のサンプルを公開しています。
無償評価版(リンク先は英語)はこちらです。 ダウンロード手順
PDF Printer ソフト 購入(価格)

無償評価版のダウンロードとインストール

 ライブラリ(評価版API)は無償でダウンロード(試用)できますので、PDF Printer ダウンロード手順を参照してダウンロードください。
 ファイルをダウンロードしてから、インストールもしくは適当なフォルダーに解凍します。以下のようなフォルダーができあがりますので、適宜ご利用ください。
binライブラリやライセンスマネージャーなど
doc使用説明書やjavadocなど
includeC/C++用のヘッダー(.h)ファイル
jarPRNA.jar(Javaのラッパー)
libC/C++用のlibファイル
samples各種開発言語のサンプル
サンプルのコンパイルおよび実行前に、jar/PRNA.jarをCLASSPATHにコピーし、 bin/PdfPrintAPI.dllをPATHまたはjava.library.pathにコピーしてください。
また、無償評価版と共にダウンロードしたライセンスキーをbin/LicenseManager.exeを使って登録してください。 ライセンスキーの登録方法はこちらです。

1っのPDF文書を1っのプリンターで印刷する

 以下のサンプルでは、1っのPDF文書を1っのプリンターで印刷します。
 複数のPDF文書を複数のプリンターに振り分けて印刷する場合は、「複数のPDF文書を1っのプリンターで印刷する」を参照してください。
import com.pdftools.printer.Printer;

public class pprn_ss {

    public static void main(String[] args) {
        try{
            //インスタンス生成
            Printer doc=new Printer();

            //印刷
            doc.printFile("some.pdf", null, null, 1, -1);

            //終了
            doc.destroyObject();

        }catch(Throwable e){
            e.printStackTrace();
        }
    }
}
new Printer( ) インスタンス生成
printFile( ) 指定のPDF文書のすべてのページを、指定したプリンターで印刷します。
サンプルの場合は、デフォルトのプリンターで印刷します。
引数には以下の値を指定します。
第一引数印刷するPDFファイル名 (インターネット上のPDFを指定する場合)
第二引数プリンター名
nullを指定すると、デフォルトのプリンターで印刷
第三引数PDFが暗号化されている場合のパスワード
暗号化されていない場合は、nullを指定
第四引数印刷を開始するページ番号
第五引数印刷する最終のページ番号
-1を指定すると、最後のページまで印刷
destroyObject( )インスタンス開放

1っのPDF文書を1っのプリンターで印刷する(別の方法)

 このサンプルでは、1っのPDFを1っのプリンターでページを指定して印刷します。その際に印刷ジョブの開始と終了をコントロールします。
import com.pdftools.printer.Printer;

public class prn_ss2 {

    public static void main(String[] args) {
        try{

            //インスタンス生成
            Printer doc = new Printer();

                //プリンター
                doc.openPrinter(null);

                    //印刷ジョブ
                    doc.beginDocument("My Print Job");

                        //PDF文書
                        doc.open("some.pdf", null);

                            //印刷するページ
                            doc.printPage(1);

                        //終了
                        doc.close();
                    doc.endDocument();
                doc.closePrinter();
            doc.destroyObject();

        }catch(Throwable e){
            e.printStackTrace();
        }
    }
}
new Printer( )インスタンス生成
openPrinter( ) プリンターとの接続を開始します。引数には、プリンター名を指定します。nullを指定すると、デフォルトのプリンターとなります。
beginDocument( ) 印刷ジョブを開始します。引数に指定した名前のジョブになります。
open( ) 印刷するPDF文書を開きます。 (インターネット上のPDFを開く場合
引数には、以下を指定します。
第一引数印刷するPDFファイル名
第二引数PDFが暗号化されている場合のパスワード
暗号化されていない場合は、nullを指定
printPage( ) 印刷するページを指定します。
すべてのページを印刷する場合は、以下のようにします。
for(int i=1; i<=doc.getPageCount();i++){
    doc.printPage(i);
}
close( ) PDF文書を閉じます。
endDocument( ) 印刷ジョブを終了します。
closePrinter( ) プリンターとの接続を終了します。
destroyObject( ) インスタンスを開放します。

複数のPDF文書を1っのプリンターで印刷する

このサンプルでは、複数のPDF文書のページを指定して1っのプリンターで印刷します。
import com.pdftools.printer.Printer;

public class prn_ms {

    public static void main(String[] args) {
        try{
            //インスタンス生成
            Printer doc = new Printer();

                //プリンター
                doc.openPrinter(null);

                    //印刷ジョブ
                    doc.beginDocument("My Print Job");

                        //1っめのPDF文書
                        doc.open("first.pdf", null);
                            doc.printPage(1);    //1ページ目を印刷
                        doc.close();

                        //2っめのPDF文書
                        doc.open("second.pdf", null);
                            doc.printPage(3);    //3ページ目を印刷
                        doc.close();

                    //印刷ジョブを終了
                    doc.endDocument();

                //プリンター終了
                doc.closePrinter();

            //インスタンス開放
            doc.destroyObject();
        }catch(Throwable e){
            e.printStackTrace();
        }
    }
}
new Printer( ) インスタンス生成
openPrinter( ) プリンターとの接続を開始します。引数には、プリンター名を指定します。nullを指定すると、デフォルトのプリンターとなります。
beginDocument( ) 印刷ジョブを開始します。引数に指定した名前のジョブになります。
open( ) 印刷するPDF文書を開きます。 (インターネット上のPDFを開く場合)
printPage( ) 印刷するページを指定します。
すべてのページを印刷する場合は、以下のようにします。
for(int i=1; i<=doc.getPageCount();i++){
    doc.printPage(i);
}
close( ) PDF文書を閉じます。
「PDF文書を開く => 印刷するページを指定 => PDFを閉じる」の処理を、印刷するすべてのPDF文書に対して繰り返し実行します。
endDocument( ) 印刷ジョブを終了します。
closePrinter( ) プリンターとの接続を終了します。
destroyObject( ) インスタンスを開放します。

1っのPDF文書を複数のプリンターで印刷する

このサンプルでは、1っのPDF文書のページを指定して複数のプリンター(複数の印刷ジョブ)で印刷します。
import com.pdftools.printer.Printer;

public class print_sm {
    public static void main(String[] args) {
        try{
            //インスタンス生成
            Printer doc = new Printer();

                //PDF文書を開く
                doc.open("second.pdf", null);

                    //1っめのプリンターを開き、印刷ジョブを開始
                    doc.openPrinter("Microsoft XPS Document Writer");
                        doc.beginDocument("My First Job");
                            doc.printPage(1);
                        doc.endDocument();
                    doc.closePrinter();

                    //2っめのプリンターを開き、印刷ジョブを開始
                    doc.openPrinter("Microsoft Office Document Image Writer");
                        doc.beginDocument("My Second Job");
                            doc.printPage(3);
                        doc.endDocument();
                    doc.closePrinter();

                //PDF文書を閉じる
                doc.close();

            //インスタンス開放
            doc.destroyObject();
        }catch(Throwable e){
            e.printStackTrace();
        }
    }
}
new Printer( ) インスタンス生成
open( ) 印刷するPDF文書を開きます。 (インターネット上のPDFを開く場合)
openPrinter( ) プリンターとの接続を開始します。引数には、プリンター名を指定します。nullを指定すると、デフォルトのプリンターとなります。
beginDocument( ) 印刷ジョブを開始します。引数に指定した名前のジョブになります。
printPage( ) 印刷するページを指定します。
すべてのページを印刷する場合は、以下のようにします。
for(int i=1; i<=doc.getPageCount(); i++){
    doc.printPage(i);
}
endDocument( ) 印刷ジョブを終了します。
closePrinter( ) プリンターとの接続を終了します。
「プリンターを開く => 印刷ジョブを開始 => 印刷するページを指定 => 印刷ジョブを終了 => プリンターを閉じる」の処理を、印刷させたいプリンターすべてに繰り返します。
close( ) PDF文書を閉じます。
destroyObject( ) インスタンスを開放します。

インターネット上のPDF文書を指定して印刷する方法

PDF Printerは、PDF文書を指定する際にHTTPプロトコルでファイルを指定できます。以下の形式で指定します。
http://[username:password@]domain[:port][/resource]
"username"および"password"は基本認証(Basic Authentication)のユーザー名とパスワード指定です。
このように指定すると、ネットワーク上のPDF文書を直接指定のプリンターで印刷できます。複数のPDF文書を指定する場合は、ローカルのPDFとネットワーク(Web)上の(リモート)PDFを混在させることもできます。
具体的には、以下のようにファイルを指定します。
doc.printFile("http://www.pdf-tools.trustss.co.jp/data/Receipt2.pdf", null, null, 1, -1);
または、
doc.open("http://www.pdf-tools.trustss.co.jp/data/Receipt2.pdf", null);

ご質問、お問い合わせ

 メールで support@TrustSS.co.jp 宛てにお送りください。
または、質問のページからお送りいただくようお願いします。ご要望も承っております。(匿名で送れます。)

(記載の会社名および製品名は、各社の登録商標および商標です。)
PDF製品 Javaサンプル
PDF Security
PDF Validator
PDF to PDF/A Converter
PDF to Image Converter
Image to PDF Converter
PDF Printer
PDF Viewer
PDF Prep Tool Suite
PDF Optimization
PDF Command Line Suite
PDF Extract
PDF Easy Parse
株)トラスト・ソフトウェア・システム
暗号化・電子署名・タイムスタンプ ライブラリ作成します。
お問い合わせください。