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

如何在PDF4Net的PDFFlowTable单元格内渲染PDFFormattedContent

在PDF4Net表格单元格中渲染PDFFormattedContent的完整格式

可以通过自定义表格单元格实现,PDF4Net允许继承PDFTableCellBase类创建自定义单元格,在其中调用PDFFormattedContent.Draw方法来完整渲染格式。

实现步骤:

  1. 定义继承自PDFTableCellBase的自定义单元格类,在重写的OnDraw方法中处理带格式内容的绘制
  2. 用你的PDFFormattedContent实例初始化自定义单元格
  3. 将自定义单元格添加到表格行中

代码示例:

自定义单元格类:

public class FormattedContentTableCell : PDFTableCellBase
{
    private readonly PDFFormattedContent _formattedContent;

    public FormattedContentTableCell(PDFFormattedContent formattedContent)
    {
        _formattedContent = formattedContent;
    }

    protected override void OnDraw(PDFGraphics g, PDFRect rect)
    {
        // 在单元格的矩形区域内绘制带格式内容
        _formattedContent.Draw(g, rect.Left, rect.Top, rect.Width);
    }
}

使用自定义单元格构建表格:

// 初始化带格式的内容
PDFFormattedContent content1 = new PDFFormattedContent();
content1.AppendText("第一栏加粗红色文本", new PDFFont(PDFFontFace.HelveticaBold, 12), PDFColor.Red);
content1.AppendLine();
content1.AppendText("带行间距的第二行", new PDFFont(PDFFontFace.Helvetica, 10), PDFColor.Black);

PDFFormattedContent content2 = new PDFFormattedContent();
content2.AppendText("第二栏蓝色普通文本", new PDFFont(PDFFontFace.Helvetica, 10), PDFColor.Blue);

// 创建表格并添加自定义单元格
PDFFlowTable myTable = new PDFFlowTable();
myTable.Rows.AddRowWithCells(
    new FormattedContentTableCell(content1),
    new FormattedContentTableCell(content2)
);

说明:

自定义单元格通过重写OnDraw方法,直接利用PDFFormattedContent的Draw方法在单元格指定区域渲染内容,能完整保留原内容的字体、颜色、行间距等所有格式,替代默认的PDFFlowTableStringCell仅显示纯文本的限制。

内容的提问来源于stack exchange,提问作者MarchMadnessss...

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 10:35:03