Como exportar pdf para OutputStream com wkhtmltopdf em java
-
14-11-2019 - |
Pergunta
Eu uso wkhtmltopdf em meu projeto java com ProccessBuilder e Process:
ProcessBuilder pb = new ProcessBuilder("wkhtmltopdf.exe", "input.html", "output.pdf");
Process process = pb.start();
Esta solução usa um arquivo html como entrada e salva a saída como arquivo pdf no disco.Mas meu html não é um arquivo, é um OutputStream e quero criar um arquivo PDF rapidamente e não quero salvá-lo no disco.
existe uma maneira de passar parâmetros com OutputStream e obter resultado como outro OutputStream?
Solução
Se você passar "-" em vez de "output.pdf", deverá obter a saída como stream.Então você poderá capturar esse fluxo, mas certifique-se de testar com antecedência e vincular-se a stderr e stdout também e depurar ambas as saídas, pois wkhtmltopdf pode ser um pouco teimoso :)
Em C#, o encaminhamento é bastante fácil e stdin/stderr/stdout são fluxos.Você deve testar todas as três saídas wkhtml para ambos, uma para a saída pdf e outra para a saída da interface do usuário que você vê ao iniciar a partir da linha de comando.Desculpe pela falta de Java ou de um exemplo funcional, na verdade não tentei isso porque meus processos estão na fila e gravam no disco.
Process _process = new Process();
// Other stuff here
_process.StartInfo.RedirectStandardError = true;
StreamReader sr = _process.StandardError;