【问题标题】:Word tables from HTML are not behaving correcltyHTML 中的 Word 表格行为不正确
【发布时间】:2019-09-09 16:21:22
【问题描述】:

我正在将 HTML 注入到 Word Mergefield(使用 Aspose)中,它似乎运行良好并且按我的预期呈现。

但是,它似乎被视为一张桌子而不是两张桌子。在表格之间插入的任何文本或段落在编辑期间可见,但在打印时不可见。当您打印时,这些表格会合并为一个表格,中间的任何内容都会被删除。

有什么我可以在 HTML 中进行更改以允许表格在 Word 中呈现时独立并且它们之间至少有一个换行符? @variables 被数据库中的文本替换。使用 Office 365(不是云端的,本地安装的)

<table style="border-collapse: collapse; width: 100% ; margin-left: auto; margin-right: auto;" border="0">
    <tbody>
        <tr>
            <td style="width: 100%;">@Statement</td>
        </tr>
    </tbody>
</table>
<table style="border-collapse: collapse; width: 100% ; margin-left: auto; margin-right: auto;" border="0" >
    <tbody>
        <tr style="height: 12px; width: 100%">
            <td style="width: 50%; height: 12px; text-align: left ; padding: 0px;">@Bank</td>
            <td style="width: 15%; height: 12px;">&nbsp;</td>
            <td style="width: 20%; height: 12px; text-align: right ; padding: 0px;">Sort Code:</td>
            <td style="width: 15%; height: 12px; text-align: right ; padding: 0px;">@SortCode</td>
        </tr>
        <tr style="height: 12px">
            <td style="width: 50%; height: 12px; text-align: left ; padding: 0px;">@Line1</td>
            <td style="width: 15%; height: 12px;">&nbsp;</td>
            <td style="width: 20%; height: 12px; text-align: right ; padding: 0px;">Account No:</td>
            <td style="width: 15%; height: 12px ; text-align: right ; padding: 0px;">@AccountNo</td>
        </tr>
        <tr style="height: 12px">
            <td style="width: 50%; height: 12px; text-align: left ; padding: 0px;">@Line2</td>
            <td style="width: 15% ; height: 12px;">&nbsp;</td>
            <td style="width: 20% ; height: 12px;">&nbsp;</td>
            <td style="width: 15% ; height: 12px;">&nbsp;</td>
        </tr>
        <tr style="height: 12px">
            <td style="width: 50%; height: 12px; text-align: left ; padding: 0px;">@Line3</td>
            <td style="width: 15%; height: 12px;">&nbsp;</td>
            <td style="width: 20%; height: 12px;">&nbsp;</td>
            <td style="width: 15%; height: 12px;">&nbsp;</td>
        </tr>
        <tr style="height: 12px">
            <td style="width: 50%; height: 12px; text-align: left ; padding: 0px;">@PostCode</td>
            <td style="width: 15%; height: 12px;">&nbsp;</td>
            <td style="width: 20%; height: 12px;">&nbsp;</td>
            <td style="width: 15%; height: 12px;">&nbsp;</td>
        </tr>
    </tbody>
</table>

【问题讨论】:

    标签: html ms-word office365 aspose.words


    【解决方案1】:

    这似乎是 MS Word 的行为,如果它们之间没有段落,Microsoft Word 会将两个或多个连续的表合并为一个大表。在您的 HTML 中,您可以简单地在表格之间添加一个空段落:

    <table style="border-collapse: collapse; width: 100% ; margin-left: auto; margin-right: auto;" border="0">
        <tbody>
            <tr>
                <td style="width: 100%;">@Statement1</td>
            </tr>
        </tbody>
    </table>
    <p style="margin-top:0pt; margin-bottom:0pt; font-size:1pt">
        <span>&#xa0;</span>
    </p>
    <table style="border-collapse: collapse; width: 100% ; margin-left: auto; margin-right: auto;" border="0">
        <tbody>
            <tr style="height: 12px; width: 100%">
                <td style="width: 50%; height: 12px; text-align: left ; padding: 0px;">@Bank</td>
                <td style="width: 15%; height: 12px;">&nbsp;</td>
                <td style="width: 20%; height: 12px; text-align: right ; padding: 0px;">Sort Code:</td>
                <td style="width: 15%; height: 12px; text-align: right ; padding: 0px;">@SortCode</td>
            </tr>
            <tr style="height: 12px">
                <td style="width: 50%; height: 12px; text-align: left ; padding: 0px;">@Line1</td>
                <td style="width: 15%; height: 12px;">&nbsp;</td>
                <td style="width: 20%; height: 12px; text-align: right ; padding: 0px;">Account No:</td>
                <td style="width: 15%; height: 12px ; text-align: right ; padding: 0px;">@AccountNo</td>
            </tr>
            <tr style="height: 12px">
                <td style="width: 50%; height: 12px; text-align: left ; padding: 0px;">@Line2</td>
                <td style="width: 15% ; height: 12px;">&nbsp;</td>
                <td style="width: 20% ; height: 12px;">&nbsp;</td>
                <td style="width: 15% ; height: 12px;">&nbsp;</td>
            </tr>
            <tr style="height: 12px">
                <td style="width: 50%; height: 12px; text-align: left ; padding: 0px;">@Line3</td>
                <td style="width: 15%; height: 12px;">&nbsp;</td>
                <td style="width: 20%; height: 12px;">&nbsp;</td>
                <td style="width: 15%; height: 12px;">&nbsp;</td>
            </tr>
            <tr style="height: 12px">
                <td style="width: 50%; height: 12px; text-align: left ; padding: 0px;">@PostCode</td>
                <td style="width: 15%; height: 12px;">&nbsp;</td>
                <td style="width: 20%; height: 12px;">&nbsp;</td>
                <td style="width: 15%; height: 12px;">&nbsp;</td>
            </tr>
        </tbody>
    </table>
    

    希望,这会有所帮助。我与 Aspose 合作,担任开发人员宣传员。

    【讨论】:

    • 效果很好——谢谢。我必须做的唯一更改是添加&lt;br&gt; 以创建换行符,同时增加空白段落的字体大小。
    猜你喜欢
    • 2020-10-07
    • 1970-01-01
    • 1970-01-01
    • 2020-07-28
    • 2016-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-17
    相关资源
    最近更新 更多