`

用JAVA移除Word文档的底图(水印)

 
阅读更多

      前几天,遇到一个需求,要把Word文档中的底图(水印)移除,用POI试了下,好象只能移除docx格式的底图,对于doc格式的则无能为力,在网上搜了一下,也没有找到其他解决办法,没办法,只好用Aspose.Words来实现了(不得不说Aspose系列组件对于Office的支持真的很强大,真是居家行旅之必备良药啊 :) )。

 

实现代码很简单,就不多做说明了,直接上代码:

/**
 * @CopyRright (c)2011: BrokenStone
 * @Project: WordWatermark
 * @File: RemoveWatermarkTest.java
 * @JDK version used: JDK1.6 @<br/>
 * @Author: BrokenStone
 * @Blog: http://sheng.javaeye.com)
 * @Email: wdmsyf@yahoo.com
 * @since: 2011-12-25
 * @Ver: 1.0
 */
package com.sheng.iteye.office;

import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;

import com.aspose.words.Document;
import com.aspose.words.HeaderFooter;
import com.aspose.words.HeaderFooterType;
import com.aspose.words.License;
import com.aspose.words.Node;
import com.aspose.words.NodeCollection;
import com.aspose.words.NodeType;
import com.aspose.words.Section;
import com.aspose.words.SectionCollection;
import com.aspose.words.Shape;

/**
 * @author BrokenStone
 * 
 */
public class RemoveWatermarkTest {

	/**
	 * 从Classpath(jar文件中)中读取License
	 */
	public void loadLicense() {
		// 返回读取指定资源的输入流
		License license = new License();
		InputStream is = null;
		try {
			is = this.getClass().getResourceAsStream("/resources/aspose.word.license.xml");
			if (is == null)
				throw new RuntimeException( "Cannot find licenses file. Please contact wdmsyf@yahoo.com or visit http://sheng.javaeye.com for get more information.");
			license.setLicense(is);
		} catch (Exception ex) {
			ex.printStackTrace();
		} finally {
			if (is != null) {
				try {
					is.close();
				} catch (IOException ex) {
				}
				is = null;
			}
		}
	}
	
	/**
	 * remove watermark from Section Header
	 * @param sect
	 * @param headerType
	 * @throws Exception
	 */
  private static void removeWatermarkFromHeader(Section sect, int headerType) throws Exception {
		HeaderFooter header = sect.getHeadersFooters().getByHeaderFooterType(headerType);

		if (header != null) {
			sect.getHeadersFooters().remove(header);
		}
	}

  /**
   * Remove watermark from document
   * @param doc
   */
	private static void removeWatermark(Document doc) {
		SectionCollection sectionColl = doc.getSections();

		Iterator it = sectionColl.iterator();
		while(it.hasNext()){
			Section sect = (Section)it.next();
			try {
				removeWatermarkFromHeader(sect, HeaderFooterType.HEADER_PRIMARY);
				removeWatermarkFromHeader(sect, HeaderFooterType.HEADER_FIRST);
				removeWatermarkFromHeader(sect, HeaderFooterType.HEADER_EVEN);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}

	public void test() {
		String fileName = "带底图文档_测试.doc";
		try {
			Document doc = new Document(fileName);
			removeWatermark(doc);
			doc.save("removedWatermark.doc");
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		RemoveWatermarkTest rwt = new RemoveWatermarkTest();
		rwt.loadLicense();
		rwt.test();
	}

}
 
分享到:
评论
1 楼 苍ing 2016-08-11  
感谢分享。可以用。。。。。。。。

相关推荐

    java aspose文件转化-去水印(保证可用)

    `Doc2pdf.java`是一个示例代码文件,展示了如何使用Aspose.Words将Word文档转换为PDF。在Java程序中,你需要导入Aspose库,然后加载Word文档,创建一个PdfSaveOptions对象,设置相关选项,最后调用save方法,将Word...

    aspose实现word转pdf功能(去水印)

    在这个场景下,我们将关注如何使用Aspose在Java环境中实现Word文档转换为PDF,并且去除PDF中的水印。 首先,`aspose-words-20.1-jdk17.jar`是Aspose.Words for Java的库文件,它包含了处理Word文档和进行转换的所有...

    java操作水印的jar包

    Java操作水印的jar包主要用于在PDF、Word文档和图片上添加水印,这是一种常见的文件保护和版权声明方法。在Java编程中,处理水印涉及多个技术领域,包括IO流处理、图像处理、文档解析等。下面将详细介绍这些知识点。...

    Aspose for Java 去除水印和数量限制

    Aspose for Java 是一个强大的Java库,用于处理各种文件格式,包括但不限于Microsoft Office文档(Word、Excel、PowerPoint)、PDF、图像以及电子邮件。这个库允许开发者在Java应用程序中实现文件的创建、读取、修改...

    java实现word中文转英文

    在Java编程环境中,实现Word文档中的中文到英文的转换是一项技术挑战,但通过利用特定的库和API,这个任务是可以完成的。以下是一篇详细解释如何实现这一目标的文章。 首先,我们需要选择一个能够处理Microsoft ...

    分享aspose 将PDF转WOR for java 去限制页码数量限制与水印版

    本篇文章将详细讲解如何利用Aspose.Words for Java库将PDF文档转换为Word(.doc或.docx)格式,并去除页码数量限制以及移除或替换水印。 Aspose.Words for Java是Aspose公司专门为Java开发者设计的一个强大的文档...

    C#利用word原生组件给word文档添加和移除密码

    同时,为了避免使用第三方组件(如Spire)的限制,直接使用原生组件可以更好地控制文档处理流程,特别是对于大型文档。 总结一下,通过C#利用Microsoft.Office.Interop.Word库,我们可以方便地为Word文档添加和移除...

    Word2021文档怎么样去水印_1.docx

    完成以上步骤后,文档中的水印就会被成功移除。 #### 三、去除特殊类型的水印 对于第二种类型的水印,即特殊类型的水印,我们需要采取不同的策略: 1. **打开文档并进入页眉和页脚模式**:打开带有水印的Word2021...

    Word2021文档中怎么样去水印.docx

    ### Word2021文档中去除水印的方法 在日常工作中,我们经常需要从网络上下载各种文档资源,但有时会遇到这样的问题:文档中带有水印,这不仅影响阅读体验,还可能在打印时带来不便。为了帮助大家解决这个问题,本文...

    Office转swf和去水印logo的flexpager

    标题中的“Office转swf和去水印logo的flexpager”指的是一个转换工具或方法,它能够将Microsoft Office文档(如Word、Excel、PowerPoint)转换为SWF(ShockWave Flash)格式,并在此过程中去除文档中的水印和logo。...

    Spire.Doc 去水印版本.

    它提供了专门的API,允许开发者在代码中轻松移除Word文档中的水印,无论是文字型水印还是图像型水印,都可以一并处理。 **使用步骤** 1. **下载解压**:首先,你需要下载提供的压缩包文件,包含Spire.Pdf.dll、...

    Excel密码清除工具、PPT文档密码密码移除、PDF文档密码密码移除、Word文档密码密码移除、压缩包密码移除破解.rar

    重要文件加了密码,用个隐私锁,文件进行隐藏加密,不想让这些文件随意被别人看到。但有时候自己也会忘记这些密码,工具箱里有压缩包密码移除破解、Word文档密码密码移除、Excel文档密码密码移除、PPT文档密码密码...

    Java实现PDF文档添加水印信息.pptx.pptx

    ### 01 使用Java库处理PDF文档 **PDFBox** 是Apache软件基金会开发的一个开源库,它提供了丰富的API接口,使得开发者能够方便地创建、编辑PDF文档以及提取其内容。例如,你可以使用PDFBox库为PDF文档添加水印、合并...

    aspose-words去水印jar包

    Java平台的开发者可以通过引入这个jar包,使用Java代码来调用Aspose.Words的相关方法,实现对Word文档水印的去除。 4. **License.xml**:在描述中提到了“license.xml”,这通常是指软件许可文件,包含了关于软件...

    java1.文档中文版

    6. **deprecated-list.html**:这个文件列出了在Java 1.6版本中被弃用的API,开发者应避免在新代码中使用这些API,因为它们可能会在未来的版本中被移除。 7. **overview-summary.html**:这是整个Java API的概述,...

    word2021怎么删除水印?.docx

    在Word文档中,水印通常用于标记文档的状态(如“草稿”、“最终版本”等),或是为了保护版权而添加的图像或文字。然而,在某些情况下,我们需要将这些水印移除。本教程将详细介绍如何在Word2021中彻底删除文档中的...

    使用python移除水印

    使用python移除pdf水印

    可以移除PDF水印的软件

    PDF水印移除软件是一种专门针对PDF文档设计的工具,其主要功能是帮助用户去除PDF文件中的水印、标识或任何不必要的视觉元素,以便于更好地编辑、分享或打印文档。在许多情况下,PDF水印可能由版权声明、公司标志或者...

    去除Word水印的两个实用方法.docx

    在使用Microsoft Word进行文档编辑时,有时会遇到带有水印的文档,这可能是为了保护版权或增添特定样式。然而,当不再需要这些水印时,了解如何去除它们变得至关重要。以下将详细介绍两种实用方法,帮助你成功移除...

    aspose-words-15.8jar以及去除水印

    Aspose.Words是Java库,用于处理Microsoft Word文档,它提供了强大的功能,允许开发者在没有安装Word的情况下创建、编辑、转换和打印DOC、DOCX、RTF、HTML、PDF等多种格式的文件。在这个15.8版本的jar文件中,包含了...

Global site tag (gtag.js) - Google Analytics