ผนวกข้อความที่คั่นหน้าไว้ในเอกสาร Word
ในบทความนี้ เราจะสำรวจซอร์สโค้ด C# ด้านบนเพื่อทำความเข้าใจวิธีใช้ฟังก์ชันผนวกข้อความที่คั่นหน้าใน Aspose.Words สำหรับไลบรารี .NET คุณลักษณะนี้ช่วยให้คุณสามารถเพิ่มข้อความที่อยู่ในบุ๊กมาร์กเฉพาะของเอกสาร Word ลงในเอกสารอื่นได้
ข้อกำหนดเบื้องต้น
- ความรู้พื้นฐานของภาษา C#
- สภาพแวดล้อมการพัฒนา .NET ที่ติดตั้งไลบรารี Aspose.Words
ขั้นตอนที่ 1: รับย่อหน้าจากบุ๊กมาร์ก
ก่อนที่เราจะเริ่มเพิ่มข้อความบุ๊กมาร์ก เราจำเป็นต้องได้รับย่อหน้าที่มีจุดเริ่มต้นและจุดสิ้นสุดของบุ๊กมาร์ก ซึ่งสามารถทำได้โดยการเข้าถึงBookmarkStart
และBookmarkEnd
คุณสมบัติของบุ๊กมาร์ก:
Paragraph startPara = (Paragraph) srcBookmark.BookmarkStart.ParentNode;
Paragraph endPara = (Paragraph) srcBookmark.BookmarkEnd.ParentNode;
ขั้นตอนที่ 2: ตรวจสอบย่อหน้าหลัก
เราตรวจสอบว่าย่อหน้าเริ่มต้นและสิ้นสุดมีพาเรนต์ที่ถูกต้องหรือไม่ กล่าวคือ ย่อหน้าเหล่านั้นอยู่ในย่อหน้าจริงหรือไม่ ถ้าไม่เช่นนั้น เราจะสร้างข้อยกเว้น:
if (startPara == null || endPara == null)
throw new InvalidOperationException(
"The parent of the beginning or the end of the bookmark is not a paragrap
hey, this situation can't be handled yet.");
ขั้นตอนที่ 3: ตรวจสอบผู้ปกครองของย่อหน้า
เราตรวจสอบว่าย่อหน้าเริ่มต้นและสิ้นสุดมีพาเรนต์เดียวกันหรือไม่ หากไม่เป็นเช่นนั้น แสดงว่าย่อหน้าไม่อยู่ในส่วนหรือเอกสารเดียวกัน และเรามีข้อยกเว้น:
if (startPara.ParentNode != endPara.ParentNode)
throw new InvalidOperationException(
"Beginning and ending paragraphs have different parents, this situation cannot be handled yet.");
ขั้นตอนที่ 4: คัดลอกย่อหน้า
เราวนซ้ำโหนด (ย่อหน้า) จากย่อหน้าเริ่มต้นไปยังย่อหน้าสุดท้าย สำหรับแต่ละโหนด เราจะสร้างสำเนาและนำเข้าไปยังบริบทของเอกสารปลายทาง:
Node endNode = endPara.NextSibling;
for (Node curNode = startPara; curNode != endNode; curNode = curNode.NextSibling)
{
Node newNode = importer.ImportNode(curNode, true);
dstNode.AppendChild(newNode);
}
ตัวอย่างซอร์สโค้ดสำหรับผนวกข้อความที่คั่นหน้าโดยใช้ Aspose.Words สำหรับ .NET
นี่คือตัวอย่างซอร์สโค้ดแบบเต็มเพื่อสาธิตการเพิ่มข้อความจากบุ๊กมาร์กโดยใช้ Aspose.Words สำหรับ .NET:
// นี่คือย่อหน้าที่มีจุดเริ่มต้นของบุ๊กมาร์ก
Paragraph startPara = (Paragraph) srcBookmark.BookmarkStart.ParentNode;
// นี่คือย่อหน้าที่มีส่วนท้ายของบุ๊กมาร์ก
Paragraph endPara = (Paragraph) srcBookmark.BookmarkEnd.ParentNode;
if (startPara == null || endPara == null)
throw new InvalidOperationException(
"Parent of the bookmark start or end is not a paragraph, cannot handle this scenario yet.");
// จำกัดตัวเราเองให้อยู่ในสถานการณ์ที่เรียบง่ายพอสมควร
if (startPara.ParentNode != endPara.ParentNode)
throw new InvalidOperationException(
"Start and end paragraphs have different parents, cannot handle this scenario yet.");
// เราต้องการคัดลอกย่อหน้าทั้งหมดตั้งแต่ย่อหน้าเริ่มต้นจนถึง (และรวมถึง) ย่อหน้าสุดท้าย
// ดังนั้นโหนดที่เราหยุดจะอยู่หลังย่อหน้าสุดท้าย
Node endNode = endPara.NextSibling;
for (Node curNode = startPara; curNode != endNode; curNode = curNode.NextSibling)
{
//สิ่งนี้จะสร้างสำเนาของโหนดปัจจุบันและนำเข้า (ทำให้ถูกต้อง) ในบริบท
// ของเอกสารปลายทาง การนำเข้าหมายถึงการปรับสไตล์และตัวระบุรายการอย่างถูกต้อง
Node newNode = importer.ImportNode(curNode, true);
dstNode.AppendChild(newNode);
}
บทสรุป
ในบทความนี้ เราได้สำรวจซอร์สโค้ด C# เพื่อทำความเข้าใจวิธีใช้ฟังก์ชัน Append Bookmarked Text ของ Aspose.Words สำหรับ .NET เราได้ปฏิบัติตามคำแนะนำทีละขั้นตอนในการรับย่อหน้าจากบุ๊กมาร์ก การตรวจสอบผู้ปกครอง และการคัดลอกย่อหน้าไปยังเอกสารอื่น
คำถามที่พบบ่อยสำหรับการต่อท้ายข้อความที่คั่นหน้าในเอกสาร word
คำถามที่ 1: ข้อกำหนดเบื้องต้นในการใช้ฟีเจอร์ “เพิ่มข้อความพร้อมบุ๊กมาร์ก” ใน Aspose.Words for .NET คืออะไร
ตอบ: หากต้องการใช้ฟังก์ชัน “เพิ่มข้อความพร้อมบุ๊กมาร์ก” ใน Aspose.Words สำหรับ .NET คุณต้องมีความรู้พื้นฐานเกี่ยวกับภาษา C# คุณต้องมีสภาพแวดล้อมการพัฒนา .NET ที่ติดตั้งไลบรารี Aspose.Words ด้วย
คำถามที่ 2: วิธีรับย่อหน้าที่มีจุดเริ่มต้นและจุดสิ้นสุดของบุ๊กมาร์กในเอกสาร Word
ตอบ: หากต้องการรับย่อหน้าที่มีจุดเริ่มต้นและจุดสิ้นสุดของบุ๊กมาร์กในเอกสาร Word คุณสามารถเข้าถึงได้BookmarkStart
และBookmarkEnd
คุณสมบัติของบุ๊กมาร์ก นี่คือโค้ดตัวอย่าง:
Paragraph startPara = (Paragraph) srcBookmark.BookmarkStart.ParentNode;
Paragraph endPara = (Paragraph) srcBookmark.BookmarkEnd.ParentNode;
Q3: จะเกิดอะไรขึ้นถ้าย่อหน้าเริ่มต้นและสิ้นสุดไม่มีพาเรนต์ที่ถูกต้อง
ตอบ: หากย่อหน้าเริ่มต้นและสิ้นสุดไม่มีพาเรนต์ที่ถูกต้อง กล่าวคือ ไม่ใช่ย่อหน้าจริงๆ ข้อยกเว้นจะเกิดขึ้น ไม่สามารถจัดการสถานการณ์นี้ได้ในขณะนี้