Come esportare il PDF in outputStream con WKHTMLTOPDF in Java
-
14-11-2019 - |
Domanda
Io uso WKHTMLTOPDF nel mio progetto Java con ProccessBuilder e processo:
ProcessBuilder pb = new ProcessBuilder("wkhtmltopdf.exe", "input.html", "output.pdf");
Process process = pb.start();
Questa soluzione utilizza un file HTML come input e salva l'output come file PDF sul disco. Ma il mio html non è un file, è un outputstream e voglio creare il file PDF al volo e non voglio salvarlo su disco.
C'è un modo per passare il parametro con uscita e ottenere il risultato come un altro outputstream?
Soluzione
Se si passa "-" invece di "output.pdf" è necessario ottenere l'output come stream.Quindi potresti essere in grado di afferrare quel flusso, ma assicurati di testare in anticipo e si collega a STDERR e STDOUT pure e debug sia il loro output come WKHTMLTOPDF può essere un po 'testardo :)
In C # L'inoltro è abbastanza facile e STDIN / STDERR / STDOUT sono flussi.Devi verificare tutte e tre le uscite WKHTML su entrambi, una per l'uscita PDF e una per l'uscita dell'interfaccia utente che vedi quando si avvia dalla riga di comando.Scusa per la mancanza di Java o un esempio di lavoro, non l'ho effettivamente provato come i miei processi sono accodati e scrivono su disco.
Process _process = new Process();
// Other stuff here
_process.StartInfo.RedirectStandardError = true;
StreamReader sr = _process.StandardError;
.