6

こんにちは、phantomjs は初めてです。

コマンドを使用して HTML を PDF に生成しました。しかし、ページのボタンをクリックしてPDFを生成したい。何らかの方法でphantomjsを呼び出して、指定されたURLをpdfに生成します。

また、グラフと画像を含む PDF を HTML として生成し、JSP およびサーブレットと簡単に統合できる API を提案することもできます。

4

2 に答える 2

23

あなたがやりたいことは、Java コード内から phantomjs 実行可能ファイルを実行することだと思います。

最初に、実行するコマンドのフル パスを知る必要があります。この場合は、phantomjs です。zip をダウンロードした場合、これはファイルを解凍したディレクトリであり、phantomjs.exe 実行可能ファイルが表示されます。パッケージ マネージャーを使用してダウンロードした場合は、ターミナルからフル パスを実行して確認します。

which phantomjs

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

/usr/bin/phantomjs

それができたら、 Runtimeクラスを使用する必要があります。これにより、とりわけ、exec を使用して OS 上でコマンドを直接実行できます。実行したものは、コマンドの出力を読み取るために使用できるプロセスとして処理されます。

行うべき例外処理のない簡単な例。

    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 が正確に制御するわけではなく、エラーを適切に管理しないと、プログラムの残りの部分に問題を引き起こす可能性があります。

于 2013-06-03T06:50:22.057 に答える