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?

È stato utile?

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;
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top