You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用iText7.pdfHtml转换HTML为PDF时移除表格TD内空白

解决iText7.pdfHtml转PDF时表格TD单元格空白问题

问题概述

使用iText7.pdfHtml将HTML转换为A4格式PDF时,表格TD单元格内存在无法消除的空白区域(黄色高亮部分),已尝试调整CSS和HTML属性但未解决,开发语言为C#,需彻底移除该空白。

解决方案

针对嵌套表格的样式继承和iText的渲染特性,通过以下步骤修复:

  • 清除所有嵌套表格的默认内外边距,避免浏览器/iText的默认样式干扰
  • 重置单元格的行高与垂直对齐,消除行高带来的额外空白
  • 清理HTML中冗余的换行标签与空白字符
  • 强制覆盖继承的内边距属性
  • 调整页面边距,避免布局挤压导致的空白

修改后的CSS代码

#header {
  position: running(header);
}

#footer {
  position: running(footer);
}

@page {
  margin-top: 50px; /* 缩小顶部边距,避免布局异常 */
  margin-bottom: 20px;
  width: 100%;
  border: 1px solid #000000;
  padding: 20px;
  border-top: none;
  border-bottom: none;

  @top-center {
    content: element(header);
    border: 1px solid #000000;
    margin-top: 40px;
    padding: 20px;
    border-bottom: none;
  }

  @bottom-center {
    content: element(footer);
    border: 1px solid #000000;
    margin-bottom: 40px;
    border-top: none;
  }
}

@page wide {
  size: a4 landscape;
}

#current-page-placeholder::before {
  content: counter(page);
}

#total-pages-placeholder::before {
  content: counter(pages);
}

table { 
  page-break-after:auto;
  page-break-inside:avoid; 
  border-collapse: collapse;
  margin: 0 !important; /* 清除表格默认外边距 */
  padding: 0 !important; /* 清除表格默认内边距 */
}
tr    { page-break-inside:avoid; page-break-after:auto }
td    { 
  page-break-inside:avoid; 
  page-break-after:auto;
  font-family: Arial, Helvetica, sans-serif;
  line-height: 1.2; /* 重置行高,避免额外空白 */
  vertical-align: top; /* 强制顶部对齐 */
}
thead { display:table-header-group }
tfoot { display:table-footer-group }

.pdflogo {
  text-align: left;
  vertical-align: top;
  max-width: 300px;
}

.pagecountersection {
  width: 69%;
  border-spacing: 0;
  font-size: 12px;
}

.pagecountersection td {
   padding: 3px 10px;
   font-size: 12px;
}

.ship_details {
  border: 1px solid #000;
  border-spacing: 0;
  border-collapse: collapse;
  font-size: 11px;
  width:100%;
}

.ship_details td {
  border: 1px solid #000;
  font-size: 11px;
  padding: 3px 10px;
}

.noborder td {
  border: 0px solid #000;
}

.ship_header {
  border: 1px solid #000;
  width: 100%;
  border-spacing: 0;
  font-size: 12px;
}
.ship_header td {
  border: 1px solid #000;
  font-size: 20px;
  padding: 3px 10px;
  text-align: right;
}

.ship_notice {
  width:100%; 
  border:0px solid #000000; 
  border-spacing:0; 
  border-collapse: collapse; 
  text-align: right;
  font-size: 16px;
}

.breakbeforediv {
  page-break-before: always !important;
}

.nobreakdiv {
  page-break-inside: avoid !important;
}

.nobreakrow table, td, th {
  page-break-inside: avoid;
}

.bg-gray {
  background: #cccccc;
}

.bg-gray td {
  background: #cccccc;
}

.breakline {
  margin: 5px 0 5px 0;
}

.width40 {
  width:40%;
}

.width60 {
  width:60%;
}

.width100 {
  width:100%;
}

.cellWithTable {
  padding: 0 !important; 
  margin: 0 !important;
}

.cellWithTable table{
  width: 100%;
}

.cellHeight {
  height: 30px !important;
  max-height: 30px !important;
  overflow: hidden !important;
}

.firstCell {
  border-top:none !important;
  border-left:none !important;
  border-right:none !important;
}

.middleCell {
  border-left:none !important;
  border-right:none !important;
}

.lastCell {
  border-bottom:none !important;
  border-left:none !important;
  border-right:none !important;
}

.onlyCell {
  border-top:none !important;
  border-bottom:none !important;
  border-left:none !important;
  border-right:none !important;
}

.ship_nobordernopadding td {
  border: 0px solid #000;
  padding: 0 !important; /* 强制清除内边距 */
}

.ship_withborder td {
  border: 1px solid #000;
}  

#customerTabl td {
  border: 0px solid #000;
  padding: 0 !important; /* 强制清除内边距 */
}

修改后的HTML代码

<div class="breakline"></div>
<table class="ship_details" style="width:100%; border:0px solid #fff; border-spacing:0; border-collapse: collapse;">
    <tr>
        <td valign="top" class="ship_withborder" style="width:59%">
            <table style="width:100%; border:0px solid #fff; border-spacing:0; border-collapse: collapse;">
                <tr>
                    <td style="border:0px solid #000000; padding: 5px 0;" align="center">
                        <strong>Test Folllow Directions</strong>
                    </td>
                </tr>
                <tr>
                    <td style="border:0px solid #000000; padding: 5px 0; width: 100%;">
                        <table style="width:100%; border:0px solid #fff; border-spacing:0; border-collapse: collapse;" id="customerTabl">
                            <tr>
                                <td valign="top" class="ship_nobordernopadding" style="width:49%">
                                    <table style="width:100%; border:0px solid #fff; border-spacing:0; border-collapse: collapse;">
                                        <tr>
                                            <td style="border:0px solid #000000; padding: 5px 0;">
                                                <strong>Customer Address:</strong>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td style="border:0px solid #000000; padding: 5px 0;">
                                                Someone Something Llc Circle<br>
                                                P.O. Box 123456<br>
                                                Somecity, ST 99999-1000
                                            </td>
                                        </tr>
                                    </table>
                                </td>
                                <td valign="top" class="ship_nobordernopadding" style="width:51%">
                                    <table style="width:100%; border:0px solid #fff; border-spacing:0; border-collapse: collapse;">
                                        <tr>
                                            <td style="border:0px solid #000000; padding: 5px 0;">
                                                <strong>Alternate Address:</strong>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td style="border:0px solid #000000; padding: 5px 0;">
                                                Parent Company Inc<br>
                                                ABCD Ijkhl & Mnopqrs #111111<br>
                                                1234 Middle Circle Way., Unit #1<br>
                                                <span>Suite 100<br></span> Other City, ST 99999<br>
                                                <span>Phone: 123-456-7890<br></span>
                                            </td>
                                        </tr>
                                    </table>
                                </td>
                            </tr>
                            <tr>
                                <td style="text-align: center; padding: 5px 0;" colspan="2">
                                    <strong>Note:</strong> Please include a copy of this document when mailing this.
                                </td>
                            </tr>
                        </table>
                    </td>
                </tr>
            </table>
        </td>
        <td valign="top" style="max-width:200px; width:200px;">
            <table style="width:100%; border:0px solid #fff; border-spacing:0; border-collapse: collapse;">
                <tr>
                    <td style="border:0px solid #000000; padding: 5px 0 5px 2px;">
                        <strong>ABC/EFG/Ijkl Mnop Abcdefghijklm:</strong>
                    </td>
                </tr>
                <tr style="word-break:break-all;">
                    <td style="border:0px solid #000000; padding: 5px 0 5px 2px;">
                        Sender Name:<br>
                        Someone Withone Llc Circle � Wills<br>
                        <span>Sender Number: 20000000011112</span><br>
                        Ship Name: AB Oceson Lines<br>
                    </td>
                </tr>
            </table>
        </td>
    </tr>
</table>

内容的提问来源于stack exchange,提问作者Rag Pudi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 00:18:11