该页面可以包含自动翻译的文本。

用于 PDF 生成的 .NET 库

使用布局 API 生成 PDF 文档,该 API 可以根据您的需要创建复杂或简单的 PDF 文件。 使用 Fluent API 在代 码中描述文档的布局。 具有分页支持的功能强大的 C# PDF 生成器将完成剩下的工作。

使用结构元素作为 C# 或 VB.NET 代码中的构建块来获得完美的文档。 这些元素是页面、容器、表格、段落、图 像、链接等。 该库将自动将文档内容分成页面。 您可以添加页眉和页脚。 API 支持自定义可重用组件。 Layout API 提供内置组件,例如目录或水印。

PDF生成库

布局 API 可作为 Docotic.Pdf 库的免费插件使用。 该库和附加组件都是 100% 托管代码 DLL。 它们没有第三 方外部依赖项。 您可以使用 API 在 Windows、Linux、Amazon 和 Azure 云环境中创建 PDF 文档。 macOS、iOS 和 Android 也很好。

Docotic.Pdf 和 Layout 附加组件可在 NuGet 和我们的网站上获取。 要尝试没有评估模式限 制的库,请在库页面上获取免费的限时许可证密钥。

Docotic.Pdf 库 9.4.17469-dev 布局附加组件 9.4.17469-dev
回归测试 14,760 通过 NuGet 总下载量 4,447,259

流畅的 API 创建 PDF

该附加组件提供了流畅的 API。 您可以将大多数调用链接在一起。 这使得代码比“声明式”框架更紧凑。 您仍然 可以使用所有常规方法来开发代码。 例如,您可以使用辅助类和方法中的可重用部分使布局实现更加简洁。

如何用C#创建PDF文档

好的,是时候举一些例子了。

你好,PDF!

下面是一个简单的示例,展示了如何使用 Layout API 在 C# 中生成 PDF。 它创建一个包含两页的文档。 它有 点合成,但说明了 API 的工作方式。

PdfDocumentBuilder.Create().Generate("pages.pdf", doc =>
{
    doc.Pages((PageLayout page) =>
    {
        page.Size(PdfPaperSize.A5);

        page.Header().PaddingTop(70).AlignCenter().Text("Hello, PDF!");

        page.Content().Column(c =>
        {
            for (int i = 0; i < 10; i++)
                c.Item().AlignCenter().Text($"Page 1 block {i + 1}");

            c.Item().PageBreak();
            c.Item().Text("Page 2");
        });

        page.Footer().Text(t => t.CurrentPageNumber());
    });
});

PdfDocumentBuilder.Generate 方法 提供 Document class 的实例。 使用该对象及其 Pages 方 法,可以定义一页或多页的布局。

示例代码设置页面大小并描述 HeaderContentFooter 槽中的内容。 所有这些插槽都具有相同的 LayoutContainer 类型LayoutContainer 是布局 API 的关键构建块。 使用容器您可以生成任意布局。

布局引擎生成包含所有数据的页面。 确切的数量取决于 PageLayout.Content 和其他插槽中的内容。 该库在 每个页面上重复 HeaderFooter 插槽的内容。所有页面都将具有相同的大小。

要使页面具有不同的布局或不同的大小,请多次调用 Pages 方法。

在 C# 中创建文本 PDF

一项常见任务是将文本字符串转换为 PDF 文件。 以下代码使用布局 API 从 C# 中的文本文件创建 PDF 文档。

PdfDocumentBuilder
    .Create()
    .Generate("long-text.pdf", doc => doc.Pages(page =>
    {
        string text = File.ReadAllText(@"PDF_Succinctly.txt");
        page.Content().Text(text);
    }));

该代码从文件中读取所有文本并将其用于 Content 槽。 无需计算任何大小或将文本字符串分成块。 Layout 插件负责所有这些任务。 使用 API,可以轻松地用 C# 代码将文本转换为 PDF。

在 .NET 中加密 PDF

要生成加密的 PDF,请使用加密处理程序,如以下 C# 代码示例所示。

PdfDocumentBuilder
    .Create()
    .Encryption(new PdfStandardEncryptionHandler("owner", "user"))
    .Generate("encrypted-with-password.pdf", doc => doc.Pages(page =>
    {
        // 在这里布置页面内容
    }));

图书馆将生成使用用户和所有者密码加密的 PDF。 可以为加密文档的用户指定PDF权 限。 您还可以使用证书保护 PDF。

进一步阅读

Layout API 提供了很多用 C# 生成 PDF 的方法。 我们鼓励您阅读以下文章: