からPhantomjsこんにちは私はphantomjsに新しいです、は、私はコマンドを使用してPDFにHTMLを生成しているjavascriptの、JSPまたはJava
を実行します。しかし、私はページ上のボタンをクリックしてPDFを生成したい。 phantomjsを何らかの方法で呼び出して、与えられたURLをpdfに生成します。
生成するPDFをグラフや画像とともにHTMLとして生成し、JSPやサーブレットと簡単に統合できるいくつかのAPIを提案することもできます。
からPhantomjsこんにちは私はphantomjsに新しいです、は、私はコマンドを使用してPDFにHTMLを生成しているjavascriptの、JSPまたはJava
を実行します。しかし、私はページ上のボタンをクリックしてPDFを生成したい。 phantomjsを何らかの方法で呼び出して、与えられたURLをpdfに生成します。
生成するPDFをグラフや画像とともにHTMLとして生成し、JSPやサーブレットと簡単に統合できるいくつかのAPIを提案することもできます。
私はあなたがしたいことが、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が正確に制御していない、とあなたが管理していない場合は、プログラムの残りの部分に問題が生じる可能性があり、適切なエラー処理を行うようにしてください間違いなく
ありがとうございましたChamakits :) – user2439207
喜び:D これがあなたが探していた答えだったら、それを受け入れてマークして投票できますか?それがあなたが探していた答えでなかったら、それはうまくいく。 – chamakits
phantomjsリリース1.8からは、WebDriver Wire Protocolの実装であるゴーストドライバが利用できます。
phantomjをリモートサーバとして起動して、httpとの通信を可能にします。
$ phantomjs --webdriver=PORT
これは、詳細についてはどのようなプログラミング言語
との容易な統合を行い、私は同じ要件を持って見てhere
を取ります。 JSPページの一部をPDFとして印刷したい。あなたはそれをどのように実装したのか分かりますか? –