第一种方法: 调用其它可外部程序打开
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + new File("C:\\Program Files\\aaa\\202306171607001.pdf").getAbsolutePath());
第二种方法:javafx程序内部打开PDF预览,并支持放大缩小
1. 引入依赖
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependency>
<groupId>com.github.Dansoftowner</groupId>
<artifactId>PDFViewerFX</artifactId>
<version>0.7</version>
</dependency>
这个依赖maven不一定能下载下来, 反正我是没下载下来, 因此我是把jar包搞到了本地进行引入的。本人下载的是0.5版本的jar包,测试了一下,可以打开但是发现中文乱码。看各位需求吧,如果是纯英文文档, 则建议使用此方法。
jar包下载地址:https://github.com/Dansoftowner/PDFViewerFX/tree/0.8
2. 代码
PDFDisplayer displayer = new PDFDisplayer();
Stage stage = (Stage)btn.getScene().getWindow();
stage.setScene(new Scene(displayer.toNode()));
//第一种方法 0.5版本
//displayer.displayPdf(new File("D:\\aaa\\202306171607001.pdf"));
//第二种方法 0.5版本
displayer.displayPdf(new BufferedInputStream(new FileInputStream(new File("D:\\aaa\\202306171607001.pdf"))));