java poi导出word图片_poi 导出word,导出图片解决方法
/**
* 写入图片
* @param document
* @param picName
* @param width
* @param height
* @param alignment
*/
private void WriteImage(CustomXWPFDocument document, String picName, int width, int height, ParagraphAlignment alignment) {
try {
CustomXWPFDocument document= new CustomXWPFDocument();
XWPFParagraph imgPara = document.createParagraph();
imgPara.setAlignment(alignment);
int format = XWPFDocument.PICTURE_TYPE_PNG;
if(picName.endsWith(".emf")) format = XWPFDocument.PICTURE_TYPE_EMF;
else if(picName.endsWith(".wmf")) format = XWPFDocument.PICTURE_TYPE_WMF;
else if(picName.endsWith(".pict")) format = XWPFDocument.PICTURE_TYPE_PICT;
else if(picName.endsWith(".jpeg") || picName.endsWith(".jpg")) format = XWPFDocument.PICTURE_TYPE_JPEG;
else if(picName.endsWith(".png")) format = XWPFDocument.PICTURE_TYPE_PNG;
else if(picName.endsWith(".dib")) format = XWPFDocument.PICTURE_TYPE_DIB;
else if(picName.endsWith(".gif")) format = XWPFDocument.PICTURE_TYPE_GIF;
else if(picName.endsWith(".tiff")) format = XWPFDocument.PICTURE_TYPE_TIFF;
else if(picName.endsWith(".eps")) format = XWPFDocument.PICTURE_TYPE_EPS;
else if(picName.endsWith(".bmp")) format = XWPFDocument.PICTURE_TYPE_BMP;
else if(picName.endsWith(".wpg")) format = XWPFDocument.PICTURE_TYPE_WPG;
XWPFRun stdMarkRun = imgPara.createRun();
stdMarkRun.addBreak();
String blipId = imgPara.getDocument().addPictureData(new FileInputStream(new File(picName)),format);
document.createPicture(blipId,document.getNextPicNameNumber(format),width,height, imgPara);
}catch (Exception e) {
e.printStackTrace();
}
}
/**
*创建自定义Java类继承自XWPFDocument
*/
class CustomXWPFDocument extends XWPFDocument {
public CustomXWPFDocument() {
super();
}
public CustomXWPFDocument(InputStream in) throws IOException {
super(in);
}
public CustomXWPFDocument(OPCPackage pkg) throws IOException {
super(pkg);
}
public void createPicture(String blipId, int id, int width, int height,
XWPFParagraph paragraph) {
final int EMU = 9525;
width *= EMU;
height *= EMU;
// String blipId =
// getAllPictures().get(id).getPackageRelationship().getId();
if (paragraph == null) {
paragraph = createParagraph();
}
CTInline inline = paragraph.createRun().getCTR().addNewDrawing()
.addNewInline();
String picXml = ""
+ ""
+ " "
+ " "
+ " " + "
+ id
+ "\" name=\"img_"
+ id
+ "\"/>"
+ " "
+ "
"
+ " "
+ "
+ blipId
+ "\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\"/>"
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ "
+ width
+ "\" cy=\""
+ height
+ "\"/>"
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " " + "";
// CTGraphicalObjectData graphicData =
// inline.addNewGraphic().addNewGraphicData();
XmlToken xmlToken = null;
try {
xmlToken = XmlToken.Factory.parse(picXml);
} catch (XmlException xe) {
xe.printStackTrace();
}
inline.set(xmlToken);
// graphicData.set(xmlToken);
inline.setDistT(0);
inline.setDistB(0);
inline.setDistL(0);
inline.setDistR(0);
CTPositiveSize2D extent = inline.addNewExtent();
extent.setCx(width);
extent.setCy(height);
CTNonVisualDrawingProps docPr = inline.addNewDocPr();
docPr.setId(id);
docPr.setName("docx_img_ " + id);
docPr.setDescr("docx Picture");
}
public void createPictureCxCy(String blipId, int id, long cx, long cy) {
CTInline inline = createParagraph().createRun().getCTR()
.addNewDrawing().addNewInline();
String picXml = ""
+ ""
+ " "
+ " "
+ " " + "
+ id
+ "\" name=\"Generated\"/>"
+ " "
+ "
"
+ " "
+ "
+ blipId
+ "\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\"/>"
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ "
+ cx
+ "\" cy=\""
+ cy
+ "\"/>"
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " " + "";
// CTGraphicalObjectData graphicData =
// inline.addNewGraphic().addNewGraphicData();
XmlToken xmlToken = null;
try {
xmlToken = XmlToken.Factory.parse(picXml);
} catch (XmlException xe) {
xe.printStackTrace();
}
inline.set(xmlToken);
// graphicData.set(xmlToken);
inline.setDistT(0);
inline.setDistB(0);
inline.setDistL(0);
inline.setDistR(0);
CTPositiveSize2D extent = inline.addNewExtent();
extent.setCx(cx);
extent.setCy(cy);
CTNonVisualDrawingProps docPr = inline.addNewDocPr();
docPr.setId(id);
docPr.setName("docx_img_ " + id);
docPr.setDescr("docx Picture");
}
}
java poi导出word图片_poi 导出word,导出图片解决方法相关推荐
- 解决 Java poi 3.8 等版本 操作 word 插入 图片 不成功的问题
解决 Java poi 3.8等版本操作word插入图片不成功的问题 问题: 最近有一个需求是将Excel中的数据转换到word中,其中包括了文字和图片, 在使用 poi 3.8 向word中写入图片 ...
- word转pdf后书签目录失效解决方法
word转pdf后书签目录失效解决方法 安装Acrobat和AutoBookmark,Acrobat自己上网找,AutoBookmark链接放下面 链接: https://pan.baidu.com/ ...
- 计算机word文档无法工作,word无法打开(WORD文档打不开_解决方法_电脑基础知识_IT/计算机_专业资料)...
word无法打开(WORD文档打不开_解决方法_电脑基础知识_IT/计算机_专业资料),哪吒游戏网给大家带来详细的word无法打开(WORD文档打不开_解决方法_电脑基础知识_IT/计算机_专业资料) ...
- 关于FreeMarker生成word文档后转换为pdf得解决方法及常见问题
关于FreeMarker生成word文档后转换为pdf得解决方法及常见问题 最近在做一个项目要求之前下载出的word简历直接变成pdf 格式进行展现.因为格式比较复杂,所以采用的时模板并用Freema ...
- Office word 2007不能另存为pdf格式的解决方法
Office word 2007不能另存为pdf格式的解决方法 参考文章: (1)Office word 2007不能另存为pdf格式的解决方法 (2)https://www.cnblogs.com/ ...
- excel php 数字科学计数_PHP导出excel时数字变为科学计数的解决方法
在数据导出到excel时数字格式不对,一般分为以下两种情况. 1.excel单元格设置长度不够 解决方法: $objActSheet = $objPHPExcel->getActiveSheet ...
- Word2007“由于文件许可权错误,Word无法完成保存操作”问题的解决方法
Word2007"由于文件许可权错误,Word无法完成保存操作"问题的解决方法操作系统windows xp sp3杀毒软件: 金山毒霸word 2007保存文件提示"由于 ...
- 打开WORD文档时提示“word无法启动转换器mswrd632 wpc”的解决方法
打开 WORD 文档时提示" word 无法启动转换器 mswrd632 wpc "的解决方法 因为之前安装的是精简版的 office 2003 ,导致系统找不到这个文件,出现标题 ...
- 打开word会自动出现页眉的解决方法
打开word会自动出现页眉的解决方法 文章目录 打开word会自动出现页眉的解决方法 1. 问题描述 2. 解决方法 1. 问题描述 当没有其他word文档打开时,新建并打开一个word文档,并不会自 ...
- word中遇到复制粘贴无法使用的解决方法
通常我们使用MathType的时候,会在word中遇到复制粘贴无法使用的解决方法: 1.在MathType的安装目录下找到MathPage.wll(在MathPage文件夹中)和MathType Co ...
最新文章
- 逆向工程核心原理学习笔记(十一):栈
- Android之ScrollView设置了高度(android:layout_height=“match_parent“)但里面的组件不能充满问题
- 10鼎信诺为什么安装不了_鼎信诺审计软件一周常见问题(4.134.17)
- java udp ip端口 设置_UDP端口扫描Java只找到1个开放的UDP端口
- 计算机音乐创作是什么,2021计算机音乐创作的作曲方式探究论文
- 建设自己拥有的B2C网站一般需要什么样的插件以及大体花费
- 如何避免ASP.NET网页初次加载缓慢
- python人门指南小说-致Python初学者 Anaconda入门使用指南完整版
- Oracle 补丁体系 及 opatch 工具 介绍
- 473.火柴拼正方形
- 天翼校园客户端“中毒”,江苏、广东、湖南成重灾区
- 从Zachman企业架构框架想到的
- JS中的迭代器和生成器
- ps基础学习:图层叠加
- 关于海康威视网络摄像机二次开发问题
- seo与sem的关系和区别
- UBR/CBR/VBR
- 饥荒为啥显示专用服务器,饥荒服务器和专用服务器有什么区别 | 手游网游页游攻略大全...
- android拍照保存照片方向,Android:Camera2开发详解(上):实现预览、拍照、保存照片等功能...
- google多开设置