gpt4 book ai didi

java - 如何使用 Apache poi 保存 word docx 文件。更改为 saxon9he 而不是 saxon9pe

转载 作者:行者123 更新时间:2023-11-29 03:04:40 25 4
gpt4 key购买 nike

我使用最新的 Apache POI 3.13-beta1 版本。 我收到如下错误:

Exception in thread "main" org.apache.poi.openxml4j.exceptions.OpenXML4JRuntimeException: Fail to save: an error occurs while saving the package : null
at org.apache.poi.openxml4j.opc.ZipPackage.saveImpl(ZipPackage.java:507)
at org.apache.poi.openxml4j.opc.OPCPackage.save(OPCPackage.java:1441)
at org.apache.poi.POIXMLDocument.write(POIXMLDocument.java:202)
Caused by: java.lang.NullPointerException
at com.saxonica.config.Verifier.loadLicense(Verifier.java:141)
at com.saxonica.config.ProfessionalConfiguration.loadLicense(ProfessionalConfiguration.java:391)
at com.saxonica.config.ProfessionalConfiguration.isLicensedFeature(ProfessionalConfiguration.java:367)
at net.sf.saxon.IdentityTransformer.transform(IdentityTransformer.java:36)
at org.apache.poi.openxml4j.opc.StreamHelper.saveXmlInStream(StreamHelper.java:80)
at org.apache.poi.openxml4j.opc.internal.marshallers.ZipPartMarshaller.marshallRelationshipPart(ZipPartMarshaller.java:174)
at org.apache.poi.openxml4j.opc.ZipPackage.saveImpl(ZipPackage.java:468)

我的代码非常简单:

String filePath = "d:\\doc\\file1.docx"
try {
FileInputStream fis = new FileInputStream(filePath);
XWPFDocument xdoc = new XWPFDocument(OPCPackage.open(fis));

System.out.println("here I can read my file and work on it");

String filePathOut = filePath.replace("file", "file_result");
xdoc.write(new FileOutputStream(new File(filePathOut)));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (InvalidFormatException e) {
e.printStackTrace();
}

我想做一个替换并保存我的文件。

编辑 1.看起来 Apache poi 可以与我们需要许可证的 saxon9pe 库一起使用。我可以设置一些东西来避免 poi 中的这个 saxon9pe 并使用 saxon9he 吗?

谢谢。

最佳答案

这是我打开和关闭 docx 文件的方式:

final XWPFDocument docx = new XWPFDocument(new FileInputStream(new File(inFileNameString)));
final FileOutputStream out = new FileOutputStream(outFileNameString); docx.write(out);
out.close();
docx.close();

关于java - 如何使用 Apache poi 保存 word docx 文件。更改为 saxon9he 而不是 saxon9pe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32693603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com