如何将 XWPFDocument 转换为 PDF

问题描述

我在将 DOCX 文件转换为 PDF 时遇到问题。代码如下:

import fr.opensagres.poi.xwpf.converter.pdf.*;
import org.apache.poi.xwpf.usermodel.XWPFDocument;

File docxFile         = new File("somepath\Sample.docx");
File pdfFile          = new File("somepath\Sample.pdf");
PdfOptions pdfOptions = PdfOptions.create();
InputStream  is       = new FileInputStream(docxFile);
OutputStream pdfOut   = new FileOutputStream(pdfFile);
XWPFDocument xwpfDoc  = new XWPFDocument(is);
PdfConverter.getInstance().convert(xwpfDoc,pdfOut,pdfOptions);

错误如下:

SEVERE: Servlet.service() for servlet [SpringDispatcher] in context with path [/ganymede] threw exception [Request processing failed; nested exception is fr.opensagres.poi.xwpf.converter.core.XWPFConverterException: org.apache.xmlbeans.impl.values.XmlValueOutOfRangeException: Invalid integer value: 739.0000152587891] with root cause
org.apache.xmlbeans.impl.values.XmlValueOutOfRangeException: Invalid integer value: 739.0000152587891
    at org.apache.xmlbeans.impl.values.XmlObjectBase$ValueOutOfRangeValidationContext.invalid(XmlObjectBase.java:328)
    at org.apache.xmlbeans.impl.values.JavaIntegerHolder.lex(JavaIntegerHolder.java:50)
    at org.apache.xmlbeans.impl.values.JavaIntegerHolderEx.set_text(JavaIntegerHolderEx.java:40)
    at org.apache.xmlbeans.impl.values.XmlObjectBase.update_from_wscanon_text(XmlObjectBase.java:1180)
    at org.apache.xmlbeans.impl.values.XmlObjectBase.check_dated(XmlObjectBase.java:1319)
    at org.apache.xmlbeans.impl.values.JavaIntegerHolder.getBigIntegerValue(JavaIntegerHolder.java:58)
    at org.openxmlformats.schemas.wordprocessingml.x2006.main.impl.CTTabStopImpl.getPos(Unknown Source)
    at fr.opensagres.poi.xwpf.converter.pdf.internal.PdfMapper.canApplyTabStop(PdfMapper.java:849)
    at fr.opensagres.poi.xwpf.converter.pdf.internal.PdfMapper.getTabStop(PdfMapper.java:824)
    at fr.opensagres.poi.xwpf.converter.pdf.internal.PdfMapper.visitTabs(PdfMapper.java:738)
    at fr.opensagres.poi.xwpf.converter.pdf.internal.PdfMapper.visitTabs(PdfMapper.java:111)
    at fr.opensagres.poi.xwpf.converter.core.XWPFDocumentVisitor.visitRun(XWPFDocumentVisitor.java:798)
    at fr.opensagres.poi.xwpf.converter.pdf.internal.PdfMapper.visitRun(PdfMapper.java:524)
    at fr.opensagres.poi.xwpf.converter.pdf.internal.PdfMapper.visitRun(PdfMapper.java:111)
    at fr.opensagres.poi.xwpf.converter.core.XWPFDocumentVisitor.visitRuns(XWPFDocumentVisitor.java:617)
    at fr.opensagres.poi.xwpf.converter.core.XWPFDocumentVisitor.visitParagraphBody(XWPFDocumentVisitor.java:442)
    at fr.opensagres.poi.xwpf.converter.core.XWPFDocumentVisitor.visitParagraph(XWPFDocumentVisitor.java:333)

我的 Apache POI 版本是 3.9,PDF 转换器是 2.0.0。

另一个注意事项是该文档是使用 WYSIWYG 编辑器生成的。这可能是它在将 docx 属性转换为 PDF 之前为其设置不规则值的原因?

您认为是什么导致了这种情况,我应该如何处理?谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...