在JavaFX中显示pdf

在JavaFX中显示pdf,第1张

在JavaFX中显示pdf

JPedalFX示例代码和用法

JPedalFX下载提供了有关使用JPedalFX的示例代码

我有点of脚,但是我只是在这里粘贴从JPedalFX库提供的示例查看器复制的代码段示例代码。该代码依赖于JPedalFX发行版中包含的jpedal_lgpl.jar文件,该文件位于类路径(或应用程序jar清单中引用的库路径)上。

如果您对JPedalFX的使用还有其他疑问,建议您直接与IDR解决方案联系(他们过去一直在响应我)。

// get file path.FileChooser fc = new FileChooser();fc.setTitle("Open PDF file...");fc.getExtensionFilters().add(new FileChooser.ExtensionFilter("PDF Files", "*.pdf"));     File f = fc.showOpenDialog(stage.getOwner());String filename = file.getAbsolutePath();// open file.PdfDeprer pdf = new PdfDeprer();pdf.openPdfFile(filename);showPage(1);pdf.closePdfFile();. . .private void showPage(int page) {    //Check in range    if (page > pdf.getPageCount())        return;    if (page < 1)        return;    //Store    pageNumber = page;    //Show/hide buttons as neccessary    if (page == pdf.getPageCount())        next.setVisible(false);    else        next.setVisible(true);    if (page == 1)        back.setVisible(false);    else        back.setVisible(true);    //Calculate scale    int pW = pdf.getPdfPageData().getCropBoxWidth(page);    int pH = pdf.getPdfPageData().getCropBoxHeight(page);    Dimension s = Toolkit.getDefaultToolkit().getScreenSize();    s.width -= 100;    s.height -= 100;    double xScale = (double)s.width / pW;    double yScale = (double)s.height / pH;    double scale = xScale < yScale ? xScale : yScale;    //Work out target size    pW *= scale;    pH *= scale;    //Get image and set    Image i = getPageAsImage(page,pW,pH);    imageView.setImage(i);    //Set size of components    imageView.setFitWidth(pW);    imageView.setFitHeight(pH);    stage.setWidth(imageView.getFitWidth()+2);    stage.setHeight(imageView.getFitHeight()+2);    stage.centeronScreen();}private Image getPageAsImage(int page, int width, int height) {    BufferedImage img;    try {        img = pdf.getPageAsImage(page);        //Use deprecated method since there's no real alternative         //(for JavaFX 2.2+ can use SwingFXUtils instead).        if (Image.impl_isExternalFormatSupported(BufferedImage.class)) return javafx.scene.image.Image.impl_fromExternalImage(img);    } catch(Exception e) {        e.printStackTrace();    }    return null;}

SwingLabs PDF渲染器

另外,我过去使用带有JavaFX的旧的基于SwingLabs Swing的pdf渲染器为JavaFX
Web浏览器
渲染pdf 。尽管在我开发浏览器时,Swing /
JavaFX集成不是JavaFX的受支持功能,但对我来说仍然可以正常工作。集成代码在PDFViewer.java和BrowserWindow.java中。

需要注意的是在Swing应用程序中嵌入的JavaFX中的Java
2.2的支持和嵌入JavaFX的一个Swing应用程序中的Java 8支持。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5053904.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-15
下一篇 2022-11-16

发表评论

登录后才能评论

评论列表(0条)

保存