การลบตำแหน่งแท็บที่กำหนดเองจากระดับรายการทำให้คุณควบคุมการจัดรูปแบบรายการในเอกสาร Word อย่างละเอียด ฟีเจอร์ Removing List Level Tab Stops เพิ่มเมธอดง่าย ๆ ListLevel.RemoveTabStop() ที่ลบตำแหน่งแท็บที่ตั้งไว้ก่อนหน้า บทความนี้จะพาคุณผ่านขั้นตอนการติดตั้ง SDK, การสร้างรายการ, การลบตำแหน่งแท็บของรายการ, และการบันทึกเอกสารที่อัปเดต

ทำไมต้องลบการหยุดแท็บระดับรายการในเอกสาร Word

Word lists มักพึ่งพาการตั้งค่าแท็บเริ่มต้นที่ทำให้หมายเลขรายการหรือสัญลักษณ์จุดสอดคล้องกับข้อความ เมื่อเอกสารถูกสร้างโดยโปรแกรม คุณอาจเพิ่มแท็บที่กำหนดเองเพื่อให้ได้การจัดแนวเชิงภาพที่เฉพาะเจาะจง ภายหลัง ความต้องการทางธุรกิจอาจเปลี่ยนแปลง หรือคุณอาจต้องใช้เทมเพลตเดียวกันสำหรับการจัดวางที่แตกต่างกัน การแก้ไขเอกสารด้วยตนเองเพื่อลบแท็บนั้นใช้เวลานานและเสี่ยงต่อข้อผิดพลาด ด้วย ListLevel.RemoveTabStop() คุณสามารถคืนค่าระดับรายการให้กลับสู่พฤติกรรมเริ่มต้นโดยอัตโนมัติ เพื่อให้เอกสารที่สร้างขึ้นมีความสอดคล้องโดยไม่ต้องแทรกแซงด้วยมือ.

แนะนำ ListLevel API

Aspose.Words for .NET มีโมเดลวัตถุที่ครอบคลุมสำหรับการจัดการเอกสาร Word คลาส ListLevel แทนระดับเดียวภายในรายการ (เช่น ระดับแรกของรายการลำดับเลข) ตั้งแต่เวอร์ชัน 26.7 เป็นต้นไป คลาสนี้รวมเมธอด RemoveTabStop() ซึ่งจะลบการตั้งค่าตำแหน่งแท็บที่กำหนดเองบนระดับนั้น.

เริ่มต้นโดยการติดตั้งแพคเกจ Aspose.Words จาก NuGet:

Install-Package Aspose.Words

คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับผลิตภัณฑ์ได้ที่ Aspose.Words for .NET product page. เอกสารรายละเอียดพร้อมใช้งานที่ Aspose.Words .NET docs, และอ้างอิง API เต็มรูปแบบสามารถสำรวจได้ ที่นี่.

ลบตำแหน่งแท็บที่กำหนดเองจากระดับรายการเดียว

บทแนะนำแบบขั้นตอนต่อขั้นตอน

  1. สร้าง Document และ DocumentBuilder ใหม่ อ็อบเจ็กต์ Document จะเก็บไฟล์ Word ไว้ในหน่วยความจำ ในขณะที่ DocumentBuilder ทำให้การสร้างเนื้อหาง่ายขึ้น.
  2. ใช้รูปแบบรายการลำดับเลขเริ่มต้น สิ่งนี้จะให้รายการที่มีระดับและตำแหน่งแท็บที่กำหนดไว้ล่วงหน้า.
  3. เขียนรายการสองรายการ รายการเหล่านี้จะสืบทอดรูปแบบรายการ.
  4. ดึง ListLevel ปัจจุบันจาก builder นี่คือระดับที่เราเพิ่งสร้างขึ้น.
  5. เรียก RemoveTabStop() บน ListLevel การทำเช่นนี้จะลบตำแหน่งแท็บที่กำหนดเอง.
  6. บันทึกเอกสาร เพื่อยืนยันการเปลี่ยนแปลง.

ตัวอย่างต่อไปนี้แสดงวิธีการลบตำแหน่งแท็บที่กำหนดเองจากระดับรายการโดยใช้ C# และ Aspose.Words.

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Create a list with default formatting
builder.ListFormat.ApplyNumberDefault();
builder.Writeln("Numbered list item 1");
builder.Writeln("Numbered list item 2");

// Get the list level and remove its tab stop
ListLevel listLevel = builder.ListFormat.ListLevel;
listLevel.RemoveTabStop();

doc.Save("Paragraph.RemoveTabStopFromListLevel.docx");

วิธีการทำงาน

  • builder.ListFormat.ApplyNumberDefault() สลับ builder ไปยังบริบทรายการแบบลำดับเลขโดยใช้สไตล์รายการเริ่มต้นที่กำหนดโดย Word. สิ่งนี้จะสร้างอ็อบเจ็กต์ List ใหม่และ ListLevel ที่สอดคล้องกันสำหรับระดับแรกโดยอัตโนมัติ
  • builder.Writeln(...) เขียนรายการสองรายการ. เนื่องจาก builder อยู่ในโหมดรายการ, การเรียกแต่ละครั้งจะเพิ่มหมายเลขรายการที่เหมาะสมโดยอัตโนมัติและจัดแนวข้อความตามตำแหน่งแท็บของระดับนั้น
  • builder.ListFormat.ListLevel คืนค่าอินสแตนซ์ ListLevel ที่ควบคุมการจัดรูปแบบสำหรับระดับรายการปัจจุบัน (ระดับ 0 ในกรณีนี้)
  • listLevel.RemoveTabStop() ลบตำแหน่งแท็บที่กำหนดเองซึ่งตั้งไว้เมื่อสร้างระดับรายการ. หลังจากการเรียกนี้, รายการจะใช้ตำแหน่งแท็บเริ่มต้นของ Word, ปกติจะอยู่ที่การเยื้องซ้ายของระดับนั้น
  • doc.Save(...) เขียนเอกสารในหน่วยความจำไปยังไฟล์ชื่อ Paragraph.RemoveTabStopFromListLevel.docx. เปิดไฟล์ใน Microsoft Word หรือโปรแกรมดูที่เข้ากันได้เพื่อดูว่าตัวเลขและข้อความตอนนี้จัดแนวโดยใช้ตำแหน่งแท็บเริ่มต้นแล้ว

Note: ตัวอย่างโค้ดนี้ได้ทำการคัดลอกมาจากบันทึกการปล่อยอย่างเป็นทางการของ Aspose.Words และยังไม่ได้รับการดำเนินการในสภาพแวดล้อม sandbox ตรวจสอบมันในสภาพแวดล้อมการพัฒนาของคุณเองก่อนนำไปใช้ในการผลิต.

ลบการหยุดแท็บจากระดับรายการทั้งหมดในเอกสาร

ในหลายสถานการณ์จริง ๆ เอกสารอาจมีหลายรายการที่มีหลายระดับ การลบตำแหน่งแท็บจากระดับเดียวอาจไม่เพียงพอ ตัวอย่างโค้ดต่อไปนี้แสดงวิธีวนลูปผ่านรายการทั้งหมดในเอกสารและลบตำแหน่งแท็บในแต่ละระดับ.

// Load an existing document that contains multiple lists
Document doc = new Document("Input.docx");

// Iterate through every list in the document
foreach (List list in doc.Lists)
{
    // Each list can have multiple levels (0‑8). Iterate them.
    foreach (ListLevel level in list.ListLevels)
    {
        // Remove any custom tab stop for this level
        level.RemoveTabStop();
    }
}

// Save the updated document
doc.Save("Output_NoTabStops.docx");

คำอธิบายของโค้ด

  • new Document("Input.docx") โหลดไฟล์ Word ที่มีอยู่ซึ่งอาจมีหลายรายการ
  • doc.Lists คืนค่าคอลเลกชันของอ็อบเจ็กต์ List ที่แทนแต่ละรายการที่แตกต่างกันในเอกสาร
  • list.ListLevels ให้การเข้าถึงระดับที่เป็นไปได้ทั้งหมด 9 ระดับ (0‑8) สำหรับรายการนั้น แม้ว่าระดับใดระดับหนึ่งจะไม่ได้ใช้ คอลเลกชันก็ยังมีอินสแตนซ์ ListLevel พร้อมการจัดรูปแบบเริ่มต้น
  • ภายในลูปภายใน, level.RemoveTabStop() จะถูกเรียกบนทุกระดับ เพื่อรับประกันว่าไม่มีการหยุดแท็บที่กำหนดเองเหลืออยู่ในเอกสารใด ๆ
  • สุดท้าย, doc.Save("Output_NoTabStops.docx") จะบันทึกเอกสารที่ทำความสะอาดแล้ว

วิธีนี้มีประโยชน์เป็นพิเศษเมื่อคุณต้องการบังคับให้รายการมีการจัดวางแบบเดียวกันในชุดของรายงานที่สร้างขึ้นหรือเมื่อคุณกำลังทำให้เอกสารที่ได้รับจากแหล่งภายนอกเป็นมาตรฐานเดียวกัน

การเพิ่ม Tab Stop อย่างโปรแกรมมาติคแล้วลบออก

บางครั้งคุณอาจต้องเพิ่มตำแหน่งแท็บที่กำหนดเองสำหรับการจัดเลย์เอาต์ชั่วคราว, ทำบางการดำเนินการ, แล้วกลับไปใช้ค่าเริ่มต้น SDK ให้คุณเพิ่มตำแหน่งแท็บด้วย ListLevel.TabStops.Add(double position) หลังจากทำการจัดรูปแบบชั่วคราวเสร็จแล้ว คุณสามารถเรียก RemoveTabStop() เพื่อลบออก.

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

builder.ListFormat.ApplyNumberDefault();
builder.Writeln("Temporarily aligned item 1");

// Add a custom tab stop at 72 points (1 inch)
ListLevel level = builder.ListFormat.ListLevel;
level.TabStops.Add(72);

builder.Writeln("Item with custom tab stop");

// Later, remove the custom tab stop
level.RemoveTabStop();

builder.Writeln("Item after removing tab stop");

doc.Save("TempTabStopDemo.docx");

คำอธิบายของโค้ด

  • หลังจากสร้างเอกสารและใช้รายการลำดับเลขแล้ว เราเขียนรายการแรก.
  • level.TabStops.Add(72) แทรกตำแหน่งแท็บที่กำหนดเองที่ 72 จุด (เท่ากับหนึ่งนิ้ว) รายการต่อมาจะจัดตำแหน่งข้อความที่ตำแหน่งนั้น.
  • เมื่อการจัดรูปแบบชั่วคราวไม่จำเป็นต้องใช้แล้ว level.RemoveTabStop() จะลบตำแหน่งแท็บที่กำหนดเอง ทำให้รายการต่อไปกลับไปใช้การจัดตำแหน่งเริ่มต้น.
  • บรรทัด Writeln สุดท้ายแสดงผลของการลบ.

รูปแบบนี้มีประโยชน์เมื่อคุณต้องการการปรับแต่งแบบครั้งเดียว—เช่น การจัดตำแหน่งหัวข้อภายในรายการสำหรับการจัดหน้าเฉพาะ—ในขณะที่ยังคงเอกสารส่วนอื่น ๆ ให้สะอาดเรียบร้อย

รับใบอนุญาตฟรี

Aspose ให้ใบอนุญาตชั่วคราวฟรีที่ลบลายน้ำการประเมินและให้การเข้าถึง API เต็มรูปแบบสำหรับการพัฒนาและการทดสอบ คุณสามารถขอรับได้จาก หน้าใบอนุญาตชั่วคราวของ Aspose.

แหล่งข้อมูลเพิ่มเติมฟรี

สรุป

ในบทแนะนำนี้ เราได้อธิบายวิธีการใช้เมธอดใหม่ ListLevel.RemoveTabStop() ที่แนะนำใน Aspose.Words 26.7 โดยการลบแท็บสต็อปที่กำหนดเอง คุณจะได้ควบคุมการจัดแนวของรายการอีกครั้ง ทำให้เทมเพลตเอกสารง่ายขึ้น และรับประกันการจัดรูปแบบที่สอดคล้องกันในไฟล์ Word ที่สร้างขึ้น ตัวอย่างได้แสดงการลบสำหรับระดับรายการเดียว การลบเป็นกลุ่มทั่วทั้งเอกสาร และรูปแบบสำหรับการปรับแท็บสต็อปชั่วคราว การนำเทคนิคเหล่านี้ไปใช้ในแอปพลิเคชัน .NET ของคุณจะทำให้การทำอัตโนมัติ Word มีความแข็งแรงและดูแลรักษาง่ายขึ้น.

FAQs

  1. ListLevel.RemoveTabStop() จริงๆ แล้วลบอะไร?
    เมธอดนี้จะลบการตั้งค่าตำแหน่งแท็บที่กำหนดเองสำหรับระดับรายการ ทำให้ระดับนั้นกลับไปใช้ตำแหน่งแท็บเริ่มต้นที่กำหนดโดยสไตล์ของเอกสาร

  2. ฉันต้องเรียก Save() หลังจากลบ tab stop หรือไม่?
    ใช่ การเปลี่ยนแปลงเกิดขึ้นในหน่วยความจำ ดังนั้นคุณต้องเรียก Document.Save() เพื่อบันทึกรายการจัดรูปแบบที่อัปเดตลงในไฟล์.

  3. ฉันสามารถลบการหยุดแท็บจากระดับรายการทั้งหมดในเอกสารเดียวได้หรือไม่?
    แน่นอน คุณสามารถวนซ้ำผ่านแต่ละ List ในเอกสารและจากนั้นผ่านแต่ละ ListLevel โดยเรียก RemoveTabStop() ตามที่ต้องการ.

  4. RemoveTabStop() รองรับรายการแบบมีจุดหัวข้อและรายการแบบลำดับเลขหรือไม่?
    ใช่ วิธีการทำงานกับ ListLevel ใด ๆ ไม่ว่าจะเป็นรายการแบบจุดหัวข้อ, ตัวเลข หรือรูปแบบหลายระดับก็ตาม.

  5. การลบตำแหน่งแท็บที่กำหนดเองจะส่งผลต่อการเยื้องของรายการที่มีอยู่หรือไม่?
    มีเพียงตำแหน่งของแท็บที่เปลี่ยนแปลงเท่านั้น การเยื้องโดยรวมที่กำหนดโดยการเยื้องซ้ายของระดับรายการยังคงไม่เปลี่ยนแปลง ดังนั้นรายการจะคงลำดับชั้นที่มองเห็นได้ตามเดิม.

  6. ฉันต้องใช้ใบอนุญาตแบบชำระเงินเพื่อใช้ ListLevel.RemoveTabStop() หรือไม่?
    API นี้มีให้ใช้ในใบอนุญาตชั่วคราวแบบฟรี แต่สำหรับการใช้งานในสภาพแวดล้อมการผลิต คุณควรรับใบอนุญาตเต็มจาก Aspose.

อ่านต่อ