当我尝试读取现有 docx 文件的内容时,Docx4j 出错
Docx4j gives error when I try to read content of existing docx file
我正在尝试使用 Docx4Java 从我的系统中读取 docx 文件的内容。我已经搜索了足够多的答案,但遗憾的是找不到。
下面是我在尝试实现我的代码时遇到的错误。
java.io.FileNotFoundException: G:\WorkSpaces1.docx (系统找不到指定的文件)
PS : 提供的文件路径没有错误。没有 jar 文件不存在。我问之前都检查过了。
谁能告诉我哪里出错了?
import java.io.*;
import java.util.*;
import org.docx4j.*;
public class doc4jcodegeeks {
public static void main(String[] args) throws FileNotFoundException {
try {
doc4jcodegeeks dcf = new doc4jcodegeeks();
dcf.getTemplate();
}
catch (Exception e) {
e.printStackTrace();
}
}
private WordprocessingMLPackage getTemplate() throws Docx4JException, FileNotFoundException {
WordprocessingMLPackage template = WordprocessingMLPackage.load(new FileInputStream(
new File("G:\WorkSpaces\111.docx")));
return template;
}
好像是G:是网盘。在 windows 中,JVM 在 System
用户下运行。该用户看不到网络磁盘。你可以试试:
启动程序时更改用户;
尝试指定完整的网络路径 (\share\filename.docx
)
最后复制文件到本地磁盘;
感谢 Ken Bekov 的回答。一段时间后,我找到了解决方案并通过以下方式在输出 window 上显示文档内容:
private WordprocessingMLPackage getTemplate() throws Docx4JException, FileNotFoundException {
WordprocessingMLPackage template = WordprocessingMLPackage.load(new java.io.File("G:\WorkSpaces\111.docx"));
MainDocumentPart documentPart = template.getMainDocumentPart();
List<Object> listObj = documentPart.getContent();
String str = listObj.toString();
System.out.println(str);
return template;
}
我正在尝试使用 Docx4Java 从我的系统中读取 docx 文件的内容。我已经搜索了足够多的答案,但遗憾的是找不到。
下面是我在尝试实现我的代码时遇到的错误。
java.io.FileNotFoundException: G:\WorkSpaces1.docx (系统找不到指定的文件)
PS : 提供的文件路径没有错误。没有 jar 文件不存在。我问之前都检查过了。
谁能告诉我哪里出错了?
import java.io.*;
import java.util.*;
import org.docx4j.*;
public class doc4jcodegeeks {
public static void main(String[] args) throws FileNotFoundException {
try {
doc4jcodegeeks dcf = new doc4jcodegeeks();
dcf.getTemplate();
}
catch (Exception e) {
e.printStackTrace();
}
}
private WordprocessingMLPackage getTemplate() throws Docx4JException, FileNotFoundException {
WordprocessingMLPackage template = WordprocessingMLPackage.load(new FileInputStream(
new File("G:\WorkSpaces\111.docx")));
return template;
}
好像是G:是网盘。在 windows 中,JVM 在 System
用户下运行。该用户看不到网络磁盘。你可以试试:
启动程序时更改用户;
尝试指定完整的网络路径 (
\share\filename.docx
)最后复制文件到本地磁盘;
感谢 Ken Bekov 的回答。一段时间后,我找到了解决方案并通过以下方式在输出 window 上显示文档内容:
private WordprocessingMLPackage getTemplate() throws Docx4JException, FileNotFoundException {
WordprocessingMLPackage template = WordprocessingMLPackage.load(new java.io.File("G:\WorkSpaces\111.docx"));
MainDocumentPart documentPart = template.getMainDocumentPart();
List<Object> listObj = documentPart.getContent();
String str = listObj.toString();
System.out.println(str);
return template;
}