当前位置: 首页 > 知识库问答 >
问题:

我使用Apache POI从MS word文件(.doc)生成Html

柴修筠
2023-03-14

我使用Apache POI从MS word文件(.doc)生成Html。我想添加来自的图像。文档转换为html,但我无法做到这一点。我找到了解决方案。docx和给定方法如下。docx。

private void processImage(Element wrap, List<XWPFPicture> pics)
               throws IOException {

        int pos = output.lastIndexOf(".");
        String path = output.substring(0, pos).concat(File.separator);
        File folder = new File(path);
                System.out.println("path="+path);
        if(!folder.canRead())
            folder.mkdirs();
        folder = null;

        for(XWPFPicture pic : pics)
                {    

            XWPFPictureData data = pic.getPictureData();
            System.out.println("image extension="+data.suggestFileExtension());
                        {
                        System.out.println("Data name="+data.getFileName());
                        ByteArrayInputStream is = new ByteArrayInputStream(data.getData());
                     ImageConverter.convertFormat(path,"c:/hello.jpg","jpg");

                        try
                        {
                         BufferedImage image = ImageIO.read(is);

            // TODO image type convert   like .tif etc.
            String imgFullPath = path.concat(data.getFileName());
            {// extract picture
                FileOutputStream fos = null;
                try {
                    fos = new FileOutputStream(new File(imgFullPath));
                    fos.write(data.getData());
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                }finally{
                    if(fos != null) fos.close();
                }
            }
            {// add picture to html page
                //TODO get img relative path for showing html page when on server &&  get the picture style, scaling in the docx file (with description style?)
              System.out.println("img full Path="+imgFullPath);
                          int index=imgFullPath.indexOf('/');
                          imgFullPath=imgFullPath.substring(index+1);
                          index=imgFullPath.lastIndexOf('\\');
                          String cu_path=imgFullPath.substring(index+1);
                          String imgFolder=imgFullPath.substring(0, index);
                          index=imgFolder.lastIndexOf('\\');
                          imgFolder=imgFolder.substring(index+1);
                          System.out.println("imgFolder="+imgFolder);
                           System.out.println("cur_Path="+cu_path);
                           imgFullPath="./"+imgFolder+"/"+cu_path;
                          System.out.println(" After remove img full Path="+imgFullPath);
                            Element img = htmlDocumentFacade.createImage(imgFullPath);
                if(!StringUtil.isEmpty(pic.getDescription())){
                    img.setAttribute("Title", pic.getDescription());
                }
                if(image != null && image.getWidth() > 600){
                    img.setAttribute("width", "600px");
                }
                img.setAttribute("align", "center");
                wrap.appendChild(img);

            }  
                        if("gif".equals(data.suggestFileExtension()))
                        {
                           System.out.println("File name="+data.getFileName());
                        }
        }
                 catch(Exception ex)
                        {
                            continue;
                        }

    }
                } }

没有太多的留档或教程可用。Javadoc也不包含太多有用的信息。根据上面的代码,我尝试添加图像,但不起作用。:/

共有1个答案

孟璞
2023-03-14

根据Apache POI文档,HWPF用于“.doc”文件,而XWPF用于“.docx”文件。

根据Java文档,getPicturesTable()方法应该可以帮助您提取所需的图像。

希望这有帮助。

 类似资料:
  • 我想从HTML模板中提取一部分,并将其转换为PDF文件,以便用户可以选择下载。(例如,单击按钮后)。 我找到了一个名为jsPDF的库,我将如何在Angular2应用程序(RC4)中使用jsPDF? 谢谢你

  • 我试图为Linux动态库(.so文件)创建一个hello world项目。所以我有一个文件HELLO.C: 如何从命令行使用gcc创建导出的.so文件?

  • 我正在尝试根据本指南使用OpenDaylight从Yang文件生成Pojos。我从OpenDaylight github克隆了Yang tools,并使用构建了项目 我在pom中添加了以下内容: 但是我无法生成源。我收到以下错误: 我做错了什么?

  • 问题内容: 我试图将XML数据从网页转换为PDF文件,希望能完全在JavaScript中完成。我需要能够绘制文本,图像和简单形状。我希望能够完全在浏览器中做到这一点。 问题答案: 示例创建一个“ Hello World” PDF文件。

  • 问题内容: 我有一个Web应用程序。我已经在服务器端以xml格式(Word 2003 XML Document)生成了MS Word文档。我需要使用某种查看器将此文档显示给客户端的用户。因此,问题是:我可以使用哪些库来解决此问题?我需要一个API才能 使用java 在客户端查看word文档。 问题答案: 您不能使用Java(或与此相关的任何其他简单技术)在网页中可靠地显示Word文档。有一些商业库

  • 有没有办法通过终端或者使用android Studio从android应用包生成一个apk文件呢?