【发布时间】:2014-11-30 01:19:37
【问题描述】:
是否可以借助 PDF 库从 JavaFX Webview 创建 PDF?
我知道 webview 支持 printing,但是如果没有主机系统上可用的典型 pdf 打印驱动程序之一,是否可以打印到 pdf。
【问题讨论】:
-
看看stackoverflow.com/questions/633780/converting-html-files-to-pdf。应该可以从文档中提取 HTML (
webView.getEngine().getDocument()) 并将其传递给 iText 以转换为 PDF。 -
@James 这将使用 iTexts html 渲染引擎而不是 webkit。结果可能与用户看到的和得到的不同。
-
是的,没错:尽管我认为用户通常会期望网页的打印外观与屏幕外观有很大不同。但我可以看到这可能不是你想要的。因此,另一种方法可能是在 Web 视图上调用
snapshot,将生成的 JavaFX 图像转换为 iText 图像(通过 AWT 图像),然后将其添加到 iText PdfDocument。您将需要采取一些步骤来确保您对整个页面(不仅仅是屏幕可见部分)进行快照,并且可能会进行一些分页。 -
同意用户期望打印输出不同,但如果您尝试使用 iText 打印 html5 + JS + Bootstap 页面,结果可能与用户期望和接受的结果相去甚远。制作
snapshot并不是一个PDF,只是一个PDF化的图像,但它是解决方案:)