Верхний колонтитул — это раздел документа, который отображается в верхнем поле и обычно содержит такую информацию, как номер страницы, дата и имя документа. С помощью 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);
Наконец, мы добавили в документ заголовки и номера страниц.
Предлагаемый пост:
Мы также рекомендуем ознакомиться со следующими записями в блоге, чтобы узнать больше о: