`
53873039oycg
  • 浏览: 843715 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

[简单]poi删除word 2007书签

    博客分类:
  • poi
 
阅读更多

      见代码:

     

//删除所有的书签
	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);
			}
		}
	}

    全文完。

 

分享到:
评论

相关推荐

    poi操作word书签,兼容2003和2007

    下载后,运行 可以 Test1中的main方法,注意里面的word模版地址要修改下。...test1.java主要是针对word的书签操作 MSWordTool.java主要是针对word的列表书签的操作,相对来说比较复杂,具体看个人需求。

    使用poi替换word中的文字和图片实现打印

    在IT行业中,Apache POI是一个流行的Java库,用于读写Microsoft Office格式的文件,包括Word(.doc/.docx)、Excel(.xls/.xlsx)和PowerPoint(.ppt/.pptx)。本示例将深入探讨如何使用Apache POI库来替换Word文档...

    POI 操作word

    ### POI 操作 Word #### 一、简介 Apache POI 是一个强大的开源库,用于在 Java 应用程序中处理 Microsoft Office 文件格式。POI 项目提供了多种 API,允许开发者进行读取、修改和创建 Microsoft Office 文件的...

    java操作word(包含书签插值)

    使用Apache POI进行书签插值的一个简单示例: ```java XWPFDocument document = new XWPFDocument(new FileInputStream("template.docx")); XWPFParagraph paragraph = document.getParagraphArray(0); ...

    java操作word,可以随意操作书签

    Java操作Word的能力主要依赖于Apache POI库,但如标题和描述所提到的,我们可以不使用POI或其他第三方库如java2word,而是利用Java的内置功能和API来实现对Word文档的操作,尤其是针对书签的处理。下面将详细介绍...

    好用的poi包无冲突可转html可操作书签3.9docx

    Apache POI允许开发人员遍历文档,找到书签,甚至修改或删除它们。这通常通过查找特定的XML元素(如和)来实现。 5. 版本3.9: 在提到的“3.9”版本中,Apache POI可能已经包含了对DOCX文件的广泛支持和一些优化。...

    原创-NPOI操作Word文档中的Bookmark标签以及内容控件(ContentControl)的方法实现

    NPOI本身是没有操作Word文档中的Bookmark标签以及内容控件的接口,我通过研究NPOI中Word文档的数据结构,实现了替换标签内容(包括删除标签)、给内容控件赋值的方法,本资源内有调用demo,解决方案是用VS2017创建的...

    C#操作word文档书签替换内容生成文档.zip

    它们可以在Word的内置对象模型中被创建、修改或删除,并且可以通过编程方式访问。 3. **操作Word文档的步骤**: - **打开文档**: 首先,需要使用`Microsoft.Office.Interop.Word.Application`类实例化一个Word应用...

    word实用技巧——快速插入数学公式和化学方程式

    Word是一款广泛使用的文本处理软件,尤其在学术和专业领域中,其强大的功能使得撰写文档、公式编辑和排版变得轻松高效。以下是一些Word的实用技巧,特别关注如何快速插入数学公式和化学方程式。 1. **如何不让表格...

    JAVA生成word文档代码加说明

    Apache POI库是Java中用于处理Microsoft Office格式文件(如Word、Excel)的一个强大工具。以下是对标题和描述中涉及的知识点的详细说明: 1. **Apache POI库**: Apache POI是一个开源项目,提供了API来创建、...

    Word_PDF转换2.zip

    本压缩包"Word_PDF转换2.zip"包含了相关的工具和源代码,帮助用户实现Word与PDF之间的转换,同时也涉及到了文档的合成、编辑和书签渲染等功能。 首先,让我们详细讨论Word转PDF的过程。这个过程主要是将Word文档的...

    java-pdf&word-jar.zip

    在IT行业中,处理PDF和Word文档是常见的任务,特别是在企业级应用中,这些格式的文档广泛用于报告、合同和各种数据交换。Java平台提供了一系列库来支持这些操作,本项目中涉及的主要有Spire.Doc、Spire.PDF以及...

    IText学习资料

    例如,你可以先用POI创建Word文档,然后使用IText将其转换为PDF格式,以保持一致的视觉效果和布局。 6. PDF安全与数字签名: IText也支持PDF的安全特性,包括设置访问权限、添加数字签名以及验证已签名的文档。`...

Global site tag (gtag.js) - Google Analytics