Как отредактировать заголовок в PDF-файле на C# и .NET

  1. Добавьте SautinSoft.Document из Nuget.
  2. Загрузите PDF-документ.
  3. Выполните итерацию по разделам и удалите первый абзац.
  4. Сохраните документ.

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

В справочнике PDF нет понятия верхнего / нижнего колонтитула.
При загрузке документа в DocumentCore - верхний/нижний колонтитул записываются в начало коллекции блоков разделов (Sections.Blocks).
В этом примере показано, как редактировать верхний колонтитул существующего PDF-файла.

Например: у нас есть PDF файл и нам нужно добавить новый колонтитул: "Created : 20 January 2019" and insert new Header: " Modified : 1 April 2020"

HeaderFooter header = new HeaderFooter(dc, HeaderFooterType.HeaderDefault);
header.Content.Start.Insert("Modified : 1 April 2020", new CharacterFormat() { Size = 14.0, FontColor = Color.DarkGreen });
      foreach (Section s in dc.Sections)
       {
         if (s.Blocks.Count > 0)
             s.Blocks.RemoveAt(1);
         s.HeadersFooters.Add(header.Clone(true));
       }

 

Здесь вы можете скачать входной PDF-файл и выходной результат.

Полный код

using System.IO;
using SautinSoft.Document;

namespace Example
{
    class Program
    {
        static void Main(string[] args)
        {
            // Get your free 100-day key here:   
            // https://sautinsoft.com/start-for-free/

            ChangeHeaderAndFooter();
        }
        /// <summary>
        /// How to edit Header and Footer in PDF file
        /// </summary>
        /// <remarks>
        /// Details: https://www.sautinsoft.com/products/document/help/net/developer-guide/edit-header-and-footer-in-pdf-net-csharp-vb.php
        /// </remarks>
        static void ChangeHeaderAndFooter()
        {
            string inpFile = @"..\..\..\somebody.pdf";
            string outFile = "With changed header and footer.pdf";
            DocumentCore dc = DocumentCore.Load(inpFile);

            // Create new header with formatted text.
            HeaderFooter header = new HeaderFooter(dc, HeaderFooterType.HeaderDefault);
            header.Content.Start.Insert("Modified: 1 April 2020", new CharacterFormat() { Size = 14.0, FontColor = Color.DarkGreen });

            // Create the footer with orange text, with font name Elephant and size of 50 pt.
            HeaderFooter footer = new HeaderFooter(dc, HeaderFooterType.FooterDefault);
            Paragraph p = new Paragraph(dc, new Run(dc, "Last modified: 1st June 2021",
                new CharacterFormat() { Size = 50.0, FontColor = Color.Orange, FontName = "Elephant" }));
            p.ParagraphFormat.Alignment = HorizontalAlignment.Left;
            footer.Blocks.Add(p);

            foreach (Section s in dc.Sections)
            {
                if (s.Blocks.Count > 0)
                    s.Blocks.RemoveAt(1);
                s.HeadersFooters.Add(header.Clone(true));
                s.HeadersFooters.Add(footer.Clone(true));
            }
            dc.Save(outFile);

            // Open the results for demonstration purposes.
            System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(inpFile) { UseShellExecute = true });
            System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(outFile) { UseShellExecute = true });

        }
    }
}

Download

Imports System
Imports System.IO
Imports SautinSoft.Document

Module Sample
    Sub Main()
        ChangeHeaderAndFooter()
    End Sub
    ''' Get your free 100-day key here:   
    ''' https://sautinsoft.com/start-for-free/
    ''' <summary>
    ''' How to edit Header and Footer in PDF file
    ''' </summary>
    ''' <remarks>
    ''' Details: https://www.sautinsoft.com/products/document/help/net/developer-guide/edit-header-and-footer-in-pdf-net-csharp-vb.php
    ''' </remarks>
    Sub ChangeHeaderAndFooter()
        Dim inpFile As String = "..\..\..\somebody.pdf"
        Dim outFile As String = "With changed header and footer.pdf"
        Dim dc As DocumentCore = DocumentCore.Load(inpFile)

        ' Create new header with formatted text.
        Dim header As New HeaderFooter(dc, HeaderFooterType.HeaderDefault)
        header.Content.Start.Insert("Modified : 1 April 2020", New CharacterFormat() With {
                .Size = 14.0,
                .FontColor = Color.DarkGreen
            })

        ' Create the footer with orange text, with font name Elephant and size of 50 pt.
        Dim footer As New HeaderFooter(dc, HeaderFooterType.FooterDefault)
        Dim p As Paragraph = New Paragraph(dc, New Run(dc, "Last modified: 1st June 2021", New CharacterFormat() With {
                .Size = 50.0,
                .FontColor = Color.Orange,
                .FontName = "Elephant"
            }))
        p.ParagraphFormat.Alignment = HorizontalAlignment.Left
        footer.Blocks.Add(p)

        For Each s As Section In dc.Sections
            If s.Blocks.Count > 0 Then
                s.Blocks.RemoveAt(1)
            End If
            s.HeadersFooters.Add(header.Clone(True))
            s.HeadersFooters.Add(footer.Clone(True))
        Next s
        dc.Save(outFile)

        ' Open the results for demonstration purposes.
        System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(inpFile) With {.UseShellExecute = True})
        System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(outFile) With {.UseShellExecute = True})
    End Sub
End Module

Download


Если вам нужен пример кода или у вас есть вопрос: напишите нам по адресу support@sautinsoft.ru или спросите в онлайн-чате (правый нижний угол этой страницы) или используйте форму ниже:



Вопросы и предложения всегда приветствуются!

Мы разрабатываем компоненты .Net с 2002 года. Мы знаем форматы PDF, DOCX, RTF, HTML, XLSX и Images. Если вам нужна помощь в создании, изменении или преобразовании документов в различных форматах, мы можем вам помочь. Мы напишем для вас любой пример кода абсолютно бесплатно.