如何在java中使用wkhtmltopdf将pdf导出到OutputStream

时间:2012-02-29 05:33:08

标签: java pdf outputstream wkhtmltopdf

我在java项目中使用wcctmltopdf和ProccessBuilder和Process:

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

此解决方案使用html文件作为输入,并将输出保存为磁盘上的pdf文件。 但是我的html不是一个文件,它是一个OutputStream,我想在飞行中创建pdf文件而不想将它保存在磁盘上。

有没有办法用OutputStream传递参数并将结果作为另一个OutputStream?

1 个答案:

答案 0 :(得分:4)

如果传递“ - ”而不是“output.pdf”,则应将输出作为流。然后你可能会抓住那个流,但确保事先测试并绑定到stderr和stdout并调试它们的输出,因为wkhtmltopdf可能有点顽固:)

在C#中转发相当容易,stdin / stderr / stdout是流。您必须使用所有三个作为wkhtml输出进行测试,一个用于pdf输出,另一个用于从命令行启动时看到的用户界面输出。很抱歉缺少Java或工作示例,我实际上没有尝试过这个,因为我的进程排队并且他们写入磁盘。

Process _process = new Process();
// Other stuff here
_process.StartInfo.RedirectStandardError = true;
StreamReader sr = _process.StandardError;