Word中存在上下标文本转换pdf失败

word中存在上下标文本转换pdf失败报错信息

cn.wk.document.convert.exception.DocumentConvertException: Word转PDF失败:The document appears to be corrupted and cannot be loaded.
	at cn.wk.document.convert.service.impl.WordToPdfServiceImpl.convertWordToPdf(WordToPdfServiceImpl.java:75)
	at cn.wk.document.convert.controller.WordToPdfController.convertWordToPdfDownload(WordToPdfController.java:139)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
	at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:748)
Caused by: com.aspose.words.FileCorruptedException: The document appears to be corrupted and cannot be loaded.
	at com.aspose.words.FileFormatUtil.zzW4d(Unknown Source)
	at com.aspose.words.Document.zzOk(Unknown Source)
	at com.aspose.words.Document.zzWe9(Unknown Source)
	at com.aspose.words.Document.<init>(Unknown Source)
	at com.aspose.words.Document.<init>(Unknown Source)
	at com.aspose.words.Document.<init>(Unknown Source)
	at cn.wk.document.convert.service.impl.WordToPdfServiceImpl.convertWordToPdf(WordToPdfServiceImpl.java:56)
	... 51 common frames omitted
Caused by: java.lang.IllegalStateException: Unknown value 'lines' for an 'onOffType' attribute.
	at com.aspose.words.zzVYG.zzXtr(Unknown Source)
	at com.aspose.words.zzVYG.zzXLg(Unknown Source)
	at com.aspose.words.zzY0b.zzWe9(Unknown Source)
	at com.aspose.words.zzY0b.zzOk(Unknown Source)
	at com.aspose.words.zzY0b.zzZR0(Unknown Source)
	at com.aspose.words.zzYSZ.zzW4d(Unknown Source)
	at com.aspose.words.zzYSZ.zzWZE(Unknown Source)
	at com.aspose.words.zzYSZ.zzW48(Unknown Source)
	at com.aspose.words.zzWen.zzW4d(Unknown Source)
	at com.aspose.words.zzWJH.zzYXn(Unknown Source)
	at com.aspose.words.zzWjk.zzOk(Unknown Source)
	at com.aspose.words.zzWjk.zzWO6(Unknown Source)
	at com.aspose.words.zzYRr.zzOk(Unknown Source)
	at com.aspose.words.zzYRr.zzYXn(Unknown Source)
	at com.aspose.words.zza3.zzW48(Unknown Source)
	at com.aspose.words.zzZpu.zzWe9(Unknown Source)
	at com.aspose.words.zzZpu.zzW4d(Unknown Source)
	at com.aspose.words.zz4c.zzZpB(Unknown Source)
	at com.aspose.words.zz4c.zzWZE(Unknown Source)
	at com.aspose.words.zz4c.zzW48(Unknown Source)
	at com.aspose.words.zzYRr.zzOk(Unknown Source)
	at com.aspose.words.zzYRr.zzXvr(Unknown Source)
	at com.aspose.words.zzYRr.zzOk(Unknown Source)
	at com.aspose.words.zzWe0.zzWe9(Unknown Source)
	at com.aspose.words.zzWe0.zzW48(Unknown Source)
	at com.aspose.words.zzWvp.zzgJ(Unknown Source)
	at com.aspose.words.Document.zzOk(Unknown Source)
	... 56 common frames omitted

@kin58

感谢您的反馈。根据您提供的错误信息(如 “Unknown value ‘lines’ for an ‘onOffType’ attribute”)[1],该问题似乎出现在使用 Aspose.Words for Java 将包含上下标文本的 Word 文档转换为 PDF 时。

为帮助我们进一步确认并定位问题,请您提供以下信息:

  1. Aspose.Words for Java 的具体版本号。
  2. 运行环境的 Java JDK 版本以及操作系统(Windows / Linux 及其版本)。
  3. 该错误是否仅在包含上下标(superscript/subscript)文本的文档中出现,其他普通文档是否可以正常转换?
  4. 如可能,请提供一个最小化的示例 Word 文件(仅包含上下标文本),以便我们复现该问题。

有了这些细节后,我们可以在此线程中继续跟进并尝试复现。谢谢!

上下标.zip (5.1 KB)

这是文件,使用最新版本的 aspose-words-26.1-jdk17.jar 也不行

aspose-words-26.1-jdk17.jar

使用jdk8

其他普通文档转换正常

word文件在下面回复中

@kin58

您在使用 Aspose.Words Java 26.1 将包含上下标(superscript/subscript)文本的 Word 文档转换为 PDF 时,抛出了 FileCorruptedException,内部原因是 IllegalStateException: Unknown value 'lines' for an 'onOffType' attribute【1】。该异常表明 Aspose.Words 在加载文档时未能识别某个属性,从而将文档视为已损坏。

可能的处理思路

  1. 尝试使用更新的 Aspose.Words 版本
    如果条件允许,请使用更高的 Aspose.Words for Java 版本进行测试,看看问题是否仍然出现。

  2. 使用加载选项规避
    在创建 Document 时可以使用 LoadOptions,然后在文档对象中遍历 Run 节点,将 Font.Superscript / Font.Subscript 设置为 false,再进行保存。此方式可以在一定程度上绕过对该属性的解析。

  3. 提供更多信息
    若上述方法仍未解决,请确认以下信息并回复:

    • 完整的堆栈跟踪(已提供的部分)。
    • 运行环境的操作系统和 JDK 版本。
    • 如有可能,提供最小化的复现文件(您已上传的 上下标.zip)的详细说明。

请在本线程中继续反馈测试结果,我们将进一步协助定位问题。

使用最新版的也不行
使用加载选项规避 也不行

new Document 的时候就直接报错了

Caused by: com.aspose.words.FileCorruptedException: The document appears to be corrupted and cannot be loaded.
	at com.aspose.words.FileFormatUtil.zzW4d(Unknown Source)
	at com.aspose.words.Document.zzOk(Unknown Source)
	at com.aspose.words.Document.zzWe9(Unknown Source)
	at com.aspose.words.Document.<init>(Unknown Source)
	at com.aspose.words.Document.<init>(Unknown Source)
	at com.aspose.words.Document.<init>(Unknown Source)
	at cn.wk.document.convert.service.impl.WordToPdfServiceImpl.convertWordToPdf(WordToPdfServiceImpl.java:59)
	... 51 common frames omitted
Caused by: java.lang.IllegalStateException: Unknown value 'lines' for an 'onOffType' attribute.
	at com.aspose.words.zzVYG.zzXtr(Unknown Source)
	at com.aspose.words.zzVYG.zzXLg(Unknown Source)
	at com.aspose.words.zzY0b.zzWe9(Unknown Source)
	at com.aspose.words.zzY0b.zzOk(Unknown Source)
	at com.aspose.words.zzY0b.zzZR0(Unknown Source)
	at com.aspose.words.zzYSZ.zzW4d(Unknown Source)
	at com.aspose.words.zzYSZ.zzWZE(Unknown Source)
	at com.aspose.words.zzYSZ.zzW48(Unknown Source)
	at com.aspose.words.zzWen.zzW4d(Unknown Source)
	at com.aspose.words.zzWJH.zzYXn(Unknown Source)
	at com.aspose.words.zzWjk.zzOk(Unknown Source)
	at com.aspose.words.zzWjk.zzWO6(Unknown Source)
	at com.aspose.words.zzYRr.zzOk(Unknown Source)
	at com.aspose.words.zzYRr.zzXvr(Unknown Source)
	at com.aspose.words.zzYRr.zzOk(Unknown Source)
	at com.aspose.words.zzWe0.zzWe9(Unknown Source)
	at com.aspose.words.zzWe0.zzW48(Unknown Source)
	at com.aspose.words.zzWvp.zzgJ(Unknown Source)
	at com.aspose.words.Document.zzOk(Unknown Source)
	... 56 common frames omitted

@kin58
我们已在内部问题跟踪系统中创建了以下新工单,并将根据 免费支持政策 中提到的条款交付其修复。

问题 ID:WORDSNET-29052

如果您需要优先支持并直接联系付费支持管理团队,可以使用 付费支持服务