来自 HTML 的 Word 表格表现不正确
Word tables from HTML are not behaving correclty
我正在将 HTML 注入到 Word Mergefield(使用 Aspose)中,它似乎运行良好并按照我的预期呈现。
然而,它似乎被视为一个 table 而不是两个。 table 之间插入的任何文本或段落在编辑期间可见,但在打印时不可见。打印时,table 会聚在一起,中间的任何内容都会被删除。
我可以在 HTML 中更改什么以允许 table 在 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;"> </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;"> </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;"> </td>
<td style="width: 20% ; height: 12px;"> </td>
<td style="width: 15% ; height: 12px;"> </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;"> </td>
<td style="width: 20%; height: 12px;"> </td>
<td style="width: 15%; height: 12px;"> </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;"> </td>
<td style="width: 20%; height: 12px;"> </td>
<td style="width: 15%; height: 12px;"> </td>
</tr>
</tbody>
</table>
这似乎是MS Word的行为,Microsoft Word将两个或多个连续的Table合并为一个大的Table,如果它们之间没有段落。在您的 HTML 中,您可以简单地在 Table 之间添加一个空段落:
<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> </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;"> </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;"> </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;"> </td>
<td style="width: 20% ; height: 12px;"> </td>
<td style="width: 15% ; height: 12px;"> </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;"> </td>
<td style="width: 20%; height: 12px;"> </td>
<td style="width: 15%; height: 12px;"> </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;"> </td>
<td style="width: 20%; height: 12px;"> </td>
<td style="width: 15%; height: 12px;"> </td>
</tr>
</tbody>
</table>
希望这对您有所帮助。我在 Aspose 工作,担任开发人员传道者。
我正在将 HTML 注入到 Word Mergefield(使用 Aspose)中,它似乎运行良好并按照我的预期呈现。
然而,它似乎被视为一个 table 而不是两个。 table 之间插入的任何文本或段落在编辑期间可见,但在打印时不可见。打印时,table 会聚在一起,中间的任何内容都会被删除。
我可以在 HTML 中更改什么以允许 table 在 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;"> </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;"> </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;"> </td>
<td style="width: 20% ; height: 12px;"> </td>
<td style="width: 15% ; height: 12px;"> </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;"> </td>
<td style="width: 20%; height: 12px;"> </td>
<td style="width: 15%; height: 12px;"> </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;"> </td>
<td style="width: 20%; height: 12px;"> </td>
<td style="width: 15%; height: 12px;"> </td>
</tr>
</tbody>
</table>
这似乎是MS Word的行为,Microsoft Word将两个或多个连续的Table合并为一个大的Table,如果它们之间没有段落。在您的 HTML 中,您可以简单地在 Table 之间添加一个空段落:
<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> </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;"> </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;"> </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;"> </td>
<td style="width: 20% ; height: 12px;"> </td>
<td style="width: 15% ; height: 12px;"> </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;"> </td>
<td style="width: 20%; height: 12px;"> </td>
<td style="width: 15%; height: 12px;"> </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;"> </td>
<td style="width: 20%; height: 12px;"> </td>
<td style="width: 15%; height: 12px;"> </td>
</tr>
</tbody>
</table>
希望这对您有所帮助。我在 Aspose 工作,担任开发人员传道者。