Tiêu đề là một phần của tài liệu xuất hiện ở lề trên cùng và thường chứa thông tin như số trang, ngày tháng và tên tài liệu. Với Aspose.Words REST APIs, bạn có thể chèn số trang vào tài liệu Word cũng như tiêu đề trang. Theo mặc định, tiêu đề giống nhau trên mỗi trang, nhưng chúng ta có thể tạo các tiêu đề khác nhau cho các trang lẻ và trang chẵn.

Bài đăng này nhằm mục đích đạt được bố cục sau của tài liệu, trong đó tiêu đề ở trang đầu tiên khác với các trang còn lại:

Chèn số trang
Chèn tiêu đề

Trước khi gọi bất kỳ API REST Aspose nào, chúng ta cần tạo tài khoản Aspose Cloud và lấy App Key và App SID của mình. Bài viết Bắt đầu giải thích cách thực hiện các bước này.

Hơn nữa, chúng ta cần tải tài liệu mẫu lên Cloud Storage vì tất cả các thao tác trên tài liệu sẽ được thực hiện trên Cloud:

// Để biết ví dụ đầy đủ và tệp dữ liệu, vui lòng truy cập 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";

// Tải tài liệu nguồn lên Cloud Storage
PutCreateRequest request = new PutCreateRequest(fileName, File.OpenRead(@"c:\Data\" + fileName), null, null);
storageApi.PutCreate(request);

Chèn Tiêu đề vào Tài liệu Word

Chèn Đầu trang Chân trang API thêm tiêu đề vào tài liệu và tham số headerFooterType của nó có thể nhận một trong sáu giá trị sau:

  • HeaderFirst - Tiêu đề cho trang đầu tiên của phần.
  • HeaderPrimary - Tiêu đề chính, cũng được sử dụng cho các trang có số lẻ.
  • HeaderEven - Tiêu đề cho các trang có số chẵn.
  • FooterFirst - Chân trang cho trang đầu tiên của phần.
  • FooterPrimary - Chân trang chính, cũng được sử dụng cho các trang có số lẻ.
  • FooterEven - Chân trang cho các trang có số chẵn.

Vui lòng sử dụng giá trị HeaderFirst để chèn tiêu đề vào trang đầu tiên:

// Để biết ví dụ đầy đủ và tệp dữ liệu, vui lòng truy cập 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

// Chèn Tiêu đề cho trang đầu tiên
var putHeaderFooterRequest = new PutHeaderFooterRequest(fileName, "HeaderFirst", folder);
var actual = wordsApi.PutHeaderFooter(putHeaderFooterRequest);

và giá trị HeaderPrimary để chèn tiêu đề vào phần còn lại của các trang:

// Để biết ví dụ đầy đủ và tệp dữ liệu, vui lòng truy cập https://github.com/aspose-words-cloud/aspose-words-cloud-dotnet/blob/master/Examples/Aspose.Words.Cloud.Sdk.Examples/HeaderFooter/InsertHeadersAndPageNumbersToAWordDocument.cs

// Chèn Tiêu đề cho tất cả các trang khác
var putHeaderFooterRequest = new PutHeaderFooterRequest(fileName, "HeaderPrimary", folder);
var actual = wordsApi.PutHeaderFooter(putHeaderFooterRequest);

Vì tiêu đề đầu tiên khác với các tiêu đề khác, hãy đặt giá trị tham số DifferentFirstPageHeaderFooter thành true như hiển thị bên dưới:

// Để biết ví dụ đầy đủ và tệp dữ liệu, vui lòng truy cập 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);

Sau khi thực thi đoạn mã trên, các đoạn văn bản trống đã được thêm vào tiêu đề của tài liệu. Bây giờ, để thêm văn bản vào các tiêu đề này, chúng ta sẽ sử dụng API Insert Paragraph. Mã được hiển thị bên dưới đang thêm văn bản “Aspose” vào tiêu đề đầu tiên và văn bản “Cloud File Format APIs” vào tất cả các tiêu đề khác:

// Để biết ví dụ đầy đủ và tệp dữ liệu, vui lòng truy cập 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);

Áp dụng định dạng cho văn bản của tiêu đề

Định dạng có thể được áp dụng cho văn bản của tiêu đề bằng cách sử dụng API Update Run Font. API chấp nhận đối tượng fontDto trong phần thân của nó, có chi tiết Thuộc tính tài nguyên được cung cấp trong bài viết Update font properties for text in a Word document. Mã sau đây đang thiết lập họ phông chữ của văn bản tiêu đề thành Verdana, kích thước văn bản thành 14 và màu văn bản thành đen.

// Để biết ví dụ đầy đủ và tệp dữ liệu, vui lòng truy cập 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" }  };

// Áp dụng định dạng cho tiêu đề trang đầu tiên
var documentParagraphRunFontRequest = new PostDocumentParagraphRunFontRequest(fileName, fontDto, "sections/0/headersfooters/1/paragraphs/0", runIndex);
var actual = wordsApi.PostDocumentParagraphRunFont(documentParagraphRunFontRequest);

// Áp dụng định dạng cho tiêu đề của tất cả các trang khác
documentParagraphRunFontRequest = new PostDocumentParagraphRunFontRequest(fileName, fontDto, "sections/0/headersfooters/0/paragraphs/0", runIndex);
actual = wordsApi.PostDocumentParagraphRunFont(documentParagraphRunFontRequest);

Sau khi thực hiện các lệnh gọi API ở trên, tài liệu đầu vào sẽ trông như sau:

Chèn số trang vào tài liệu Word

InsertPageNumbers API được sử dụng để chèn số trang vào tài liệu Word. API chấp nhận đối tượng JSON sau trong nội dung của nó:

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

Vì chúng ta đang thêm số trang vào tiêu đề, chúng ta sẽ đặt giá trị của tham số IsTop thành true. Tuy nhiên, để thêm số trang vào chân trang, hãy đặt giá trị thành false.

// Để biết ví dụ đầy đủ và tệp dữ liệu, vui lòng truy cập 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);

Cuối cùng, chúng tôi đã thêm tiêu đề và số trang vào tài liệu.

Bài đăng được đề xuất:

Chúng tôi cũng khuyên bạn nên xem các bài đăng trên blog sau để tìm hiểu thêm về: