2009-07-29 19 views
1

アプリケーションはクライアント/サーバーの設定です。クライアントは常にWindowsで動作するスタンドアロンJavaアプリケーションであり、サーバーはCとWindowsまたはUnixマシン上で実行できます。さらに、さまざまなレポートを作成するためにPerlを使用します。一般に、レポートが動作する方法は、Perlのサーバー上にテキストファイルまたはxmlファイルを生成し、それをクライアントに送信することです。次に、クライアントはFOPなどを使用してxmlをpdfに変換します。テキストファイルまたは最終的なpdfのいずれかの場合、ユーザはJavaクライアントを介してプリンタを選択し、その上にコピーされたファイルが選択されたプリンタに印刷される。RAW印刷データをps/pdfに変換するか、Javaから印刷する必要があります

「レポート」の1つがバーコードを作成するために使用されます。これは、Perlを使用してデータベースからデータをフェッチ/フォーマットし、それをRaw印刷データを作成するCアプリケーションに送信するという点で異なります。このデータは、UnixのシンプルなパイプやWindowsのカスタムアプリケーションを経由して直接プリンタに送信されます。

問題は、これはJavaクライアントでユーザが選択したプリンタを尊重するものではありません。理想的には、生の印刷データをサーバー上(またはクライアント上)でps/pdfなどに変換してから、プリンタに送信することができます。実際に選択したプリンタにプレビューを表示することができます。

プレビューを生成できない場合は、ファイル内の生データをJavaクライアントにコピーして送信するだけでもそれはおそらく「十分に良い」ものになるでしょう。私は、私が受けようとしているものは何も見つけることができませんでした何か助けていただければ幸いです。

編集:RAWデータはPCL形式です。ソースをPCL言語リファレンスガイドと調整しました。

+0

RAW印刷データの形式は何ですか? –

+0

それは良い質問ですし、私は答えを知らないものもあります。私はデータを生成するソースファイルを持っていますが、探すべきものや質問に答える方法を知るためにはそれについて十分に知りません。 – Morinar

+0

私はOpenPCLビューアでデータを開いた...それはかなり見えませんでしたが、ほとんどそれがあった。私はそれがPCLかそれと同様であると推測できるようです... – Morinar

答えて

0

私はXSL-FOを使ってバーコードを直接生成する方法を考え出しました。これは私たちのアーキテクチャに基づいた "正しい"答えであり、他の何かをしようとするとちょうど汚れたハックだったでしょう。

0

iTextを見ましたか?

+0

私はそうしていませんが、現在のインストールベースの範囲のために、ここに新しいサードパーティのライブラリを持ち込むことは実際には実現できません。 – Morinar

+0

このリンクは質問に答えるかもしれませんが、ここに答えの重要な部分を含めて参考にしてください。リンクされたページが変更された場合、リンクのみの回答は無効になります。 – Jon

+0

@ジョン:実際の完全な答えではないとしても、それはOP質問を解決するのに役立つ可能性のあるツールへのポインタなので正当なものと思われます。 – Seki

0

PCLやHPGLのようなプリンタ言語が使用できる形式になっている可能性が最も高いRAW形式を解釈する方法を見つける必要があります。これはおそらくサーバサイドで最もよく行われます。

javaベースのPCLインタープリタは、http://openpcl.sourceforge.net/にあります。私はそれについての経験はありません。

関連する問題