你尝试过WKHTMLTOPDF吗?
它是一个简单的命令行实用程序,是WebKit的一个开源实现,两者都是免费的。
我们在这里设置了一个小教程(链接)
编辑(2017年):
如果今天要构建某些东西,我将不再走这条路线。
而会使用 http://pdfkit.org/。
可能会剥离其所有的nodejs依赖项,以在浏览器中运行。
请查看iText,它是一个纯Java的PDF工具包,支持从HTML读取数据。最近我在一个项目中使用了它,当我需要从我们的CMS中提取内容并将其导出为PDF文件时,一切都非常简单。它对CSS和样式标签的支持相当有限,但可以无问题地呈现表格(尽管我从未成功设置列宽)。
从HTML创建PDF大致如下:
Document doc = new Document(PageSize.A4);
PdfWriter.getInstance(doc, out);
doc.open();
HTMLWorker hw = new HTMLWorker(doc);
hw.parse(new StringReader(html));
doc.close();
也许有一种方法可以从Internet Explorer渲染引擎中获取已呈现的页面,并自动将其发送到PDF打印机工具吗?
这就是ActivePDF的工作方式,这意味着您知道会得到什么,而且它实际上具有合理的样式支持。
在我几年前查找时,它也是我发现的为数不多支持各种分页CSS命令的软件包之一。
不幸的是,ActivePDF软件非常令人沮丧-由于必须在后台启动IE浏览器进行转换,因此可能会很慢,而且也不太稳定。
目前正在测试的新版本应该要好得多,但我实际上还没有试过,所以不知道它有多大的改进。
如果您查看问题的侧边栏,您会看到许多相关的问题...
在您的情况下,更简单的方法可能是安装一个PDF打印驱动程序,例如PDFCreator,然后将页面打印到此输出。
Amyuni WebkitPDF 可以与 JNI 一起用于仅限 Windows 的解决方案。这是一个 HTML 到 PDF/XAML 转换库,可供商业和非商业使用。
如果不需要立即输出文件,则为了更好的可扩展性,最好设置一个队列和几个后台进程从中获取项目,将其转换并将其存储在数据库或文件系统中。
通常的免责声明适用