Верхний колонтитул — это раздел документа, который отображается в верхнем поле и обычно содержит такую информацию, как номер страницы, дата и имя документа. С помощью Aspose.Words REST API вы можете вставлять номер страницы в документ Word, а также верхние колонтитулы страниц. По умолчанию верхние колонтитулы одинаковы на каждой странице, но мы можем создавать разные верхние колонтитулы для четных и нечетных страниц.

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

Вставьте номер страницы
Вставить заголовок

Перед вызовом любого API Aspose REST нам необходимо создать учетную запись Aspose Cloud и получить ключ приложения и идентификатор SID приложения. В статье Начало работы объясняется, как выполнить эти шаги.

Более того, нам необходимо загрузить образец документа в Облачное хранилище, поскольку все операции с документом будут выполняться в облаке:

// Полный пример и файл данных можно найти по адресу https://github.com/aspose-words-cloud/aspose-words-cloud-dotnet/blob/master/Examples/Aspose.Words.Cloud.Sdk.Examples/HeaderFooter/InsertHeadersAndPageNumbersToAWordDocument.cs

string MyAppKey = ""; // Get AppKey and AppSID from https://dashboard.aspose.cloud/
string MyAppSid = ""; // Get AppKey and AppSID from https://dashboard.aspose.cloud/

StorageApi storageApi = new StorageApi(MyAppKey, MyAppSid);

string fileName = "Sample-Document.docx";

// Загрузить исходный документ в облачное хранилище
PutCreateRequest request = new PutCreateRequest(fileName, File.OpenRead(@"c:\Data\" + fileName), null, null);
storageApi.PutCreate(request);

Вставить заголовок в документ Word

Вставить верхний колонтитул API добавляет заголовки в документ, а его параметр headerFooterType может принимать одно из следующих шести значений:

  • HeaderFirst — Заголовок первой страницы раздела.
  • HeaderPrimary — первичный заголовок, также используется для нечетных страниц.
  • HeaderEven — верхний колонтитул для четных страниц.
  • FooterFirst — Нижний колонтитул первой страницы раздела.
  • FooterPrimary — основной нижний колонтитул, также используется для нечетных страниц.
  • FooterEven — нижний колонтитул для четных страниц.

Используйте значение HeaderFirst для вставки заголовка на первую страницу:

// Полный пример и файл данных можно найти по адресу https://github.com/aspose-words-cloud/aspose-words-cloud-dotnet/blob/master/Examples/Aspose.Words.Cloud.Sdk.Examples/HeaderFooter/InsertHeadersAndPageNumbersToAWordDocument.cs

string MyAppKey = ""; // Get AppKey and AppSID from https://dashboard.aspose.cloud/
string MyAppSid = ""; // Get AppKey and AppSID from https://dashboard.aspose.cloud/

WordsApi wordsApi = new WordsApi(MyAppKey, MyAppSid);

string fileName = "Sample-Document.docx";
string folder = null; // File exists at the root of the storage

// Вставить заголовок для первой страницы
var putHeaderFooterRequest = new PutHeaderFooterRequest(fileName, "HeaderFirst", folder);
var actual = wordsApi.PutHeaderFooter(putHeaderFooterRequest);

и значение HeaderPrimary для вставки заголовка на остальные страницы:

// Полный пример и файл данных можно найти по адресу https://github.com/aspose-words-cloud/aspose-words-cloud-dotnet/blob/master/Examples/Aspose.Words.Cloud.Sdk.Examples/HeaderFooter/InsertHeadersAndPageNumbersToAWordDocument.cs

// Вставить заголовок для всех остальных страниц
var putHeaderFooterRequest = new PutHeaderFooterRequest(fileName, "HeaderPrimary", folder);
var actual = wordsApi.PutHeaderFooter(putHeaderFooterRequest);

Поскольку первый заголовок отличается от остальных, установите для параметра DifferentFirstPageHeaderFooter значение true, как показано ниже:

// Полный пример и файл данных можно найти по адресу https://github.com/aspose-words-cloud/aspose-words-cloud-dotnet/blob/master/Examples/Aspose.Words.Cloud.Sdk.Examples/HeaderFooter/InsertHeadersAndPageNumbersToAWordDocument.cs

var sectionIndex = 0;
var body = new PageSetup
{
    DifferentFirstPageHeaderFooter = true
};

var pageSetupRequest = new UpdateSectionPageSetupRequest(fileName, sectionIndex, body);
var actual = wordsApi.UpdateSectionPageSetup(pageSetupRequest);

После выполнения приведенного выше фрагмента кода в заголовки документа были добавлены пустые параграфы. Теперь, чтобы добавить текст в эти заголовки, мы будем использовать Insert Paragraph API. Код, показанный ниже, добавляет текст «Aspose» в первый заголовок и текст «Cloud File Format APIs» во все остальные заголовки:

// Полный пример и файл данных можно найти по адресу https://github.com/aspose-words-cloud/aspose-words-cloud-dotnet/blob/master/Examples/Aspose.Words.Cloud.Sdk.Examples/HeaderFooter/InsertHeadersAndPageNumbersToAWordDocument.cs

var run = new Run { Text = "ASPOSE" };
            
var runRequest = new PutRunRequest(fileName, "sections/0/headersfooters/1/paragraphs/0", run);
var actual = wordsApi.PutRun(runRequest);

Применить форматирование к тексту заголовка

Форматирование можно применить к тексту заголовка с помощью API Update Run Font. API принимает объект fontDto в своем теле, подробности о свойствах ресурсов которого приведены в статье Update font properties for text in a Word document. Следующий код устанавливает семейство шрифтов текста заголовка на Verdana, размер текста на 14 и цвет текста на черный.

// Полный пример и файл данных можно найти по адресу https://github.com/aspose-words-cloud/aspose-words-cloud-dotnet/blob/master/Examples/Aspose.Words.Cloud.Sdk.Examples/HeaderFooter/InsertHeadersAndPageNumbersToAWordDocument.cs

var runIndex = 0;
var fontDto = new Font { Bold = true, Name = "Verdana", Size = 14, Color = new XmlColor { Web = "#000000" }  };

// Применить форматирование к заголовку первой страницы
var documentParagraphRunFontRequest = new PostDocumentParagraphRunFontRequest(fileName, fontDto, "sections/0/headersfooters/1/paragraphs/0", runIndex);
var actual = wordsApi.PostDocumentParagraphRunFont(documentParagraphRunFontRequest);

// Применить форматирование к заголовку всех остальных страниц
documentParagraphRunFontRequest = new PostDocumentParagraphRunFontRequest(fileName, fontDto, "sections/0/headersfooters/0/paragraphs/0", runIndex);
actual = wordsApi.PostDocumentParagraphRunFont(documentParagraphRunFontRequest);

После выполнения указанных выше вызовов API входной документ выглядит следующим образом:

Вставить номера страниц в документ Word

InsertPageNumbers API используется для вставки номеров страниц в документ Word. API принимает в своем теле следующий объект JSON:

{
  "Format": "string",
  "Alignment": "string",
  "IsTop": true,
  "SetPageNumberOnFirstPage": true
}

Поскольку мы добавляем номера страниц в заголовок, мы установим значение параметра IsTop на true. Однако, чтобы добавить номера страниц в нижний колонтитул, установите значение на false.

// Полный пример и файл данных можно найти по адресу https://github.com/aspose-words-cloud/aspose-words-cloud-dotnet/blob/master/Examples/Aspose.Words.Cloud.Sdk.Examples/HeaderFooter/InsertHeadersAndPageNumbersToAWordDocument.cs

var body = new PageNumber { Alignment = "right", Format = "{PAGE} of {NUMPAGES}", IsTop = true, SetPageNumberOnFirstPage = true };

var insertPageNumbersRequest = new PostInsertPageNumbersRequest(fileName, body);
var actual = wordsApi.PostInsertPageNumbers(insertPageNumbersRequest);

Наконец, мы добавили в документ заголовки и номера страниц.

Предлагаемый пост:

Мы также рекомендуем ознакомиться со следующими записями в блоге, чтобы узнать больше о: