itext.dtd によると、table要素のdtd定義は、<!ELEMENT table (cell*)> となっているのだが、table要素とcell要素の間に、row要素が無いと正しく動作しないようだ。
Javaソース
import java.io.*;
import javax.xml.parsers.*;
import com.lowagie.text.*;
import com.lowagie.text.pdf.*;
import com.lowagie.text.xml.*;
中略
Document doc = new Document(PageSize.A4, 20, 20, 20, 20);
OutputStream out = new FileOutputStream("forxml.pdf");
PdfWriter pdfwriter = PdfWriter.getInstance(doc, out);
BaseFont jfont = BaseFont.createFont("HeiseiKakuGo-W5", "UniJIS-UCS2-H", BaseFont.NOT_EMBEDDED);
SAXiTextHandler xmlHandler = new SAXiTextHandler(doc, null, jfont);
SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
parser.parse(new FileInputStream("itext.xml"), xmlHandler);
XMLファイル
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE itext SYSTEM "http://itext.sourceforge.net/itext.dtd">
<itext>
<paragraph size="10">
<phrase>iTextサンプル</phrase>
</paragraph>
<table width="100%" widths="25;25;50" columns="3" borderwidth="1.0"
left="true" right="true" top="true" bottom="true">
<row>
<cell borderwidth="0.5" left="true" right="true" top="true" bottom="true">id</cell>
<cell borderwidth="0.5" left="true" right="true" top="true" bottom="true">名前</cell>
<cell borderwidth="0.5" left="true" right="true" top="true" bottom="true">部署</cell>
</row>
<row>
<cell borderwidth="0.5" left="true" right="true" top="true" bottom="true">xxx</cell>
<cell borderwidth="0.5" left="true" right="true" top="true" bottom="true">なまえ</cell>
<cell borderwidth="0.5" left="true" right="true" top="true" bottom="true">xxx部</cell>
</row>
</table>
</itext>