【问题标题】:java poi XWPF word - create bookmark in new documentjava poi XWPF word - 在新文档中创建书签
【发布时间】:2017-11-08 15:02:05
【问题描述】:

在 XWPF word 文档中存在很多读取和编辑/替换书签的示例。 但我想创建一个文档并创建新的书签。 创建文档 - 没问题:

private void createWordDoc() throws IOException {
    XWPFDocument document = new XWPFDocument();
    File tempDocFile = new File(pathName+"\\temp.docx");
    FileOutputStream out = new FileOutputStream(tempDocFile);
    XWPFParagraph paragraph = document.createParagraph();
    XWPFRun run = paragraph.createRun();
    run.setText("testing string ");
    document.write(out);
    out.close();
    }

如何在文本“测试字符串”上添加书签?

【问题讨论】:

    标签: java ms-word apache-poi bookmarks xwpf


    【解决方案1】:

    直到现在,这还没有在 apache poi 的高级类中实现。因此需要低级别的CTPCTBookmark

    例子:

    import java.io.FileOutputStream;
    
    import org.apache.poi.xwpf.usermodel.*;
    
    import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTBookmark;
    
    import java.math.BigInteger;
    
    public class CreateWordBookmark {
    
     public static void main(String[] args) throws Exception {
    
      XWPFDocument document = new XWPFDocument();
    
      XWPFParagraph paragraph = document.createParagraph();
    
      //bookmark before the run
      CTBookmark bookmark = paragraph.getCTP().addNewBookmarkStart();
      bookmark.setName("before_testing_string");
      bookmark.setId(BigInteger.valueOf(0));
      paragraph.getCTP().addNewBookmarkEnd().setId(BigInteger.valueOf(0));
    
      //bookmark the run
      bookmark = paragraph.getCTP().addNewBookmarkStart();
      bookmark.setName("testing_string");
      bookmark.setId(BigInteger.valueOf(1));
    
      XWPFRun run = paragraph.createRun();
      run.setText("testing string ");
    
      paragraph.getCTP().addNewBookmarkEnd().setId(BigInteger.valueOf(1));
    
      //bookmark after the run
      bookmark = paragraph.getCTP().addNewBookmarkStart();
      bookmark.setName("after_testing_string");
      bookmark.setId(BigInteger.valueOf(2));
      paragraph.getCTP().addNewBookmarkEnd().setId(BigInteger.valueOf(2));
    
      document.write(new FileOutputStream("CreateWordBookmark.docx"));
      document.close();
    
     }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-27
      • 2014-01-03
      • 1970-01-01
      • 2012-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多