【发布时间】:2015-12-22 23:04:21
【问题描述】:
这是我第一次在 Apache POI 上工作,我要问的问题已经在这个网站上提出过,但没有给他们明确的答案,所以我别无选择,只能接受你的帮助。
我正在尝试编写一个 java 程序,该程序从一个文件夹中获取图像并将该图像插入到 word 文档中。我正在为这个程序使用 Apache POI。我在这里发布我的代码。
import java.io.*;
import java.util.*;
import org.apache.poi.util.IOUtils;
import org.apache.poi.xwpf.usermodel.*;
public class ImagesDoc
{
public static void main(String[] args) throws IOException
{
XWPFDocument docx = new XWPFDocument();
XWPFParagraph par = docx.createParagraph();
XWPFRun run = par.createRun();
run.setText("Hello, World. This is my first java generated docx-file. Have fun.");
run.setFontSize(13);
InputStream pic = new FileInputStream("C:\\Users\\amitabh\\Pictures\\pics\\pool.jpg");
byte [] picbytes = IOUtils.toByteArray(pic);
docx.addPicture(picbytes, Document.PICTURE_TYPE_JPEG);
FileOutputStream out = new FileOutputStream("C:\\Users\\amitabh\\Pictures\\pics\\simple1.docx");
docx.write(out);
out.close();
pic.close();
}
}
我可以创建 word 文档文件,也可以插入文本,但 docx.addPicture(picbytes, Document.PICTURE_TYPE_JPEG); 行给我的错误是“将演员表添加到 docx”。我已经为这个程序添加了所有可能的 jar。对于这个错误,我在网上搜索了整个网络,发现很多人都有类似的问题。 XWPFDocument 参考的“addPicture”不起作用。请帮我解决这个问题。
【问题讨论】:
-
你能发布完整的错误,包括堆栈跟踪吗?
-
这是一个编译错误。在运行时,它给出的错误是“线程“主”java.lang.Error 中的异常:未解决的编译问题:对于 org.poi.images.ImagesDoc 中的 XWPFDocument 类型,方法 addPicture(byte[], int) 未定义。 main(ImagesDoc.java:17)"
-
啊,对。是的,这永远行不通 - 如果您查看 XWPFJavaDocs,您会看到签名是 addPictureData!
-
对不起,先生,即使这样也行不通。它显示相同的错误。在这里我把错误我得到“线程“主”java.lang.Error中的异常:未解决的编译问题:方法addPictureData(byte [],int)未定义org.poi.images.ImagesDoc中的XWPFDocument类型.main(ImagesDoc.java:19) "
-
确保您使用的是最新的 POI 罐子,听起来你们都有旧罐子并且正在遵循不正确的教程...
标签: java apache-poi