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

Библиотека .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.4.17342 Дополнение Layout 9.4.17342
Регрессионные тесты 14,727 прошло Всего загрузок NuGet 4,260,602

Текучий 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#. Рекомендуем вам прочитать о них в следующих статьях: