2013-06-03 8 views
6

からPhantomjsこんにちは私はphantomjsに新しいです、は、私はコマンドを使用してPDFにHTMLを生成しているjavascriptの、JSPまたはJava

を実行します。しかし、私はページ上のボタンをクリックしてPDFを生成したい。 phantomjsを何らかの方法で呼び出して、与えられたURLをpdfに生成します。

生成するPDFをグラフや画像とともにHTMLとして生成し、JSPやサーブレットと簡単に統合できるいくつかのAPIを提案することもできます。

+0

を取ります。 JSPページの一部をPDFとして印刷したい。あなたはそれをどのように実装したのか分かりますか? –

答えて

21

私はあなたがしたいことが、Javaコード内からphantomjs実行ファイルを実行することを前提としています。

まず、実行するコマンドの完全なパスを知っている必要があります。ここでは、あなたのケースでは、phantomjsです。 zipをダウンロードした場合、これはファイルを解凍したディレクトリで、phantomjs.exe実行可能ファイルが表示されます。あなたは、端末から実行する完全なパスを見つけるために、パッケージマネージャを介して、それをダウンロードした場合:

あなたが使用する必要があります、というたら

​​

のようなものが表示されます

which phantomjs 

Runtimeクラスは、とりわけ、execを使用してOS上で直接コマンドを実行できるようにします。実行したものはProcessとして処理され、コマンドの出力を読むことができます。

あなたがしなければならない例外処理のない簡単な例です。

Process process = Runtime.getRuntime().exec("/usr/bin/phantomjs myscript.js"); 
    int exitStatus = process.waitFor(); 
    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader (process.getInputStream())); 

    String currentLine=null; 
    StringBuilder stringBuilder = new StringBuilder(exitStatus==0?"SUCCESS:":"ERROR:"); 
    currentLine= bufferedReader.readLine(); 
    while(currentLine !=null) 
    { 
     stringBuilder.append(currentLine); 
     currentLine = bufferedReader.readLine(); 
    } 
    System.out.println(stringBuilder.toString()); 

あなたがJVMに外部プロセスを作成しているとして、JVMが正確に制御していない、とあなたが管理していない場合は、プログラムの残りの部分に問題が生じる可能性があり、適切なエラー処理を行うようにしてください間違いなく

+0

ありがとうございましたChamakits :) – user2439207

+0

喜び:D これがあなたが探していた答えだったら、それを受け入れてマークして投票できますか?それがあなたが探していた答えでなかったら、それはうまくいく。 – chamakits

2

phantomjsリリース1.8からは、WebDriver Wire Protocolの実装であるゴーストドライバが利用できます。

phantomjをリモートサーバとして起動して、httpとの通信を可能にします。

$ phantomjs --webdriver=PORT

これは、詳細についてはどのようなプログラミング言語

との容易な統合を行い、私は同じ要件を持って見てhere

関連する問題