Q画像出力を行う際の注意点はありますか。
A回答
biz-Streamで画像出力を行う際に使用する際に、注意した方がよいポイントについて解説いたします。
1. biz-Streamで利用可能な機能
biz-Streamにて画像出力を行う機能には以下のものがあります。
機能 | 要素名/XMLタグ | 説明 |
---|---|---|
イメージ | <Image> | 画像の表示。 biz-Streamのバージョンにより内部で画像処理を行うライブラリが異なります。 v4では、AWT*1又はJAI*2のAPIを利用します。 v5では、AWT*1又はACI*3のAPIを利用します。 |
リンク付きイメージ | <LinkImage> | 画像をクリックした際に指定したURIリンク先に接続することが可能です。 |
白黒2値イメージ | <MonochromeImage> | モノクロ画像として処理します。 |
CCITTFaxXイメージ | <CCITTFaxXImage> | CCITTFaxのイメージ(TIFF)を変換せずに埋め込みます。 |
JBIG2イメージ | <JBIG2XImage> | JBIG2形式の画像を処理します。JBIG2イメージを変換せずに埋め込みます。 biz-Stream v4.5よりご利用可能です。 |
SVGファイル・インポート | <svg:import> | SVG形式ファイルのインポートを行います。 SVG形式画像とは異なり描画命令であり、この描画命令を埋め込みます。 |
- ※1 AWT (Abstract Windowing Toolkit) : Javaに標準で付属する画像処理ライブラリ
- ※2 JAI (Java Advanced Imaging) : 高機能画像処理ライブラリ
- ※3 ACI (Apache Commons Imaging) : 高機能画像処理ライブラリ
2. 「イメージ<Image>」「リンク付きイメージ<LinkImage>」のFormat属性
biz-Stream では、イメージファイルを処理する方法として、JDK に含まれている AWT と、より高度な処理を行える JAI (v5からはACI) を採用しています。
これらのパッケージの主な相違点は、対応しているイメージフォーマットの違いにあります。
「イメージ<Image>」、「リンク付きイメージ<LinkImage>」のFormat属性の設定を切り替えることによって内部処理で使用するJavaAPIの種類を切り替えることができます。
Format属性に「rgb」を指定した場合はAWTのAPIを使用します。「cmyk」を指定した場合は、v4ではJAI のAPI、v5ではACI のAPIを使用します。
透過GIFやTIFFなどAWTでは扱えない画像を扱いたい場合や、サーバ環境でX Serverに接続できない場合では、Format属性に「cmyk」を指定します。
3. UNIX/Linux(Windows以外)のOSで画像表示を行った場合に、例外「java.lang.InternalError: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.」が発生する
画像を表示するためAWTのAPIを利用する際に、実行ホスト上でX Serverに接続できないことが原因ですが、次のいずれかの対策を適用することにより正常に画像を表示できます。
- X Server環境を準備する
実行ホスト上で、X Serverに接続できる環境を構築します。 biz-Streamが実行するプロセスがX Serverに接続できなければならないため、biz-Streamを実行するプロセス(アプリケーションサーバ、Java VM等)の環境変数DISPLAY="DisplayHost:0.0"の設定が必要となります。
- 要素 <Image>、<LinkImage> の属性 Format に cmyk を設定
画像処理にJAI (v5からはACI) ライブラリを使用することにより、X Serverとの接続が不要になります。
なお本事象は、biz-Stream v5ではすでに解消されており、本エラーは発生いたしません。
- biz-Stream v4 でJAIライブラリを利用する場合は、別のエラーメッセージが出力される場合があります。
併せて「JAI のエラーメッセージ 「Error: Could not find mediaLib accelerator wrapper classes. 」に関して」をご参照ください。
4. (設計図面など)解像度が高い画像ファイルを扱う際に、実行時のメモリ消費量を極力抑えるには
画像ファイルの形式によって、次の要素を使用することで実現できます。
- CCITTFaxフォーマット(TIFF CCITT)の画像ファイルの場合
要素<CCITTFaxXImage>を使用します。 CCITTFaxの形式のままでPDFに出力するため、フォーマット画像の場合はこれを使用するとPDF生成時のメモリ消費が少なくなります。
- 白黒2値の画像ファイルの場合
要素<MonochromeImage>を使用します。PDFに出力するときに白黒2値として処理するため、メモリ消費が少なくなります。
5. JBIG2イメージ機能について
biz-Streamv4.5から、JBIG2イメージに対応する機能を追加しました。
イメージ<Image>は画像形式を変換しPDFファイル内部に保存しますが、JBIG2イメージ<JBIG2XImage>ではそのままの形式でPDFファイル内に埋め込むことができます。
このため、元画像が劣化することなくPDFを作成することが可能です。
通常Adobe Readert等のPDFビューアではJBIG2を表示することが可能です。
- 現在JBIG2イメージ<JBIG2XImage>はPDF生成のみ有効です。ダイレクト印刷機能/バッチ印刷機能/Excel出力には未対応です。
6. SVGの対応バージョン
SVG1.0のワーキングドラフト2000/03/03版にて検証しています。 SVG1.0以降の仕様への対応につきましては、今後の検討課題に挙げておりますが、現製品においても、レイアウトへの組み込み時のタグの記述の仕方によって対応できるものが多くあります。SVG1.0以降の利用における問題につきましては、恐れ入りますが個別にお問い合わせください。
7. アプリケーションによる画像の変更
biz-Streamでは固定的に画像を表示するだけでなく、アプリケーションより画像を変更することが可能です。
画像の変更方法は通常のデータ設定と同様に、画像ファイルのパス(C:/TEMP/image.jpg や /tmp/image.png)を設定します。
- 製品概要
- レイアウト・デザイナ ガイド
- レイアウト・デザイナ for Excel ガイド
- XMLドキュメントレイアウトタグ リファレンス
- XMLページレイアウトタグ リファレンス
- レイアウトサンプル
- テンプレート
- ライブラリ共通ガイド
- PDF出力ガイド
- Excel出力ガイド
- CSV出力ガイド
- javadoc - Javaライブラリ apidoc
- ダイレクト印刷ガイド
- バッチ印刷ガイド
- ヘルスチェッカーガイド
- Webサービスサーバ ガイド
- クラウドストレージ出力
- javadoc - soap apidoc (コンテンツ生成)
- javadoc - soap apidoc (コンテンツ管理)
- アプリケーションサンプル