2012-02-29 3 views
6

私はProccessBuilderとプロセスと私のJavaプロジェクトでwkhtmltopdfを使用してwkhtmltopdfとOutputStreamにPDFファイルをエクスポートする方法:は、java

ProcessBuilder pb = new ProcessBuilder("wkhtmltopdf.exe", "input.html", "output.pdf"); Process process = pb.start();

このソリューションでは、入力として、HTMLファイルを使用して、ディスク上のPDFファイルとして出力を保存します。 しかし、私のHTMLはファイルではなく、OutputStreamであり、飛行中にpdfファイルを作成したいので、ディスクに保存したくありません。

OutputStreamでパラメータを渡し、結果を別のOutputStreamとして取得する方法はありますか?

答えて

2

"output.pdf"の代わりに " - "を渡すと、出力をストリームとして取得する必要があります。あなたはそのストリームをつかむことができるかもしれませんが、あらかじめテストしてstderrとstdoutにバインドして、wkhtmltopdfが少し頑固にできるように両方の出力をデバッグするようにしてください:)

C#では転送がかなり簡単で、 stdin/stderr/stdoutはストリームです。 pdf出力用とコマンドラインからの起動時に表示されるユーザーインターフェイス出力の両方に、3つすべてをwkhtml出力としてテストする必要があります。 Javaや実際の例がないのは残念ですが、私のプロセスがキューに入れられてディスクに書き込まれるので、実際にはこれを試しませんでした。

Process _process = new Process(); 
// Other stuff here 
_process.StartInfo.RedirectStandardError = true; 
StreamReader sr = _process.StandardError;