2016-08-23 44 views
2

好吧,基本上我一直在嘗試使用iText的XMLWorker在Java中將HTML文件轉換爲PDF。因爲有直接從HTML轉換的問題,所以我一直在使用JTidy將文件轉換爲XHTML(像魅力一樣工作),但是當我嘗試將它轉換爲PDF時,它大大地擾亂了我的佈局。
同樣,HTML和XHTML文件(在瀏覽器中查看時都是相同的)完全按照我希望的方式查看,但PDF文件已被擰緊。 這裏的HTML代碼,很明顯,我換成包含與「布拉」表中的所有信息:iText XMLWorker表格怪異轉換爲PDF時

<!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查看時,第一臺通過屏幕的邊緣延伸到右側,這顯然不是故意的。任何想法,爲什麼這可能會發生?

回答

0

原來iText並非真正與CSS兼容。 結束使用飛碟,而不是它的工作。

0

嘗試明確地將表t0a中第一列的列寬設置爲30%。