Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
เมื่อทำงานกับเอกสาร สิ่งสำคัญคือต้องสามารถดึงเนื้อหาจากช่วงเฉพาะภายในเอกสารได้อย่างง่ายดาย อย่างไรก็ตาม เนื้อหาอาจประกอบด้วยองค์ประกอบที่ซับซ้อน เช่น ย่อหน้า ตาราง รูปภาพ ฯลฯ
ไม่ว่าเนื้อหาใดจะต้องถูกแยกออกมา วิธีการแยกเนื้อหานั้นจะถูกกำหนดโดยโหนดใดที่ถูกเลือกเพื่อแยกเนื้อหาระหว่างนั้นเสมอ สิ่งเหล่านี้อาจเป็นเนื้อหาข้อความทั้งหมดหรือการเรียกใช้ข้อความธรรมดา
มีสถานการณ์ที่เป็นไปได้มากมาย ดังนั้นโหนดประเภทต่างๆ มากมายที่ต้องพิจารณาเมื่อแยกเนื้อหา ตัวอย่างเช่น คุณอาจต้องการแยกเนื้อหาระหว่าง:
ในบางสถานการณ์ คุณอาจต้องรวมประเภทโหนดที่แตกต่างกัน เช่น แยกเนื้อหาระหว่างย่อหน้าและช่อง หรือระหว่างการเรียกใช้และบุ๊กมาร์ก
บทความนี้ให้ข้อมูลการใช้งานโค้ดสำหรับการแยกข้อความระหว่างโหนดต่างๆ รวมถึงตัวอย่างของสถานการณ์ทั่วไป
บ่อยครั้งที่เป้าหมายในการแยกเนื้อหาคือการทำซ้ำหรือบันทึกแยกกันในเอกสารใหม่ ตัวอย่างเช่น คุณสามารถแยกเนื้อหาและ:
ซึ่งสามารถทำได้ง่ายๆ โดยใช้ Aspose.Words และการติดตั้งโค้ดด้านล่าง
รหัสในส่วนนี้กล่าวถึงสถานการณ์ที่เป็นไปได้ทั้งหมดที่อธิบายไว้ข้างต้นด้วยวิธีทั่วไปและนำมาใช้ซ้ำได้วิธีเดียว โครงร่างทั่วไปของเทคนิคนี้เกี่ยวข้องกับ:
หากต้องการแยกเนื้อหาออกจากเอกสารของคุณ คุณต้องเรียกใช้เมธอด แยก_เนื้อหา ด้านล่างและส่งพารามิเตอร์ที่เหมาะสม พื้นฐานพื้นฐานของวิธีนี้เกี่ยวข้องกับการค้นหาโหนดระดับบล็อก (ย่อหน้าและตาราง) และทำการโคลนเพื่อสร้างสำเนาที่เหมือนกัน หากโหนดเครื่องหมายที่ส่งผ่านเป็นระดับบล็อก วิธีการก็สามารถคัดลอกเนื้อหาในระดับนั้นและเพิ่มลงในอาร์เรย์ได้
อย่างไรก็ตาม หากโหนดมาร์กเกอร์เป็นแบบอินไลน์ (ลูกของย่อหน้า) สถานการณ์จะซับซ้อนมากขึ้น เนื่องจากจำเป็นต้องแยกย่อหน้าที่โหนดอินไลน์ ไม่ว่าจะเป็นการรัน ฟิลด์บุ๊กมาร์ก ฯลฯ เนื้อหาในโหนดพาเรนต์ที่ถูกโคลนไม่ ที่อยู่ระหว่างเครื่องหมายจะถูกลบออก กระบวนการนี้ใช้เพื่อให้แน่ใจว่าโหนดแบบอินไลน์จะยังคงรูปแบบของย่อหน้าหลักไว้ วิธีการนี้จะเรียกใช้การตรวจสอบโหนดที่ส่งผ่านเป็นพารามิเตอร์และส่งข้อยกเว้นหากโหนดใดโหนดหนึ่งไม่ถูกต้อง พารามิเตอร์ที่จะส่งไปยังวิธีนี้คือ:
การดำเนินการตามวิธี แยก_เนื้อหา คุณสามารถค้นหา ที่นี่ วิธีการนี้จะอ้างอิงถึงในสถานการณ์สมมติในบทความนี้
นอกจากนี้เรายังจะกำหนดวิธีการแบบกำหนดเองเพื่อสร้างเอกสารจากโหนดที่แยกออกมาได้อย่างง่ายดาย วิธีการนี้ใช้ในหลายสถานการณ์ด้านล่าง และเพียงสร้างเอกสารใหม่และนำเข้าเนื้อหาที่แยกออกมาลงไป
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีนำรายการโหนดและแทรกลงในเอกสารใหม่:
สิ่งนี้สาธิตวิธีการใช้วิธีการด้านบนเพื่อแยกเนื้อหาระหว่างย่อหน้าเฉพาะ ในกรณีนี้ เราต้องการแยกเนื้อหาของตัวอักษรที่พบในครึ่งแรกของเอกสาร เราบอกได้เลยว่าอยู่ระหว่างย่อหน้าที่ 7 ถึงย่อหน้าที่ 11
รหัสด้านล่างทำให้งานนี้สำเร็จ ย่อหน้าที่เหมาะสมจะถูกแยกออกมาโดยใช้วิธี CompositeNode.get_child ในเอกสารและส่งผ่านดัชนีที่ระบุ จากนั้นเราจะส่งโหนดเหล่านี้ไปยังวิธี แยก_เนื้อหา และระบุว่าจะต้องรวมสิ่งเหล่านี้ไว้ในการแตกข้อมูล วิธีนี้จะส่งคืนเนื้อหาที่คัดลอกระหว่างโหนดเหล่านี้ซึ่งจะถูกแทรกลงในเอกสารใหม่
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการแยกเนื้อหาระหว่างย่อหน้าเฉพาะโดยใช้วิธี แยก_เนื้อหา ด้านบน:
เราสามารถแยกเนื้อหาระหว่างการรวมกันของระดับบล็อกหรือโหนดแบบอินไลน์ ในสถานการณ์ด้านล่างนี้ เราจะแยกเนื้อหาระหว่างย่อหน้าแรกและตารางในส่วนที่สองให้ครบถ้วน เราได้รับโหนดเครื่องหมายโดยการเรียกวิธี Body.first_paragraph และ CompositeNode.get_child ในส่วนที่สองของเอกสารเพื่อดึงข้อมูลโหนด Paragraph และ Table ที่เหมาะสม หากต้องการรูปแบบเล็กน้อย ให้ทำซ้ำเนื้อหาและแทรกไว้ด้านล่างของต้นฉบับแทน
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการแยกเนื้อหาระหว่างย่อหน้าและตารางโดยใช้วิธี แยก_เนื้อหา:
คุณอาจต้องแยกเนื้อหาระหว่างย่อหน้าที่มีสไตล์เดียวกันหรือต่างกัน เช่น ระหว่างย่อหน้าที่ทำเครื่องหมายด้วยสไตล์หัวเรื่อง
รหัสด้านล่างแสดงวิธีการบรรลุเป้าหมายนี้ เป็นตัวอย่างง่ายๆ ซึ่งจะแยกเนื้อหาระหว่างอินสแตนซ์แรกของสไตล์ “ส่วนหัว 1” และ “ส่วนหัว 3” โดยไม่ต้องแยกส่วนหัวด้วย ในการดำเนินการนี้ เราตั้งค่าพารามิเตอร์สุดท้ายเป็น false ซึ่งระบุว่าไม่ควรรวมโหนดเครื่องหมายไว้ด้วย
ในการใช้งานที่เหมาะสม ควรรันแบบวนซ้ำเพื่อแยกเนื้อหาระหว่างย่อหน้าทั้งหมดของสไตล์เหล่านี้ออกจากเอกสาร เนื้อหาที่แยกออกมาจะถูกคัดลอกไปยังเอกสารใหม่
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการแยกเนื้อหาระหว่างย่อหน้าด้วยสไตล์เฉพาะโดยใช้วิธี แยก_เนื้อหา:
คุณสามารถแยกเนื้อหาระหว่างโหนดอินไลน์ เช่น Run ได้เช่นกัน การเรียกใช้จากย่อหน้าต่างๆ สามารถส่งผ่านเป็นเครื่องหมายได้ รหัสด้านล่างแสดงวิธีการแยกข้อความเฉพาะระหว่างโหนด Paragraph เดียวกัน
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการแยกเนื้อหาระหว่างการรันเฉพาะของย่อหน้าเดียวกันโดยใช้วิธี แยก_เนื้อหา:
หากต้องการใช้ช่องเป็นเครื่องหมาย ควรส่งโหนด FieldStart พารามิเตอร์สุดท้ายของเมธอด แยก_เนื้อหา จะกำหนดว่าจะรวมฟิลด์ทั้งหมดหรือไม่ มาแยกเนื้อหาระหว่างช่องผสาน “FullName” และย่อหน้าในเอกสารกัน เราใช้วิธี DocumentBuilder.move_to_merge_field ของคลาส DocumentBuilder สิ่งนี้จะส่งคืนโหนด FieldStart จากชื่อของฟิลด์ผสานที่ส่งผ่านไป
ในกรณีของเรา ให้ตั้งค่าพารามิเตอร์สุดท้ายที่ส่งไปยังวิธี แยก_เนื้อหา เป็น False เพื่อแยกฟิลด์ออกจากการแยกข้อมูล เราจะแสดงเนื้อหาที่แยกออกมาเป็น PDF
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการแยกเนื้อหาระหว่างเขตข้อมูลเฉพาะและย่อหน้าในเอกสารโดยใช้วิธี แยก_เนื้อหา:
ในเอกสาร เนื้อหาที่กำหนดไว้ภายในบุ๊กมาร์กจะถูกห่อหุ้มด้วยโหนด BookmarkStart และ BookmarkEnd เนื้อหาที่พบระหว่างสองโหนดนี้ประกอบขึ้นเป็นบุ๊กมาร์ก คุณสามารถส่งโหนดใดโหนดหนึ่งเหล่านี้เป็นเครื่องหมายใดก็ได้ แม้แต่โหนดจากบุ๊กมาร์กต่างๆ ก็ตาม ตราบใดที่เครื่องหมายเริ่มต้นปรากฏก่อนเครื่องหมายสิ้นสุดในเอกสาร เราจะแยกเนื้อหานี้ออกเป็นเอกสารใหม่โดยใช้โค้ดด้านล่าง ตัวเลือกพารามิเตอร์ เป็นแบบรวม แสดงวิธีเก็บหรือละทิ้งบุ๊กมาร์ก
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแยกเนื้อหาที่อ้างอิงบุ๊กมาร์กโดยใช้วิธี แยก_เนื้อหา:
ความคิดเห็นประกอบด้วยโหนด CommentRangeStart, CommentRangeEnd และ Comment โหนดทั้งหมดเหล่านี้เป็นแบบอินไลน์ สองโหนดแรกสรุปเนื้อหาในเอกสารซึ่งมีการอ้างอิงโดยความคิดเห็น ดังที่เห็นในภาพหน้าจอด้านล่าง โหนด Comment นั้นเป็น InlineStory ที่สามารถประกอบด้วยย่อหน้าและเรียกใช้ได้ โดยจะแสดงข้อความของความคิดเห็นตามที่เห็นเป็นกรอบความคิดเห็นในบานหน้าต่างบทวิจารณ์ เนื่องจากโหนดนี้เป็นแบบอินไลน์และสืบทอดจากเนื้อหา คุณจึงสามารถแยกเนื้อหาจากภายในข้อความนี้ได้เช่นกัน
ความคิดเห็นจะสรุปส่วนหัว ย่อหน้าแรก และตารางในส่วนที่สอง มาแยกความคิดเห็นนี้ออกเป็นเอกสารใหม่ ตัวเลือก เป็นแบบรวม กำหนดว่าความคิดเห็นนั้นจะถูกเก็บไว้หรือละทิ้ง
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการทำเช่นนี้:
วิธีดึงข้อความจากเอกสารคือ:
เอกสาร Word สามารถประกอบด้วยอักขระควบคุมที่กำหนดองค์ประกอบพิเศษ เช่น ฟิลด์ ส่วนท้ายของเซลล์ ส่วนท้ายของส่วน เป็นต้น รายการอักขระควบคุม Word ที่เป็นไปได้ทั้งหมดถูกกำหนดไว้ในคลาส ControlChar วิธีการ Node.get_text ส่งคืนข้อความที่มีอักขระควบคุมทั้งหมดอยู่ในโหนด
การเรียก to_string จะส่งกลับการแสดงข้อความธรรมดาของเอกสารโดยไม่มีอักขระควบคุมเท่านั้น สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการส่งออกเป็นข้อความธรรมดา โปรดดูการใช้ SaveFormat.TEXT
ตัวอย่างโค้ดต่อไปนี้แสดงความแตกต่างระหว่างการเรียกเมธอด get_text และ to_string บนโหนด:
SaveFormat.Textตัวอย่างนี้จะบันทึกเอกสารดังต่อไปนี้:
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการบันทึกเอกสารในรูปแบบ TXT:
คุณอาจต้องแยกรูปภาพเอกสารเพื่อทำงานบางอย่าง Aspose.Words ให้คุณทำเช่นนี้ได้เช่นกัน
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการแยกรูปภาพจากเอกสาร:
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.