见代码:
//删除所有的书签 public void removeAllDocBookMark(XWPFDocument xdoc) { List<XWPFParagraph> paraList = xdoc.getParagraphs(); removeParaListBookMark(paraList); List<XWPFTable> tableList = xdoc.getTables(); if (tableList != null) { for (XWPFTable table : tableList) { List<XWPFTableRow> rowList = table.getRows(); if (rowList != null) { for (XWPFTableRow row : rowList) { List<XWPFTableCell> cellList = row.getTableCells(); if (cellList != null) { for (XWPFTableCell cell : cellList) { removeParaListBookMark(cell.getParagraphs()); } } } } } } } public void removeParaListBookMark(List<XWPFParagraph> paraList) { if (paraList != null) { for (XWPFParagraph para : paraList) { removeParagraphBookMark(para); } } } ////删除段落内所有的书签 去掉w:bookmarkStart/w:bookmarkEnd public void removeParagraphBookMark(XWPFParagraph para) { List<CTBookmark> bookmarkStartList = para.getCTP() .getBookmarkStartList(); if (bookmarkStartList == null) { return; } for (int i = bookmarkStartList.size() - 1; i >= 0; i--) { Node bookStartNode = bookmarkStartList.get(i).getDomNode(); printNodeAllAttributeValue(bookStartNode); bookStartNode.getParentNode().removeChild(bookStartNode); } List<CTMarkupRange> bookmarkEndList = para.getCTP() .getBookmarkEndList(); if (bookmarkEndList == null) { return; } for (int i = bookmarkEndList.size() - 1; i >= 0; i--) { Node bookEndNode = bookmarkEndList.get(i).getDomNode(); printNodeAllAttributeValue(bookEndNode); bookEndNode.getParentNode().removeChild(bookEndNode); } } public void printNodeAllAttributeValue(Node node) { NamedNodeMap nodeAttr = node.getAttributes(); if (nodeAttr != null) { int numAttrs = nodeAttr.getLength(); for (int i = 0; i < numAttrs; i++) { Attr attr = (Attr) nodeAttr.item(i); String attrName = attr.getNodeName(); String attrValue = attr.getNodeValue(); System.out.println(node.getNodeName() + " 属性=" + attrName + " 值= " + attrValue); } } }
全文完。
相关推荐
下载后,运行 可以 Test1中的main方法,注意里面的word模版地址要修改下。...test1.java主要是针对word的书签操作 MSWordTool.java主要是针对word的列表书签的操作,相对来说比较复杂,具体看个人需求。
在IT行业中,Apache POI是一个流行的Java库,用于读写Microsoft Office格式的文件,包括Word(.doc/.docx)、Excel(.xls/.xlsx)和PowerPoint(.ppt/.pptx)。本示例将深入探讨如何使用Apache POI库来替换Word文档...
### POI 操作 Word #### 一、简介 Apache POI 是一个强大的开源库,用于在 Java 应用程序中处理 Microsoft Office 文件格式。POI 项目提供了多种 API,允许开发者进行读取、修改和创建 Microsoft Office 文件的...
使用Apache POI进行书签插值的一个简单示例: ```java XWPFDocument document = new XWPFDocument(new FileInputStream("template.docx")); XWPFParagraph paragraph = document.getParagraphArray(0); ...
Java操作Word的能力主要依赖于Apache POI库,但如标题和描述所提到的,我们可以不使用POI或其他第三方库如java2word,而是利用Java的内置功能和API来实现对Word文档的操作,尤其是针对书签的处理。下面将详细介绍...
Apache POI允许开发人员遍历文档,找到书签,甚至修改或删除它们。这通常通过查找特定的XML元素(如和)来实现。 5. 版本3.9: 在提到的“3.9”版本中,Apache POI可能已经包含了对DOCX文件的广泛支持和一些优化。...
NPOI本身是没有操作Word文档中的Bookmark标签以及内容控件的接口,我通过研究NPOI中Word文档的数据结构,实现了替换标签内容(包括删除标签)、给内容控件赋值的方法,本资源内有调用demo,解决方案是用VS2017创建的...
它们可以在Word的内置对象模型中被创建、修改或删除,并且可以通过编程方式访问。 3. **操作Word文档的步骤**: - **打开文档**: 首先,需要使用`Microsoft.Office.Interop.Word.Application`类实例化一个Word应用...
Word是一款广泛使用的文本处理软件,尤其在学术和专业领域中,其强大的功能使得撰写文档、公式编辑和排版变得轻松高效。以下是一些Word的实用技巧,特别关注如何快速插入数学公式和化学方程式。 1. **如何不让表格...
Apache POI库是Java中用于处理Microsoft Office格式文件(如Word、Excel)的一个强大工具。以下是对标题和描述中涉及的知识点的详细说明: 1. **Apache POI库**: Apache POI是一个开源项目,提供了API来创建、...
本压缩包"Word_PDF转换2.zip"包含了相关的工具和源代码,帮助用户实现Word与PDF之间的转换,同时也涉及到了文档的合成、编辑和书签渲染等功能。 首先,让我们详细讨论Word转PDF的过程。这个过程主要是将Word文档的...
在IT行业中,处理PDF和Word文档是常见的任务,特别是在企业级应用中,这些格式的文档广泛用于报告、合同和各种数据交换。Java平台提供了一系列库来支持这些操作,本项目中涉及的主要有Spire.Doc、Spire.PDF以及...
例如,你可以先用POI创建Word文档,然后使用IText将其转换为PDF格式,以保持一致的视觉效果和布局。 6. PDF安全与数字签名: IText也支持PDF的安全特性,包括设置访问权限、添加数字签名以及验证已签名的文档。`...