我想用POI在Word里插入一张图片,这是我的测试代码。执行之后word打不开!错误如图中的提示
packagecom.sampleCodes;importorg.apache.poi.POIXMLDocument;importorg.apache.poi.util....
package com.sampleCodes;import org.apache.poi.POIXMLDocument;import org.apache.poi.util.Units;import org.apache.poi.xwpf.usermodel.BreakType;import org.apache.poi.xwpf.usermodel.XWPFDocument;import org.apache.poi.xwpf.usermodel.XWPFParagraph;import org.apache.poi.xwpf.usermodel.XWPFRun;import java.io.FileInputStream;import java.io.FileOutputStream;/** * Demonstrates how to add pictures in a .docx document * * @author Yegor Kozlov */public class Sample_InsertPictureToWord2007FromAPI { public static void main(String[] args) throws Exception { XWPFDocument doc = new XWPFDocument(POIXMLDocument.openPackage("E:/POIworks/src/com/orientFiles/Test Word2007.docx")); XWPFParagraph p = doc.createParagraph(); XWPFRun r = p.createRun(); String[] picName={"E:/POIworks/src/com/pic/insertPicture.jpeg"}; for(String imgFile : picName) { int format; if(imgFile.endsWith(".emf")) format = XWPFDocument.PICTURE_TYPE_EMF; else if(imgFile.endsWith(".wmf")) format = XWPFDocument.PICTURE_TYPE_WMF; else if(imgFile.endsWith(".pict")) format = XWPFDocument.PICTURE_TYPE_PICT; else if(imgFile.endsWith(".jpeg") || imgFile.endsWith(".jpg")) format = XWPFDocument.PICTURE_TYPE_JPEG; else if(imgFile.endsWith(".png")) format = XWPFDocument.PICTURE_TYPE_PNG; else if(imgFile.endsWith(".dib")) format = XWPFDocument.PICTURE_TYPE_DIB; else if(imgFile.endsWith(".gif")) format = XWPFDocument.PICTURE_TYPE_GIF; else if(imgFile.endsWith(".tiff")) format = XWPFDocument.PICTURE_TYPE_TIFF; else if(imgFile.endsWith(".eps")) format = XWPFDocument.PICTURE_TYPE_EPS; else if(imgFile.endsWith(".bmp")) format = XWPFDocument.PICTURE_TYPE_BMP; else if(imgFile.endsWith(".wpg")) format = XWPFDocument.PICTURE_TYPE_WPG; else { System.err.println("Unsupported picture: " + imgFile + ". Expected emf|wmf|pict|jpeg|png|dib|gif|tiff|eps|bmp|wpg"); continue; } r.setText(imgFile); r.addBreak(); r.addPicture(new FileInputStream(imgFile), format, imgFile, Units.toEMU(200), Units.toEMU(200)); // 200x200 pixels r.addBreak(BreakType.PAGE); } FileOutputStream out = new FileOutputStream("E:/POIworks/src/com/newFiles/Test Word2007.docx"); System.out.println("yes"); doc.write(out); out.close(); }}
这段代码是我根据官方提供的API的例子改写的,仅仅是将所用文件换成了我自己的而已!
——甚至我把方法体中的第一行对doc的定义换回原来的
XWPFDocument doc = new XWPFDocument();
也不行;还是像那样打不开! 展开
这段代码是我根据官方提供的API的例子改写的,仅仅是将所用文件换成了我自己的而已!
——甚至我把方法体中的第一行对doc的定义换回原来的
XWPFDocument doc = new XWPFDocument();
也不行;还是像那样打不开! 展开
3个回答
博思aippt
2024-07-20 广告
2024-07-20 广告
作为深圳市博思云创科技有限公司的工作人员,对于Word文档生成PPT的操作,我们有以下建议:1. 使用另存为功能:在Word中编辑完文档后,点击文件->另存为,选择PowerPoint演示文稿(*.pptx)格式,即可将文档内容转换为PPT...
点击进入详情页
本回答由博思aippt提供
展开全部
public void addPicture(string filepath, string oldfileName, uint id)
{
System.IO.FileStream gfs = new System.IO.FileStream(filepath, System.IO.FileMode.Open, System.IO.FileAccess.Read);
XWPFParagraph para = doc.CreateParagraph();
XWPFRun r = para.CreateRun();
XWPFPicture pic = r.AddPicture(gfs, (int)NPOI.XWPF.UserModel.PictureType.JPEG, oldfileName, 1000000, 1000000);
NPOI.OpenXmlFormats.Dml.WordProcessing.CT_Inline inline = r.GetCTR().GetDrawingList()[0].inline[0];
inline.docPr.id = id;//默认插入少了这个ID号,它就是图片的序号,从 1开始编号的。这个是我折腾了一整天弄才弄好的。
gfs.Close();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建议你参考下pageoffice
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |