- - PR -
Java Aplication で、PDF又はPSファイルの印刷について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-11-22 14:26
Java アプリケーションで、PDF又はPSファイルを印刷したいと思います。
プリンターがサポートしてる機能は次のPGで調べてみました。 DocFlavor[] myFlavors = myDefService.getSupportedDocFlavors(); loop = myFlavors.length; DocFlavor flavor; for (int i = 0; i < myFlavors.length; i++) { flavor = myFlavors[i]; System.out.println("toString: " + flavor.toString()); } ----------------------- 実行結果 --------------------------- toString: image/gif; class="[B" toString: image/gif; class="java.io.InputStream" toString: image/gif; class="java.net.URL" toString: image/jpeg; class="[B" toString: image/jpeg; class="java.io.InputStream" toString: image/jpeg; class="java.net.URL" toString: image/png; class="[B" toString: image/png; class="java.io.InputStream" toString: image/png; class="java.net.URL" toString: application/x-java-jvm-local-objectref; class="java.awt.print.Pageable" toString: application/x-java-jvm-local-objectref; class="java.awt.print.Printable" toString: application/octet-stream; class="[B" toString: application/octet-stream; class="java.net.URL" toString: application/octet-stream; class="java.io.InputStream" --------------------------------------------------------------- 上記の環境から、PDF又はPSファイルを印刷するには、 どのようにすれば良いか行き詰ってます。 現状は、下記のPGを作ってます。 エラー、例外は発生してないのですが、印刷されないです。 public void doPrint() throws FileNotFoundException, PrintException, Exception { InputStream stream = new FileInputStream("******.pdf"); DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE; Doc doc = new SimpleDoc(stream, flavor, null); PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet(); aset.add(new Copies(1)); aset.add(MediaSizeName.ISO_A4); aset.add(Sides.ONE_SIDED); PrintService service = PrintServiceLookup.lookupDefaultPrintService(); DocPrintJob job = service.createPrintJob(); job.print(doc, aset); } 一応最後までPGは流れるのですが、印刷されてこないです。 どこが悪いのか調査してますが、いまだにわからないです。 ご存知の方、ご指摘いただけないでしょうか? |
|
投稿日時: 2004-11-22 14:45
DocFlavor一覧をみていただけると分かるとおり、あなたが使用しているJREの
Print Serviceの実装では、PS、PDF印刷に対応していません。 Print Service APIは、統一したAPIで印刷できるようにしよう、という要求か ら出来たものですが、Sunが提供しているデフォルトの実装は、全てのフォーマ ットに対して提供されているわけではないです。 定数は切られているのですけれど。 どこかからPDF印刷用Print Serviceプロバイダ実装を探す(あるかな?)か、ほか の方法を探すか、ということになると思います。 |
|
投稿日時: 2004-11-27 00:44
現在開発中のアプリでは、java.lang.Runtime クラスのメソッド
public Process exec(String command)で Adobe Readerを起動しています。 たとえば、次のフォーラムでも同じトピックを扱っています。(英語) http://forum.java.sun.com/thread.jspa?forumID=4&messageID=2742166&threadID=293692 コマンドラインから次のコマンドで任意のプリンターからの直接出力ができます。 C:\Program Files\Adobe\\Acrobat 6.0\Reader\AcroRd32.exe /t ファイル名 プリンター名 ただし、この機能がAdobeによって正式サポートされているかはについてはちょっとわかりません。 情報をお持ちの方いらっしゃいますか? |
1