页眉是文档中出现在顶部边距的部分,通常包含页码、日期和文档名称等信息。使用 Aspose.Words REST API,您可以在 Word 文档中插入页码以及页眉。默认情况下,每页的页眉都相同,但我们可以为奇数页和偶数页创建不同的页眉。

这篇文章旨在实现文档的以下布局,其中第一页的页眉与其余页面不同:

插入页码
插入页眉

在调用任何 Aspose REST API 之前,我们需要创建 Aspose Cloud 帐户 并获取我们的 App Key 和 App 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);

执行上述代码片段后,文档的标题中已添加空段落。现在,为了向这些标题添加文本,我们将使用 插入段落 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 将格式应用于标题文本。该 API 在其主体中接受 fontDto 对象,其资源属性的详细信息在 更新 Word 文档中文本的字体属性 文章中给出。以下代码将标题文本的字体系列设置为 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);

最后,我们为文档添加了页眉和页码。

建议发帖:

我们还建议您查看以下博客文章以了解更多信息: