我使用docx4j 3.2.2.jar来替换word文档中的页眉,页脚和表格。该代码用于正常工作,直到我使用word 2007作为要处理的文件。
当我修改word文档并使用word 2013添加任何形状时,会生成以下xml命名空间。
docx4j无法将页眉,页脚和表格写入服务器上的word文档。
<?xml version="1.0" encoding="UTF-8" standalone="true"?>
<w:document mc:Ignorable="w14 w15 wp14"
xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape"
xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml"
xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk"
xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup"
xmlns:w15="http://schemas.microsoft.com/office/word/2012/wordml" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing xmlns:v="urn:schemas-microsoft-com:vml" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas">
但是,如果我在本地设置上复制相同的docx4j代码并提供处理文件,则会正确处理该文件。并生成以下xml命名空间。
<?xml version="1.0" encoding="UTF-8" standalone="true"?>
<w:document mc:Ignorable="w14 w15"
xmlns:ns32="http://schemas.openxmlformats.org/drawingml/2006/lockedCanvas" xmlns:ns31="http://schemas.openxmlformats.org/drawingml/2006/compatibility" xmlns:ns30="http://schemas.openxmlformats.org/officeDocument/2006/bibliography" xmlns:odgm="http://opendope.org/SmartArt/DataHierarchy" xmlns:odi="http://opendope.org/components" xmlns:oda="http://opendope.org/answers" xmlns:odq="http://opendope.org/questions" xmlns:odc="http://opendope.org/conditions" xmlns:odx="http://opendope.org/xpaths" xmlns:ns23="http://schemas.microsoft.com/office/2006/coverPageProps" xmlns:ns21="urn:schemas-microsoft-com:office:powerpoint" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:ns17="urn:schemas-microsoft-com:office:excel" xmlns:dsp="http://schemas.microsoft.com/office/drawing/2008/diagram" xmlns:xdr="http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing" xmlns:pic="http://schemas.openxmlformats.org/drawingml/2006/picture" xmlns:dgm="http://schemas.openxmlformats.org/drawingml/2006/diagram" xmlns:ns12="http://schemas.openxmlformats.org/drawingml/2006/chartDrawing" xmlns:c="http://schemas.openxmlformats.org/drawingml/2006/chart" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:ns9="http://schemas.openxmlformats.org/schemaLibrary/2006/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:w15="http://schemas.microsoft.com/office/word/2012/wordml" xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
在服务器上生成以下异常,而相同的代码在我的本地设置上正确处理文件。
方法错误
getFirstTable!syJavaExceptionWrapper,org.docx4j.openpackaging.exceptions.Docx4JException: org/docx4j/jaxb/mc-preprocessor.xslt not found via classloader.!syJavaExceptionWrapper,javax.xml.bind.JAXBException: org/docx4j/jaxb/mc-preprocessor.xslt not found via classloader.<br> - with linked exception:<br>[java.io.IOException: org/docx4j/jaxb/mc-preprocessor.xslt not found via classloader.]!syJavaExceptionWrapper,java.io.IOException: org/docx4j/jaxb/mc-preprocessor.xslt not found via classloader.
org.docx4j.openpackaging.exceptions.Docx4JException: org/docx4j/jaxb/mc-preprocessor.xslt not found via classloader.
at org.docx4j.openpackaging.parts.JaxbXmlPart.getContents(JaxbXmlPart.java:154)
at com.webcenter.content.docx4j.TableUtil.getFirstTable(TableUtil.java:102)