有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何将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

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

你认为这是什么原因造成的?我应该如何处理?谢谢


共 (0) 个答案