ส่วนหัวคือส่วนของเอกสารที่ปรากฏในระยะขอบบนและโดยทั่วไปจะมีข้อมูล เช่น หมายเลขหน้า วันที่ และชื่อเอกสาร ด้วย Aspose.Words REST APIs คุณสามารถแทรกหมายเลขหน้าในเอกสาร Word เช่นเดียวกับส่วนหัวของหน้าได้ โดยค่าเริ่มต้น ส่วนหัวจะเหมือนกันในแต่ละหน้า แต่เราสามารถสร้างส่วนหัวที่แตกต่างกันสำหรับหน้าคี่และหน้าคู่ได้

โพสต์นี้มุ่งหวังที่จะจัดทำเค้าโครงเอกสารดังต่อไปนี้ โดยที่ส่วนหัวในหน้าแรกจะแตกต่างจากหน้าอื่นๆ:

ใส่หมายเลขหน้า
แทรกส่วนหัว

ก่อนที่จะเรียกใช้ Aspose REST API ใด ๆ เราต้องสร้าง Aspose Cloud account และรับ App Key และ App SID ของเรา บทความ Getting started อธิบายวิธีดำเนินการตามขั้นตอนเหล่านี้

นอกจากนี้ เราจำเป็นต้องอัปโหลดเอกสารตัวอย่างไปยัง Cloud Storage เนื่องจากการดำเนินการทั้งหมดกับเอกสารจะดำเนินการในระบบคลาวด์:

// สำหรับตัวอย่างและไฟล์ข้อมูลที่สมบูรณ์ โปรดไปที่ 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";

// อัปโหลดเอกสารต้นฉบับไปยัง Cloud Storage
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 Insert Paragraph โค้ดที่แสดงด้านล่างนี้จะเพิ่มข้อความ “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);

ในที่สุดเราก็เพิ่มส่วนหัวและหมายเลขหน้าลงในเอกสารแล้ว

กระทู้แนะนำ:

เราขอแนะนำให้อ่านโพสต์บล็อกต่อไปนี้เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับ: