PDF Printer(PDF文書印刷) Javaサンプル
「PDF Printer」ソフトは、PDF文書を印刷するためのコンポーネントです。
このコンポーネントは高いパフォーマンスと統合のし易さが特徴で、以下の3つのバージョンで提供しています。
表示しているPDF文書を印刷する場合は、PDFViewer(PDF表示)でも印刷できます。
このコンポーネントは高いパフォーマンスと統合のし易さが特徴で、以下の3つのバージョンで提供しています。
- APIバージョンではアプリケーションに印刷機能を追加でき、それを制御します。
- コマンドライン(バッチ処理)での大量印刷。
- バックグラウンドでの自動印刷を行うサービス。
表示しているPDF文書を印刷する場合は、PDFViewer(PDF表示)でも印刷できます。
無償評価版のダウンロードとインストール
ライブラリ(評価版API)は無償でダウンロード(試用)できますので、PDF Printer ダウンロード手順を参照してダウンロードください。
ファイルをダウンロードしてから、インストールもしくは適当なフォルダーに解凍します。以下のようなフォルダーができあがりますので、適宜ご利用ください。
サンプルのコンパイルおよび実行前に、jar/PRNA.jarをCLASSPATHにコピーし、
bin/PdfPrintAPI.dllをPATHまたはjava.library.pathにコピーしてください。
また、無償評価版と共にダウンロードしたライセンスキーをbin/LicenseManager.exeを使って登録してください。 ライセンスキーの登録方法はこちらです。
ファイルをダウンロードしてから、インストールもしくは適当なフォルダーに解凍します。以下のようなフォルダーができあがりますので、適宜ご利用ください。
bin | ライブラリやライセンスマネージャーなど |
doc | 使用説明書やjavadocなど |
include | C/C++用のヘッダー(.h)ファイル |
jar | PRNA.jar(Javaのラッパー) |
lib | C/C++用のlibファイル |
samples | 各種開発言語のサンプル |
また、無償評価版と共にダウンロードしたライセンスキーをbin/LicenseManager.exeを使って登録してください。 ライセンスキーの登録方法はこちらです。
1っのPDF文書を1っのプリンターで印刷する
以下のサンプルでは、1っのPDF文書を1っのプリンターで印刷します。
複数のPDF文書を複数のプリンターに振り分けて印刷する場合は、「複数の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文書のすべてのページを、指定したプリンターで印刷します。 サンプルの場合は、デフォルトのプリンターで印刷します。 引数には以下の値を指定します。
| ||||||||||
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を開く場合) 引数には、以下を指定します。
|
||||
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);
ご質問、お問い合わせ
(記載の会社名および製品名は、各社の登録商標および商標です。)