Категория

C#/VB.NET: добавление номеров страниц в существующие документы PDF

2023-08-18 05:51:22

Номера страниц важны как для электронных, так и для бумажных документов. Они облегчают читателям быстрый поиск и доступ к определенным частям документа без необходимости просматривать страницу за страницей. В этой статье вы узнаете, как добавить номера страниц в существующие документы PDF на C# и VB.NET используя Spire.PDF for .NET.

Установите Spire.PDF for .NET

Для начала вам нужно добавить файлы DLL, включенные в пакет Spire.PDF for .NET, в качестве ссылок в ваш проект .NET. Файлы DLL можно загрузить по этой ссылке или установить через NuGet.

PM> Install-Package Spire.PDF

Добавление номеров страниц в существующие PDF-документы с помощью C# и VB.NET

Вы можете добавить номера страниц в документ PDF, используя динамические поля: PdfPageNumberField, PdfPageCountField и PdfCompositeField.

Как следует из их названий, PdfPageNumberField используется для отображения номера страницы, PdfPageCountField используется для отображения общего количества страниц, а PdfCompositeField используется для объединения двух или более динамических полей, таких как PdfPageNumberField и PdfPageCountField, в одно поле.

Если вы хотите добавить только номера страниц, такие как страница 1, страница 2, страница 3… в документ PDF, вы можете просто использовать PdfPageNumberField. Если вы хотите добавить в документ номера страниц, такие как страница X или Y, вам необходимо использовать PdfPageNumberField, PdfPageCountField и PdfCompositeField.

Следующие шаги показывают, как добавить номера страниц «Страница X из Y» в существующий документ PDF:

  • Инициализировать экземпляр класса PdfDocument.
  • Загрузите документ PDF с помощью метода PdfDocument.LoadFromFile().
  • Инициализировать экземпляр класса PdfPageNumberField.
  • Инициализировать экземпляр класса PdfPageCountField.
  • Инициализировать экземпляр класса PdfCompositeField.
  • Задайте выравнивание текста для составного поля через свойство PdfCompositeField.StringFormat.
  • Прокрутите каждую страницу в документе PDF, затем нарисуйте составное поле в определенном месте страницы, используя метод PdfCompositeField.Draw().
  • Сохраните результирующий документ с помощью метода PdfDocument.SaveToFile().
  • C#
  • VB.NET
using Spire.Pdf;
    using Spire.Pdf.AutomaticFields;
    using Spire.Pdf.Graphics;
    using System.Drawing;
    
    
    namespace AddPageNumbers
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Load a PDF document
                PdfDocument pdf = new PdfDocument();
                pdf.LoadFromFile("Sample.pdf");
    
                //Create a true type font
                PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial", 10f, FontStyle.Regular), true);
    
                //Create a PdfPageNumberField instance
                PdfPageNumberField pageNumber = new PdfPageNumberField();
    
                //Create a PdfPageCountField instance
                PdfPageCountField pageCount = new PdfPageCountField();
    
                //Create a PdfCompositeField instance
                PdfCompositeField compositeField = new PdfCompositeField(font, PdfBrushes.Black, "Page {0} of {1}", pageNumber, pageCount);
                //Set the text alignment for the composite field
                compositeField.StringFormat = new PdfStringFormat(PdfTextAlignment.Left, PdfVerticalAlignment.Top);
    
                //Loop through the pages
                for(int i = 0; i < pdf.Pages.Count; i ++)
                {
                    //Draw composite filed on each page
                    compositeField.Draw(pdf.Pages[i].Canvas, pdf.Pages[i].Size.Width / 2 - 20, pdf.Pages[i].Size.Height - pdf.PageSettings.Margins.Bottom);
                }
    
                //Save the result document
                pdf.SaveToFile("AddPageNumbers.pdf");
            }
        }
    }

C#/VB.NET: Add Page Numbers to Existing PDF Documents

Подать заявку на временную лицензию

Если вы хотите удалить оценочное сообщение из сгенерированных документов или избавиться от функциональных ограничений, пожалуйста запросить 30-дневную пробную лицензию для себя.

Смотрите также