Эта страница может содержать автоматически переведенный текст.

Библиотека .NET для генерации PDF-файлов

Генерируйте PDF-документы с помощью API разметки, который позволяет создавать PDF-файлы настолько сложные или простые, насколько вам нужно. Опишите макет вашего документа в коде, используя Fluent API. Мощный генератор PDF-файлов на C# с поддержкой разбиения на страницы сделает все остальное.

Используйте структурные элементы в качестве строительных блоков в коде C# или VB.NET для создания идеальных документов. Элементами являются страницы, контейнеры, таблицы, абзацы, изображения, ссылки и т.п. Библиотека автоматически разбивает содержимое документа на страницы. Вы можете добавлять верхние и нижние колонтитулы страниц. API поддерживает пользовательские повторно используемые компоненты. Layout API предлагает встроенные компоненты, такие как оглавление или водяные знаки.

Библиотека генерации PDF

API разметки доступен как бесплатное дополнение к библиотеке Docotic.Pdf. И библиотека, и надстройка представляют собой библиотеки DLL с управляемым кодом на 100%. У них нет сторонних внешних зависимостей. Вы можете использовать API для создания PDF-документов в Windows, Linux, в облачных средах Amazon и Azure. macOS, iOS и Android тоже подойдут.

Docotic.Pdf и дополнение Layout доступны в NuGet и на нашем сайте. Чтобы опробовать библиотеку без ограничений ознакомительного режима, получите бесплатный ограниченный по времени лицензионный ключ на странице библиотеки.

Библиотека Docotic.Pdf 9.3.17105-dev Дополнение Layout 9.3.17105-dev
Регрессионные тесты 14,681 прошло Всего загрузок NuGet 4,234,061

Текучий API для создания PDF

Надстройка предоставляет текучий API. Вы можете объединить большую часть вызовов. Это приводит к более компактному коду, чем при использовании «декларативных» фреймворков. И вы по-прежнему можете использовать все обычные подходы к разработке кода. Например, вы можете сделать реализацию макета более лаконичной, повторно используя вспомогательные классы и методы.

Как создать PDF-документ на C#

Хорошо, пришло время привести примеры.

Привет, PDF!

Вот простой пример, показывающий, как создать PDF-файл на C# с помощью Layout API. Он создает документ с двумя страницами. Это своего рода синтетический пример, но он иллюстрирует принцип работы 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. Используя объект и его метод Pages, можно определить макет для одной или нескольких страниц.

Пример кода устанавливает размер страницы и описывает содержимое в слотах Header, Content и Footer. Все эти слоты имеют один и тот же тип LayoutContainer. LayoutContainer — это ключевой строительный блок API разметки. Используя контейнеры, вы можете создавать произвольные макеты.

Механизм компоновки генерирует страницы, содержащие все данные. Точное количество страниц зависит от содержимого в PageLayout.Content и других слотах. Библиотека повторяет содержимое слотов Header и Footer на каждой странице. Все страницы будут иметь одинаковый размер.

Чтобы иметь страницы с разным макетом или разным размером, используйте более одного вызова метода Pages.

Создать текстовый PDF-файл на C#

Распространенной задачей является преобразование текстовой строки в файл PDF. Следующий код использует API разметки для создания PDF-документа из текстового файла на C#.

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

Код считывает весь текст из файла и использует его для слота Content. Нет необходимости рассчитывать какие-либо размеры или делить текстовую строку на куски. Дополнение Layout берет на себя все эти задачи. Используя API, можно легко преобразовать текст в PDF в коде C#.

Зашифровать PDF в .NET

Чтобы создать зашифрованный PDF-файл, используйте обработчик шифрования, как показано в следующем примере кода C#.

PdfDocumentBuilder
    .Create()
    .Encryption(new PdfStandardEncryptionHandler("owner", "user"))
    .Generate("encrypted-with-password.pdf", doc => doc.Pages(page =>
    {
        // разметьте содержимое страниц здесь
    }));

Библиотека создаст PDF-файл, зашифрованный паролями пользователя и владельца. Можно указать разрешения PDF для пользователей зашифрованного документа. Вы также можете защитить PDF-файлы с помощью сертификатов.

Дополнительная информация

Layout API предоставляет множество средств для создания PDF-файлов на C#. Рекомендуем вам прочитать о них в следующих статьях: