第127章 プリンター
プリンターコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Apache Camel 2.1 から利用可能
プリンター コンポーネントは、ルート上のペイロードをプリンターに転送する方法を提供します。当然ながら、ペイロードは、コンポーネントが適切に出力するためにペイロードをフォーマットする必要があります。目的は、特定のペイロードをジョブとして Apache Camel フローのラインプリンターに転送することです。
このコンポーネントはプロデューサーエンドポイントのみをサポートします。
この機能により、javax 印刷 API を使用して local、remote、またはワイヤレスリンクされたプリンターという名前のデフォルトのプリンターでペイロードを出力できます。
Maven ユーザーは、このコンポーネントの
pom.xml に以下の依存関係を追加する必要があります。
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-printer</artifactId>
<version>x.x.x</version>
<!-- use the same version as your Camel core version -->
</dependency>
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
プリンターの URI スキームは標準化されていないため(標準が IETF 印刷標準となるため、ベンダーによって均一に適用されるものではない)、スキームとして lpr が選択されています。
lpr://localhost/default[?options]
lpr://remotehost:port/path/to/printer[?options]
URI にクエリーオプションは
?option=value&option=value&.. の形式で追加できます。
オプション リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
mediaSize
|
NA_LETTER
|
javax.print.attribute.standard.MediaSizeName API の列挙名で定義されるように companyary を設定します。デフォルト設定では North American Letter sized sitesary を使用します。値のケースは無視されます。たとえば、iso_a4 および ISO_A4 の値を使用できます。
|
コピー
|
1
|
javax.print.attribute.standard.Copies API に基づいてコピー数を設定します。
|
sides
|
Sides.ONE_SIDED
|
javax.print.attribute.standard.Sides API に基づいてサイドまたは 2 つのサイド印刷を設定します。
|
flavor
|
DocFlavor.BYTE_ARRAY
|
javax.print.DocFlavor API に基づいて DocFlavor を設定します。
|
mimeType
|
AUTOSENSE
|
javax.print.DocFlavor API でサポートされる mimeTypes を設定します。
|
mediaTray
|
AUTOSENSE
|
Camel 2.11.x は javax.print.DocFlavor API によってサポートされる MediaTray を設定するため、 |
printerPrefix
|
null
|
Camel 2.11.x はプリンターの接頭辞名を設定するため、プリンター名が //hostname/printer で開始されていない場合に便利です。 |
sendToPrinter
|
true
|
このオプションを false に設定すると、印刷データ がプリンターに送信されなくなります。
|
オリエンテーション
|
portrait
|
Camel 2.13.x 以降、ページ指向を設定します。設定可能な値: portrait、landscape、reverse-portrait または reverse-landscape javax.print.attribute.standard.OrientationRequested
|
プリンタープロデューサー リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
プリンターへのデータ送信は非常に簡単で、ルートの にメッセージ交換を送信することができるプロデューサーエンドポイントを作成します。
例 1: アルファベットおよび 1 サイドモードでデフォルトプリンターでテキストベースのペイロードを出力する リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
RouteBuilder builder = new RouteBuilder() {
public void configure() {
from(file://inputdir/?delete=true)
.to("lpr://localhost/default?copies=2" +
"&flavor=DocFlavor.INPUT_STREAM&" +
"&mimeType=AUTOSENSE" +
"&mediaSize=NA_LETTER" +
"&sides=one-sided")
}};
例 2: A4 sitesary および 1 サイドモードでリモートプリンターで GIF ベースのペイロードを出力する リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
RouteBuilder builder = new RouteBuilder() {
public void configure() {
from(file://inputdir/?delete=true)
.to("lpr://remotehost/sales/salesprinter" +
"?copies=2&sides=one-sided" +
"&mimeType=GIF&mediaSize=ISO_A4" +
"&flavor=DocFlavor.INPUT_STREAM")
}};
例 3: 日本語の投稿者および 1 サイドモードでリモートプリンターで JPEG ベースのペイロードを出力する リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
RouteBuilder builder = new RouteBuilder() {
public void configure() {
from(file://inputdir/?delete=true)
.to("lpr://remotehost/sales/salesprinter" +
"?copies=2&sides=one-sided" +
"&mimeType=JPEG" +
"&mediaSize=JAPANESE_POSTCARD" +
"&flavor=DocFlavor.INPUT_STREAM")
}};