如何在 .NET 中创建和插入 PDF 中的表格

如何在 .NET 中创建和插入 PDF 中的表格

本文展示了如何编程生成和插入表格到PDF使用Aspose.PDF桌面发电机为 .NET. 图表发電机插件简化表创建,使它简单地添加结构化,风格的表 - 无论是报告,表单,或动态内容自动化。

现实世界问题

在 PDF 中手动创建精心结构化的图表是无聊的,尤其是动态或大规模数据,在 .NET 应用程序中自动化这个过程节省了时间,确保了一致性,并减少了人类错误。

解决方案概述

Aspose.PDF Table Generator for .NET 允许开发人员在 PDF 文档中的任何地方定义、格式化和插入表格。

原則

  • Visual Studio 2019 或以后
  • .NET 6.0 或更高
  • Aspose.PDF for .NET 通过 NuGet 安装
PM> Install-Package Aspose.PDF

步骤实施

步骤 1: 安装和设置 Aspose.PDF

using Aspose.Pdf.Plugins;
using System.IO;

步骤2:创建一个表并添加到PDF

// Create TableGenerator
var generator = new TableGenerator();
// Create TableOptions and add a demo table to the first page
var options = new TableOptions()
    .InsertPageAfter(1)  // Insert after first page (or .InsertPageBefore(pageNum))
    .AddTable()
        .AddRow()
            .AddCell().AddParagraph(new HtmlFragment("<b>Header 1</b>"))
            .AddCell().AddParagraph(new TextFragment("Header 2"))
        .AddRow()
            .AddCell().AddParagraph(new TextFragment("Row 1 Cell 1"))
            .AddCell().AddParagraph(new TeXFragment("$E=mc^2$", true));
// Add input/output file sources
options.AddInput(new FileDataSource(@"C:\Samples\input.pdf"));
options.AddOutput(new FileDataSource(@"C:\Samples\output_table.pdf"));
// Process
generator.Process(options);

使用案例和应用程序(与代码变量)

1. 添加表后或之前的特定页面

在您的文件中插入准确位置的表格:

var options = new TableOptions()
    .InsertPageAfter(2)   // or .InsertPageBefore(3)
    .AddTable()
        .AddRow()
            .AddCell().AddParagraph(new TextFragment("After Page 2"));

2. 基于数据的动态桌面

通过收藏添加动态行和细胞:

var data = new[] { new[] { "A", "B" }, new[] { "C", "D" } };
var tableBuilder = new TableOptions().AddTable();
foreach (var row in data)
{
    var rowBuilder = tableBuilder.AddRow();
    foreach (var cell in row)
    {
        rowBuilder.AddCell().AddParagraph(new TextFragment(cell));
    }
}

添加其余的桌面结构和过程,如往常。

3. 支持细胞中的多种内容类型

细胞可以包含文本、HTML、图像或TeX方程式:

  • AddParagraph(new HtmlFragment("<b>Bold HTML</b>"))
  • AddParagraph(new TextFragment("Simple Text"))
  • AddParagraph(new TeXFragment("$a^2 + b^2 = c^2$", true))

4. 添加多个表或表布在一个 PDF

连锁呼吁 .AddTable() 在单一文件中插入多个表格。

5. Batch 以表格创建报告

自动插入表为一组PDF或通过浏览文件和数据来源创建多页报告。

共同挑战与解决方案

挑战: 准确的桌面配置或过度插入内容解決方案: 使用 .InsertPageAfter(pageNum).InsertPageBefore(pageNum) 准确定位:预览调整结果。

挑战: 复杂,变量数据来源解决方案: 在代码中动态构建表格. 使用字符串以创建每个数据项目的行/细胞。

挑战: 细胞格式或未支持的内容解决方案: 点击支持的内容类型(文本、HtmlFragment、TeXFrage、图像)。

性能与最佳实践

  • 在大规模自动化之前预测产量
  • 使用变量长度表的动态构建器
  • 连锁桌/细胞/树木构建器以顺序结构
  • 在处理之前验证输入PDF

完整实施例子

using Aspose.Pdf.Plugins;
using System;
using System.IO;

class Program
{
    static void Main()
    {
        var generator = new TableGenerator();
        var options = new TableOptions()
            .InsertPageAfter(1)
            .AddTable()
                .AddRow()
                    .AddCell().AddParagraph(new HtmlFragment("<b>Header 1</b>"))
                    .AddCell().AddParagraph(new TextFragment("Header 2"))
                .AddRow()
                    .AddCell().AddParagraph(new TextFragment("Row 1 Cell 1"))
                    .AddCell().AddParagraph(new TeXFragment("$E=mc^2$", true));
        options.AddInput(new FileDataSource(@"C:\Samples\input.pdf"));
        options.AddOutput(new FileDataSource(@"C:\Samples\output_table.pdf"));
        generator.Process(options);
    }
}

结论

Aspose.PDF Table Generator for .NET 允许开发人员在 PDF 文档中编程构建、设计和插入表格。 使用灵活的构造 API 进行动态布局、复杂结构和快速自动化,从清洁、可读的 C# 代码开始。

 中文