首页 > 解决方案 > Apache poi java:在另一台计算机上运行 JAR 文件时,图像未显示在文档中

问题描述

我创建了一个可以处理文件的应用程序,并且可以在我编写代码的计算机上完美运行,但是它在其他计算机上无法正常运行。在查看了整个代码后,我能够找到问题所在。我删除了以下添加图像的方法,并且 jar 文件在多台计算机上都可以正常工作,但是我需要添加图像。方法如下:(doc是在另一个类中声明的静态变量,以防您想知道)

            public void AddImage() throws IOException, InvalidFormatException {

        XWPFParagraph parag = document.createParagraph();
        XWPFRun r = parag.createRun();

        URL imageURL = ClassLoader.getSystemResource("TheImage.png");
        String imageName = imageURL.getPath();
        File image = new File(imageName);
        FileInputStream fis = new FileInputStream(image);

        BufferedImage bimg1 = ImageIO.read(image);
        int width = 160;//bimg1.getWidth();
        int height = 26;//bimg1.getHeight();  

        String imgFile = image.getName(); 

        r.addPicture(fis, document.PICTURE_TYPE_PNG, imgFile, Units.toEMU(width), Units.toEMU(height));
    }

为了给你更多的细节,我在eclipse的项目中创建了一个源文件,我在其中添加了图像,有人知道如何解决这个问题吗?

标签: javaapache-poi

解决方案


也许在您的计算机上,图像是从文件系统中获取的,而不是从 jar 中获取的。图像是否打包在jar文件中?然后尝试

Inputstream logo = getClass().getResourceAsStream("/path/in/jar/img.png");

加载它。

如何从 Java 中的 jar 中读取文件?


推荐阅读