【发布时间】:2017-07-12 15:45:34
【问题描述】:
我需要在 JavaFX 的默认 WebView 中显示 PDF。我想,我可以很容易地做到这一点。
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
public class ShowPdfTest extends Application {
public static void main(String[] args) {
launch();
}
@Override
public void start(Stage primaryStage) throws Exception {
WebView webView = new WebView();
WebEngine engine = webView.getEngine();
Scene scene = new Scene(webView);
primaryStage.setScene(scene);
primaryStage.show();
// engine.load("https://www.google.com");
engine.load("http://www.orimi.com/pdf-test.pdf");
}
}
我错了。没发生什么事。似乎 WebEngine 没有内置的 PDF-Renderer。我尝试了JxBrowser,效果很好,但成本相当高。
那么有没有办法在默认的 WebView 组件中直接显示 PDF?
【问题讨论】:
-
您可以在 WebView 中使用Mozilla Pdf.js。
-
好的,但是如果我有这样的东西怎么办? cs.tut.fi/~jkorpela/html/iframe-pdf.html
-
Pdf.js 不需要 iframe!您可以在 WebView 中使用 Pdf.js 调用您的 pdf 文件。
-
不,我知道我可以使用 Pdf.js 在 WebView 中显示 PDF。但我的目标是像任何其他浏览器一样动态呈现 PDF。因此,如果网页在 iframe 或 JavaScript 中嵌入了 PDF,我希望能够使用嵌入的 PDF 显示整个页面。
标签: pdf javafx webview jxbrowser webengine