使用 Docx4j 将 DOCX 转换为 PDF 时出错
Error when converting DOCX to PDF with Docx4j
我正在尝试使用 Docx4J 将 DOCX 文件转换为 PDF 并收到两个不同文档的两个不同的异常。
1) 对于文档 1,在第一个文档的 org.docx4j.utils.SingleTraversalUtilVisitorCallback.apply(SingleTraversalUtilVisitorCallback.java:27) 发生 NullPointerException。
2) 对于文档 2,出现此异常:org.apache.fop.fo.ValidationException:行中的列数或单元格数溢出了为 [=35= 指定的 fo:table 列数]."
文件内容大同小异。两个文档中都包含 tables,它们是使用 Apache POI 创建的。两个文档中的表格都包含多列单元格跨度(由 POI 设置)。当 Apache POI 创建的 table 中不存在跨度时,不会发生这些错误。显然,问题与跨度有关。我想知道我是否错误地创建了 POI 跨度。
我在下面包含的代码是否是在 POI 中的 table 中创建单元格跨度的正确方法?另一个需要注意的重要事实是,如果我一次在 Word 中打开任一文档并将其保存(在最初使用 POI 创建它之后,随后的 PDF 转换成功。这对我来说表明 Word 正在清理不一致或问题与文件一起。我想确认是否正确创建了 span,以避免疑似 table 问题。
这是我使用 Apache POI 在文档 table 中创建跨度的代码:
XWPFTableRow row = table.getRow( rowIndex );
XWPFTableCell cell = row.getCell( colIndex );
CTTcPr cellPointer = cell.getCTTc().getTcPr();
cellPointer.addNewGridSpan();
cellPointer.getGridSpan().setVal( bigIntSpan );
这是我用来将文档转换为 PDF 的代码:
String fileName = "DocName";
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load( new java.io.File( fileName + ".docx" ) );
FileOutputStream outputStream = new FileOutputStream( fileName + ".pdf" );
Docx4J.toPDF( wordMLPackage, outputStream );
这是 DOCX 存档中 word/document.xml 文件的完整 XML:
<?xml version="1.0" encoding="UTF-8"?>
<w:document mc:Ignorable="w14 wp14" xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:mo="http://schemas.microsoft.com/office/mac/office/2008/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mv="urn:schemas-microsoft-com:mac:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><w:body><w:p w14:paraId="23F196FC" w14:textId="6A07C789" w:rsidR="00224B2C" w:rsidRDefault="00224B2C" w:rsidP="00224B2C"><w:pPr><w:jc w:val="center"/><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial"/><w:b/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial"/><w:b/></w:rPr><w:t>Event Order Services</w:t></w:r></w:p><w:p w14:paraId="73306DCF" w14:textId="77777777" w:rsidR="00224B2C" w:rsidRDefault="00224B2C"><w:pPr><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial"/><w:sz w:val="18"/></w:rPr></w:pPr></w:p><w:tbl><w:tblPr><w:tblW w:w="0" w:type="auto"/><w:tblW w:type="dxa" w:w="11000"/><w:tblBorders><w:top w:val="single"/><w:left w:val="single"/><w:bottom w:val="single"/><w:right w:val="single"/><w:insideH w:val="none" w:sz="0" w:space="5" w:color="000000"/><w:insideV w:val="single"/></w:tblBorders><w:tblCellMar><w:top w:type="dxa" w:w="40"/><w:left w:type="dxa" w:w="100"/><w:bottom w:type="dxa" w:w="40"/><w:right w:type="dxa" w:w="100"/></w:tblCellMar></w:tblPr><w:tr><w:tc><w:tcPr><w:tcBorders><w:top w:val="thick" w:space="0" w:color="000000"/></w:tcBorders><w:shd w:color="auto" w:val="clear" w:fill="D4D3C9"/></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="2000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="true"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>Service Time and Location</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="thick" w:space="0" w:color="000000"/></w:tcBorders><w:shd w:color="auto" w:val="clear" w:fill="D4D3C9"/></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="2000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="true"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>Service Type and Notes</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="thick" w:space="0" w:color="000000"/></w:tcBorders><w:shd w:color="auto" w:val="clear" w:fill="D4D3C9"/></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="4000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="true"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>Service Items</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="thick" w:space="0" w:color="000000"/></w:tcBorders><w:shd w:color="auto" w:val="clear" w:fill="D4D3C9"/></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="1000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="true"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>Quantity</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="thick" w:space="0" w:color="000000"/></w:tcBorders><w:shd w:color="auto" w:val="clear" w:fill="D4D3C9"/></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="1000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="true"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>Price</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="thick" w:space="0" w:color="000000"/></w:tcBorders><w:shd w:color="auto" w:val="clear" w:fill="D4D3C9"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="true"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>Total</w:t></w:r></w:p></w:tc></w:tr><w:tr><w:tc><w:tcPr><w:tcBorders><w:top w:val="thick" w:space="0" w:color="000000"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="2000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>5:00pm-7:00pm</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="thick" w:space="0" w:color="000000"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="2000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>Food</w:t></w:r></w:p><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t xsi:nil="true"/></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="thick" w:space="0" w:color="000000"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="4000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>Breakfast Pastries</w:t></w:r></w:p><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>Assorted Breakfast Pastries and Muffins (One Dozen)</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="thick" w:space="0" w:color="000000"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="1000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>9.50</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="thick" w:space="0" w:color="000000"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="1000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>.00</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="thick" w:space="0" w:color="000000"/></w:tcBorders></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>1.00</w:t></w:r></w:p></w:tc></w:tr><w:tr><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="2000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t/></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="2000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t/></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="4000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>Chicken Parmesan</w:t></w:r></w:p><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>Charcoal Grilled Chicken Breast with Roasted New Potatoes, Pancetta, Mushroom, Chard and Roast Garlic Aioli</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="1000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>75</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="1000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>.50</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>2.50</w:t></w:r></w:p></w:tc></w:tr><w:tr><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="2000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>5:00pm-7:00pm</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="2000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>Beverage</w:t></w:r></w:p><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t xsi:nil="true"/></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="4000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>House Chardonnay</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="1000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>55</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="1000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>.50</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>7.50</w:t></w:r></w:p></w:tc></w:tr><w:tr><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="2000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t/></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="2000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t/></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="4000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>Imported Beer</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="1000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>75</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="1000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>.00</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>5.00</w:t></w:r></w:p></w:tc></w:tr><w:tr><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="2000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>6:00pm-6:30pm</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="2000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>Equipment</w:t></w:r></w:p><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t xsi:nil="true"/></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="4000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>Large Trash Cans</w:t></w:r></w:p><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>20 Gallon Trash Cans</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="1000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>8</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="1000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t/></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t/></w:r></w:p></w:tc></w:tr></w:tbl><w:p/><w:p w14:paraId="7C9EC931" w14:textId="64559963" w:rsidR="00946FE4" w:rsidRPr="002C5993" w:rsidRDefault="00516E3A" w:rsidP="006726C4"><w:pPr><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial"/><w:sz w:val="18"/></w:rPr></w:pPr><w:proofErr w:type="spellStart"/><w:proofErr w:type="gramStart"/><w:r w:rsidR="00F41D65" w:rsidRPr="00F41D65"><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial"/><w:sz w:val="18"/></w:rPr><w:t/></w:r><w:r w:rsidR="00674C75"><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial"/><w:sz w:val="18"/></w:rPr><w:t/></w:r><w:proofErr w:type="spellEnd"/><w:proofErr w:type="gramEnd"/></w:p><w:p w14:paraId="1046E6B9" w14:textId="3BF4552D" w:rsidR="00FF34DB" w:rsidRPr="001E128D" w:rsidRDefault="00FF34DB" w:rsidP="001E128D"><w:pPr><w:tabs><w:tab w:val="left" w:pos="4507"/></w:tabs><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial"/></w:rPr></w:pPr><w:bookmarkStart w:id="0" w:name="_GoBack"/><w:bookmarkEnd w:id="0"/></w:p><w:sectPr w:rsidR="00FF34DB" w:rsidRPr="001E128D" w:rsidSect="000E7529"><w:headerReference w:type="even" r:id="rId9"/><w:headerReference w:type="default" r:id="rId10"/><w:footerReference w:type="even" r:id="rId11"/><w:footerReference w:type="default" r:id="rId12"/><w:headerReference w:type="first" r:id="rId13"/><w:footerReference w:type="first" r:id="rId14"/><w:type w:val="continuous"/><w:pgSz w:w="12240" w:h="15840" w:code="1"/><w:pgMar w:top="288" w:right="720" w:bottom="662" w:left="720" w:header="720" w:footer="720" w:gutter="0"/><w:cols w:space="720"/><w:docGrid w:linePitch="272"/></w:sectPr></w:body></w:document>
和堆栈跟踪:
[2015-01-08 15:05:04,084] [http-bio-7070-exec-10] ERROR [org.docx4j.convert.out.common.AbstractExporter] - Exception exporting package
java.lang.NullPointerException
at org.docx4j.utils.SingleTraversalUtilVisitorCallback.apply(SingleTraversalUtilVisitorCallback.java:27)
at org.docx4j.utils.AbstractTraversalUtilVisitorCallback.walkJAXBElements(AbstractTraversalUtilVisitorCallback.java:76)
at org.docx4j.utils.AbstractTraversalUtilVisitorCallback.walkJAXBElements(AbstractTraversalUtilVisitorCallback.java:78)
at org.docx4j.utils.AbstractTraversalUtilVisitorCallback.walkJAXBElements(AbstractTraversalUtilVisitorCallback.java:78)
at org.docx4j.utils.AbstractTraversalUtilVisitorCallback.walkJAXBElements(AbstractTraversalUtilVisitorCallback.java:78)
at org.docx4j.utils.AbstractTraversalUtilVisitorCallback.walkJAXBElements(AbstractTraversalUtilVisitorCallback.java:78)
at org.docx4j.utils.AbstractTraversalUtilVisitorCallback.walkJAXBElements(AbstractTraversalUtilVisitorCallback.java:78)
at org.docx4j.TraversalUtil.visit(TraversalUtil.java:662)
at org.docx4j.TraversalUtil.visit(TraversalUtil.java:574)
at org.docx4j.convert.out.common.preprocess.FieldsCombiner.process(FieldsCombiner.java:59)
at org.docx4j.convert.out.common.Preprocess.process(Preprocess.java:144)
at org.docx4j.convert.out.common.AbstractWmlExporter.preprocess(AbstractWmlExporter.java:51)
at org.docx4j.convert.out.common.AbstractWmlExporter.preprocess(AbstractWmlExporter.java:32)
at org.docx4j.convert.out.common.AbstractExporter.export(AbstractExporter.java:63)
at org.docx4j.Docx4J.toFO(Docx4J.java:467)
at org.docx4j.Docx4J.toPDF(Docx4J.java:481)
org.docx4j.utils.SingleTraversalUtilVisitorCallback.apply(SingleTraversalUtilVisitorCallback.java:27 的 NullPointerException 是由具有空文本的 Apache POI XWPFRun 引起的。我的应用程序中的代码会错误地设置 XWPFRun 的文本在 XWPFTableCell > XWPFParagraph 元素内为 null。
后续将文档转PDF时,会出现上述异常。我添加了代码以确保文档中不存在带有空文本的 XWPFRuns。
每当创建 运行 时,现在我都这样做以确保文本永远不会为空。
xwpfRun.setText( text == null ? "" : text);
我希望这对遇到此错误的其他人有所帮助。
我正在尝试使用 Docx4J 将 DOCX 文件转换为 PDF 并收到两个不同文档的两个不同的异常。
1) 对于文档 1,在第一个文档的 org.docx4j.utils.SingleTraversalUtilVisitorCallback.apply(SingleTraversalUtilVisitorCallback.java:27) 发生 NullPointerException。
2) 对于文档 2,出现此异常:org.apache.fop.fo.ValidationException:行中的列数或单元格数溢出了为 [=35= 指定的 fo:table 列数]."
文件内容大同小异。两个文档中都包含 tables,它们是使用 Apache POI 创建的。两个文档中的表格都包含多列单元格跨度(由 POI 设置)。当 Apache POI 创建的 table 中不存在跨度时,不会发生这些错误。显然,问题与跨度有关。我想知道我是否错误地创建了 POI 跨度。
我在下面包含的代码是否是在 POI 中的 table 中创建单元格跨度的正确方法?另一个需要注意的重要事实是,如果我一次在 Word 中打开任一文档并将其保存(在最初使用 POI 创建它之后,随后的 PDF 转换成功。这对我来说表明 Word 正在清理不一致或问题与文件一起。我想确认是否正确创建了 span,以避免疑似 table 问题。
这是我使用 Apache POI 在文档 table 中创建跨度的代码:
XWPFTableRow row = table.getRow( rowIndex );
XWPFTableCell cell = row.getCell( colIndex );
CTTcPr cellPointer = cell.getCTTc().getTcPr();
cellPointer.addNewGridSpan();
cellPointer.getGridSpan().setVal( bigIntSpan );
这是我用来将文档转换为 PDF 的代码:
String fileName = "DocName";
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load( new java.io.File( fileName + ".docx" ) );
FileOutputStream outputStream = new FileOutputStream( fileName + ".pdf" );
Docx4J.toPDF( wordMLPackage, outputStream );
这是 DOCX 存档中 word/document.xml 文件的完整 XML:
<?xml version="1.0" encoding="UTF-8"?>
<w:document mc:Ignorable="w14 wp14" xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:mo="http://schemas.microsoft.com/office/mac/office/2008/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mv="urn:schemas-microsoft-com:mac:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><w:body><w:p w14:paraId="23F196FC" w14:textId="6A07C789" w:rsidR="00224B2C" w:rsidRDefault="00224B2C" w:rsidP="00224B2C"><w:pPr><w:jc w:val="center"/><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial"/><w:b/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial"/><w:b/></w:rPr><w:t>Event Order Services</w:t></w:r></w:p><w:p w14:paraId="73306DCF" w14:textId="77777777" w:rsidR="00224B2C" w:rsidRDefault="00224B2C"><w:pPr><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial"/><w:sz w:val="18"/></w:rPr></w:pPr></w:p><w:tbl><w:tblPr><w:tblW w:w="0" w:type="auto"/><w:tblW w:type="dxa" w:w="11000"/><w:tblBorders><w:top w:val="single"/><w:left w:val="single"/><w:bottom w:val="single"/><w:right w:val="single"/><w:insideH w:val="none" w:sz="0" w:space="5" w:color="000000"/><w:insideV w:val="single"/></w:tblBorders><w:tblCellMar><w:top w:type="dxa" w:w="40"/><w:left w:type="dxa" w:w="100"/><w:bottom w:type="dxa" w:w="40"/><w:right w:type="dxa" w:w="100"/></w:tblCellMar></w:tblPr><w:tr><w:tc><w:tcPr><w:tcBorders><w:top w:val="thick" w:space="0" w:color="000000"/></w:tcBorders><w:shd w:color="auto" w:val="clear" w:fill="D4D3C9"/></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="2000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="true"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>Service Time and Location</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="thick" w:space="0" w:color="000000"/></w:tcBorders><w:shd w:color="auto" w:val="clear" w:fill="D4D3C9"/></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="2000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="true"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>Service Type and Notes</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="thick" w:space="0" w:color="000000"/></w:tcBorders><w:shd w:color="auto" w:val="clear" w:fill="D4D3C9"/></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="4000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="true"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>Service Items</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="thick" w:space="0" w:color="000000"/></w:tcBorders><w:shd w:color="auto" w:val="clear" w:fill="D4D3C9"/></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="1000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="true"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>Quantity</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="thick" w:space="0" w:color="000000"/></w:tcBorders><w:shd w:color="auto" w:val="clear" w:fill="D4D3C9"/></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="1000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="true"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>Price</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="thick" w:space="0" w:color="000000"/></w:tcBorders><w:shd w:color="auto" w:val="clear" w:fill="D4D3C9"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="true"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>Total</w:t></w:r></w:p></w:tc></w:tr><w:tr><w:tc><w:tcPr><w:tcBorders><w:top w:val="thick" w:space="0" w:color="000000"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="2000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>5:00pm-7:00pm</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="thick" w:space="0" w:color="000000"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="2000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>Food</w:t></w:r></w:p><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t xsi:nil="true"/></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="thick" w:space="0" w:color="000000"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="4000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>Breakfast Pastries</w:t></w:r></w:p><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>Assorted Breakfast Pastries and Muffins (One Dozen)</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="thick" w:space="0" w:color="000000"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="1000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>9.50</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="thick" w:space="0" w:color="000000"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="1000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>.00</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="thick" w:space="0" w:color="000000"/></w:tcBorders></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>1.00</w:t></w:r></w:p></w:tc></w:tr><w:tr><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="2000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t/></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="2000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t/></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="4000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>Chicken Parmesan</w:t></w:r></w:p><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>Charcoal Grilled Chicken Breast with Roasted New Potatoes, Pancetta, Mushroom, Chard and Roast Garlic Aioli</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="1000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>75</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="1000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>.50</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>2.50</w:t></w:r></w:p></w:tc></w:tr><w:tr><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="2000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>5:00pm-7:00pm</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="2000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>Beverage</w:t></w:r></w:p><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t xsi:nil="true"/></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="4000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>House Chardonnay</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="1000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>55</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="1000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>.50</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>7.50</w:t></w:r></w:p></w:tc></w:tr><w:tr><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="2000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t/></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="2000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t/></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="4000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>Imported Beer</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="1000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>75</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="1000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>.00</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>5.00</w:t></w:r></w:p></w:tc></w:tr><w:tr><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="2000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>6:00pm-6:30pm</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="2000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>Equipment</w:t></w:r></w:p><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t xsi:nil="true"/></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="4000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>Large Trash Cans</w:t></w:r></w:p><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>20 Gallon Trash Cans</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="1000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t>8</w:t></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:tcPr><w:tcW w:type="dxa" w:w="1000"/></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t/></w:r></w:p></w:tc><w:tc><w:tcPr><w:tcBorders><w:top w:val="none" w:space="0" w:color="FFFFFF"/></w:tcBorders></w:tcPr><w:p><w:pPr><w:jc w:val="center"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial" w:eastAsia="Arial"/><w:b w:val="false"/><w:i w:val="false"/><w:sz w:val="20"/></w:rPr><w:t/></w:r></w:p></w:tc></w:tr></w:tbl><w:p/><w:p w14:paraId="7C9EC931" w14:textId="64559963" w:rsidR="00946FE4" w:rsidRPr="002C5993" w:rsidRDefault="00516E3A" w:rsidP="006726C4"><w:pPr><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial"/><w:sz w:val="18"/></w:rPr></w:pPr><w:proofErr w:type="spellStart"/><w:proofErr w:type="gramStart"/><w:r w:rsidR="00F41D65" w:rsidRPr="00F41D65"><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial"/><w:sz w:val="18"/></w:rPr><w:t/></w:r><w:r w:rsidR="00674C75"><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial"/><w:sz w:val="18"/></w:rPr><w:t/></w:r><w:proofErr w:type="spellEnd"/><w:proofErr w:type="gramEnd"/></w:p><w:p w14:paraId="1046E6B9" w14:textId="3BF4552D" w:rsidR="00FF34DB" w:rsidRPr="001E128D" w:rsidRDefault="00FF34DB" w:rsidP="001E128D"><w:pPr><w:tabs><w:tab w:val="left" w:pos="4507"/></w:tabs><w:rPr><w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial"/></w:rPr></w:pPr><w:bookmarkStart w:id="0" w:name="_GoBack"/><w:bookmarkEnd w:id="0"/></w:p><w:sectPr w:rsidR="00FF34DB" w:rsidRPr="001E128D" w:rsidSect="000E7529"><w:headerReference w:type="even" r:id="rId9"/><w:headerReference w:type="default" r:id="rId10"/><w:footerReference w:type="even" r:id="rId11"/><w:footerReference w:type="default" r:id="rId12"/><w:headerReference w:type="first" r:id="rId13"/><w:footerReference w:type="first" r:id="rId14"/><w:type w:val="continuous"/><w:pgSz w:w="12240" w:h="15840" w:code="1"/><w:pgMar w:top="288" w:right="720" w:bottom="662" w:left="720" w:header="720" w:footer="720" w:gutter="0"/><w:cols w:space="720"/><w:docGrid w:linePitch="272"/></w:sectPr></w:body></w:document>
和堆栈跟踪:
[2015-01-08 15:05:04,084] [http-bio-7070-exec-10] ERROR [org.docx4j.convert.out.common.AbstractExporter] - Exception exporting package java.lang.NullPointerException at org.docx4j.utils.SingleTraversalUtilVisitorCallback.apply(SingleTraversalUtilVisitorCallback.java:27) at org.docx4j.utils.AbstractTraversalUtilVisitorCallback.walkJAXBElements(AbstractTraversalUtilVisitorCallback.java:76) at org.docx4j.utils.AbstractTraversalUtilVisitorCallback.walkJAXBElements(AbstractTraversalUtilVisitorCallback.java:78) at org.docx4j.utils.AbstractTraversalUtilVisitorCallback.walkJAXBElements(AbstractTraversalUtilVisitorCallback.java:78) at org.docx4j.utils.AbstractTraversalUtilVisitorCallback.walkJAXBElements(AbstractTraversalUtilVisitorCallback.java:78) at org.docx4j.utils.AbstractTraversalUtilVisitorCallback.walkJAXBElements(AbstractTraversalUtilVisitorCallback.java:78) at org.docx4j.utils.AbstractTraversalUtilVisitorCallback.walkJAXBElements(AbstractTraversalUtilVisitorCallback.java:78) at org.docx4j.TraversalUtil.visit(TraversalUtil.java:662) at org.docx4j.TraversalUtil.visit(TraversalUtil.java:574) at org.docx4j.convert.out.common.preprocess.FieldsCombiner.process(FieldsCombiner.java:59) at org.docx4j.convert.out.common.Preprocess.process(Preprocess.java:144) at org.docx4j.convert.out.common.AbstractWmlExporter.preprocess(AbstractWmlExporter.java:51) at org.docx4j.convert.out.common.AbstractWmlExporter.preprocess(AbstractWmlExporter.java:32) at org.docx4j.convert.out.common.AbstractExporter.export(AbstractExporter.java:63) at org.docx4j.Docx4J.toFO(Docx4J.java:467) at org.docx4j.Docx4J.toPDF(Docx4J.java:481)
org.docx4j.utils.SingleTraversalUtilVisitorCallback.apply(SingleTraversalUtilVisitorCallback.java:27 的 NullPointerException 是由具有空文本的 Apache POI XWPFRun 引起的。我的应用程序中的代码会错误地设置 XWPFRun 的文本在 XWPFTableCell > XWPFParagraph 元素内为 null。
后续将文档转PDF时,会出现上述异常。我添加了代码以确保文档中不存在带有空文本的 XWPFRuns。
每当创建 运行 时,现在我都这样做以确保文本永远不会为空。
xwpfRun.setText( text == null ? "" : text);
我希望这对遇到此错误的其他人有所帮助。