2012-02-29 18 views
6

utilizo wkhtmltopdf en mi proyecto Java con ProccessBuilder y proceso:Cómo exportar PDF a OutputStream con wkhtmltopdf en Java

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

Esta solución utiliza un archivo html como entrada y guardar la salida como archivo PDF en el disco . Pero mi html no es un archivo, es un OutputStream y quiero crear un archivo pdf en tiempo real y no quiero guardarlo en el disco.

¿Hay alguna manera de pasar el parámetro con OutputStream y obtener el resultado como otro OutputStream?

Respuesta

2

Si pasa "-" en lugar de "output.pdf", debería obtener el resultado como transmisión. Entonces usted puede ser capaz de tomar esa secuencia, pero asegúrese de probar previamente y vincularse a stderr y stdout también y depurar su salida ya que wkhtmltopdf puede ser un poco obstinado :)

En C# el reenvío es bastante fácil y stdin/stderr/stdout son transmisiones. Debe probar los tres resultados como wkhtml para ambos, uno para la salida de PDF y otro para la salida de interfaz de usuario que ve al iniciar desde la línea de comandos. Lo siento por la falta de Java o un ejemplo de trabajo, en realidad no lo he intentado ya que mis procesos están en cola y escriben en el disco.

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