首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >向DOCX添加图像

向DOCX添加图像
EN

Stack Overflow用户
提问于 2022-11-20 21:52:19
回答 1查看 18关注 0票数 0

我有一个模板DOCX文件,我正在使用。模板文件包含两个图像占位符(徽标和条形码图像)。如何使用BufferedImage替换这些图像,或者仅仅从URL中获取图像?在这方面似乎没有多少资源。

EN

Stack Overflow用户

发布于 2022-11-21 07:06:13

我终于用书签让它开始工作了。很明显,在发布这个问题之前,我并没有深入挖掘。代码在下面。虽然我没有找到控制图像宽度和高度的方法,这一点很重要,但下面的代码确实回答了我的问题。

代码语言:javascript
复制
public void addLogoAndBarCode(WordprocessingMLPackage pack, String agencyID)
  {
      MainDocumentPart documentPart = pack.getMainDocumentPart();
      Document wmlDoc = (Document) documentPart.getJaxbElement();
      Body body = wmlDoc.getBody();
      List<Object> paragraphs = body.getContent();
      RangeFinder rt = new RangeFinder("CTBookmark", "CTMarkupRange");
      new TraversalUtil(paragraphs, rt);
      for(CTBookmark bm:rt.getStarts())
      {
         if(bm.getName().equals("agencyLogo"))
         {
             logger.info("i found bookmark");
             try
             {
               InputStream is = new FileInputStream(agencyLogoPath+agencyID+".jpg");
                byte[] bytes = IOUtils.toByteArray(is);
                BinaryPartAbstractImage imagePart = BinaryPartAbstractImage.createImagePart(pack, bytes);
                Inline inline = imagePart.createImageInline(null, null, 0,1, false, 800);
                P p = (P)(bm.getParent());
                ObjectFactory factory = new ObjectFactory();
                R run = factory.createR();
                Drawing drawing = factory.createDrawing();
                drawing.getAnchorOrInline().add(inline);
                run.getContent().add(drawing);
                p.getContent().add(run);

             }
             catch(Exception er)
             {
                 er.printStackTrace();
             }
         } 
      }
  }
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74512294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档