当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

[简单]docx4j提取word 2007图片

发表于: 2015-03-11   作者:53873039oycg   来源:转载   浏览:
摘要:       见代码:       import java.io.File; import java.io.FileOutputStream; import java.util.Map.Entry; import org.docx4j.openpackaging.packages.Wor

      见代码:

     

import java.io.File;
import java.io.FileOutputStream;
import java.util.Map.Entry;

import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
import org.docx4j.openpackaging.parts.Part;
import org.docx4j.openpackaging.parts.PartName;
import org.docx4j.openpackaging.parts.WordprocessingML.BinaryPart;
import org.docx4j.openpackaging.parts.WordprocessingML.BinaryPartAbstractImage;

public class Docx4j_SaveDocxImg_S3_Test {
	public static void main(String[] args) throws Exception {
		Docx4j_SaveDocxImg_S3_Test t = new Docx4j_SaveDocxImg_S3_Test();
		t.saveDocxImg("f:/saveFile/temp/word_docx4j_img_125.docx",
				"f:/saveFile/temp/docx4j_");
	}

	/**
	 * @Description: 提取word图片
	 */
	public void saveDocxImg(String filePath, String savePath) throws Exception {
		WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage
				.load(new File(filePath));
		for (Entry<PartName, Part> entry : wordMLPackage.getParts().getParts()
				.entrySet()) {
			if (entry.getValue() instanceof BinaryPartAbstractImage) {
				BinaryPartAbstractImage binImg = (BinaryPartAbstractImage) entry
						.getValue();
				// 图片minetype
				String imgContentType = binImg.getContentType();
				PartName pt = binImg.getPartName();
				String fileName = null;
				if (pt.getName().indexOf("word/media/") != -1) {
					fileName = pt.getName().substring(
							pt.getName().indexOf("word/media/")
									+ "word/media/".length());
				}
				System.out.println(String.format("mimetype=%s,filePath=%s",
						imgContentType, pt.getName()));
				FileOutputStream fos = new FileOutputStream(savePath + fileName);
				((BinaryPart) entry.getValue()).writeDataToOutputStream(fos);
				fos.close();
			}
		}
	}
}

 

    全文完。

[简单]docx4j提取word 2007图片

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
直接上代码: import java.io.File; import java.math.BigInteger; import java.util.Calendar; impo
word 2007内容控件位置: 代码如下: import java.io.File; import java.io.StringWriter; import jav
建议直接看docx4j官网例子: https://github.com/plutext/docx4j/tree/master/src/samples/docx4j/or
如果在使用docx4j的过程中有一些效果自己不会写,上网也没搜索到答案,怎么解决呢? 可以把word 200
word 2007批注测试数据如下图: 代码执行结果为: 主要思路: 利用docx4j的org.docx4j.finders.Comment
昨天花了点时间写了个使用docx4j制作word 2007的例子,例子很粗糙,很多细节没有处理好,今天我放一
word表格插入一行如下: 实现思路: 主要分在当前行上方插入行和在当前行下方插入行。对首尾2行特殊处
功能介绍: 主要实现往已有表格填充数据,在数据列大于表格列时不会新增列,因为新增列涉及单元格宽度
接上一篇博文,修改的地方: 1,新增段落段前段后间隔设置,段行距设置 2,页眉页脚底部下划线可配置 3
原文标题:Adding images and layout to your Docx4j-generated word documents, part 1 原文链接:
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号