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

Iron PDF打印多列HTML表格:列截断,如何实现跨页打印?

Iron PDF多列HTML表格打印右侧内容截断,实现溢出列自动分页

要解决表格右侧内容被截断、无法自动转到下一页的问题,你需要调整HTML的CSS样式,配合Iron PDF的渲染逻辑,让表格能够根据内容宽度自适应并横向分页,具体实现如下:

关键修改逻辑

  1. 移除表格宽度限制:原代码中表格的width:100%会强制表格压缩到单页宽度内,导致列被截断,改为让表格根据内容自适应宽度。
  2. 添加打印专用CSS规则:通过@page定义页面尺寸与边距,设置容器和表格的分页属性,确保整行不会被拆分,溢出列自动转到下一页。
  3. 保持单元格内容完整性:用white-space: nowrap避免单元格内容换行,保证每列内容完整显示。

修改后的完整代码

C# 代码

var renderer = new ChromePdfRenderer();
// 可按需调整页面边距,非强制修改
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.MarginBottom = 20;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;

varhtml= @"<!DOCTYPE html>
<html>
<head>
  <style>
    @page {
      size: A4;
      margin: 1cm;
    }
    .table-container {
      width: fit-content;
      page-break-inside: auto;
    }
    table {
      border: 1px solid black;
      border-collapse: collapse;
      page-break-inside: avoid;
    }
    th, td {
      border: 1px solid black;
      border-collapse: collapse;
      white-space: nowrap;
      padding: 8px;
    }
  </style>
</head>
<body>
<h2>Basic HTML Table</h2>
<div class='table-container'>
  <table>
    <tr>
      <th>Firstname</th>
      <th>Lastname</th> 
      <th>Age</th>
      <th>Profession</th>
      <th>address line 1</th>
      <th>address line 2</th>
      <th>phone</th>
      <th>zipcode</th>
      <th>state</th>
      <th>City</th>
      <th>Notes</th>
      <th>Medical History</th>
    </tr>
    <tr>
      <td>Jill</td>
      <td>Smith</td>
      <td>50</td>
      <td>Software Developer</td>
      <td>8763 W Amsterdam  ave</td>
      <td>Unit 1 A</td>
      <td>00291-7-12-12-99</td>
      <td>60987</td>
      <td>IL</td>
      <td>Chicago</td>
      <td>He  is a very hard working person and needs to be treated properly</td>
      <td>Allergy to Medications none, Diabetic type 1</td>
    </tr>  
    <tr>
      <td>Amete</td>
      <td>Jackson</td>
      <td>26</td>
      <td>Jr Application Developer</td>
      <td>1234 N ASmara  ave</td>
      <td>Unit 7A</td>
      <td>00291-7-14-98-99</td>
      <td>60543</td>
      <td>IL</td>
      <td>Chicago</td>
      <td>Very energetic eager to learn new field</td>
      <td>Allergy to Medications none, No known disease</td>
    </tr>  
  </table>
</div>
</body>
</html>";

_pdfDoc = renderer.RenderHtmlAsPdf(html);
_pdfDoc.SaveAs("Employees.pdf");

额外说明

  • 如果需要单页容纳更多列,可将@page中的size改为横向模式:size: A4 landscape;,减少分页次数。
  • page-break-inside: avoid确保表格整行不会被拆分到两页,维持数据的可读性。

内容的提问来源于stack exchange,提问作者Helen Araya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 22:45:59