わかりました、基本的に私は Java で iText の XMLWorker を使用して HTML ファイルを PDF に変換しようとしています。HTML から直接変換する際に問題があったため、最初に JTidy を使用してファイルを XHTML に変換しました (魅力的に動作します) が、PDF に変換しようとすると、レイアウトがめちゃくちゃになってしまいます。
繰り返しますが、HTML ファイルと XHTML ファイル (ブラウザーで表示した場合は同じ) はどちらも、私が望んでいたとおりに見えますが、PDF ファイルは台無しです。これが HTML コードです。明らかに、テーブルに含まれるすべての情報を「Bla」に置き換えました。
<!DOCTYPE html><html lang="en">
<head><meta charset="UTF-8"><title>Bla</title>
<style>
table#t0a {margin-top: 0.8cm; width: 90%; font-size: 13px; border-collapse: collapse;}
table#t0a td {padding: 4px; border: 1px solid;}
table#t0a td.span {width: 70%;}
table#t0a td.long {width: 32%;}
table#t0a td.short {width: 6%;}
table#t0b {margin-top: 0.8cm; margin-bottom: 0.8cm; width: 90%; font-size: 13px; table-layout: fixed; border-collapse: collapse;}
table#t0b td {padding: 4px; border: 1px solid; width: 20%;}
table#t0b th {background-color: #bbb; padding: 4px; border: 1px solid;}
table#t0b th:nth-child(2) {background-color: #bbb; padding: 4px; border: 1px solid; width: 20%;}
table#t1a {margin-top: 0.8cm; width: 90%; font-size: 13px; border-collapse: collapse;}
table#t1a td {padding: 4px; border: 1px solid;}
table#t1a td.span {width: 70%;}
table#t1a td.long {width: 32%;}
table#t1a td.short {width: 6%;}
table#t1b {margin-top: 0.8cm; margin-bottom: 0.8cm; width: 90%; font-size: 13px; table-layout: fixed; border-collapse: collapse;}
table#t1b td {padding: 4px; border: 1px solid; width: 20%;}
table#t1b th {background-color: #bbb; padding: 4px; border: 1px solid;}
table#t1b th:nth-child(2) {background-color: #bbb; padding: 4px; border: 1px solid; width: 20%;}
</style>
</head>
<body>
<div id="container">
<div class="tables0" style="margin-left: 0.93cm">
<table id="t0a" cellspacing="0">
<tr><td>Bla</td><td class="span" colspan="3">Bla</td></tr>
<tr><td>Bla</td><td class="span" colspan="3">Bla</td></tr>
<tr><td>Bla</td><td class="long">Bla</td><td class="short">Bla</td><td class="long">Bla</td></tr>
</table>
<table id="t0b" cellspacing="0">
<tr><th><b>Bla</b></th><th>Bla</th></tr>
<tr><td><p>Bla</p></td><td>Bla</td></tr>
<tr><th><b>Bla</b></th><th>Bla</th></tr>
<tr><td><p>Bla</p></td><td>Bla</td></tr>
<tr><th><b>Bla</b></th><th>Bla</th></tr>
<tr><td>
<b>Bla</b><br>Bla<br>
<b>Bla</b><br>Bla<br>
<b>Bla</b><br>Bla<br>
</td><td>Bla</td></tr>
</table>
</div>
<hr style="height:3px;border:none;color:#000;background-color:#000;" />
<div class="tables1" style="margin-left: 0.93cm">
<table id="t1a" cellspacing="0">
<tr><td>Bla</td><td class="span" colspan="3">Bla</td></tr>
<tr><td>Bla</td><td class="span" colspan="3">Bla</td></tr>
<tr><td>Bla</td><td class="long">Bla</td><td class="short">Bla</td><td class="long">Bla</td></tr>
</table>
<table id="t1b" cellspacing="0">
<tr><th><b>Bla</b></th><th>Bla</th></tr>
<tr><td><p>Bla</p></td><td>Bla</td></tr>
<tr><th><b>Bla</b></th><th>Bla</th></tr>
<tr><td><p>Bla</p></td><td>Bla</td></tr>
<tr><th><b>Bla</b></th><th>Bla</th></tr>
<tr><td>
<b>Bla</b><br>Bla<br>
<b>Bla</b><br>Bla<br>
<b>Bla</b><br>Bla<br>
</td><td>0</td></tr>
</table>
</div>
</div>
</body></html>
変換された PDF で表示すると、最初のテーブルが画面の端から右に伸びていますが、これは明らかに意図的なものではありません。なぜこれが起こっているのでしょうか?