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?

Foi útil?

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;
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top