Question

J'utilise wkhtmltopdf dans mon projet Java avec ProCessBuilder et processus:

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

Cette solution utilise un fichier html en entrée et enregistrez la sortie sous forme de fichier PDF sur le disque. Mais mon HTML n'est pas un fichier, c'est un OutputStream et je veux créer un fichier PDF sur la mouche et je ne veux pas l'enregistrer sur le disque.

Existe-t-il un moyen de passer un paramètre avec OutputStream et d'obtenir un résultat comme un autre OutputStream?

Était-ce utile?

La solution

Si vous passez "-" au lieu de "output.pdf", vous devez obtenir la sortie sous forme de flux. Ensuite, vous pourrez peut-être saisir ce flux, mais assurez-vous de tester à l'avance et de vous lier à STDERR et STDOUT et à déboguer à la fois leur sortie car WKHTMLTOPDF peut être un peu têtu :)

En C #, le transfert est assez facile et stdin / stderr / stdout est des flux. Vous devez tester avec les trois sorties WKHTML sur les deux, une pour la sortie PDF et une pour la sortie de l'interface utilisateur que vous voyez lors du lancement à partir de la ligne de commande. Désolé pour le manque de java ou un exemple de travail, je n'ai pas essayé cela car mes processus sont en file d'attente et qu'ils écrivent sur disque.

Process _process = new Process();
// Other stuff here
_process.StartInfo.RedirectStandardError = true;
StreamReader sr = _process.StandardError;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top