แยกข้อความจาก DOCX

ข้อมูลส่วนใหญ่จะแสดงเป็นข้อความภาพในเอกสาร รูปภาพ และบนเว็บ ดังนั้นบางครั้งการแยกข้อมูลข้อความจึงเป็นสิ่งที่จำเป็นที่สุด คุณอาจต้องแยกข้อความหรือรูปภาพจากเอกสาร Word หรือ PDF ในฐานะนักพัฒนา C# คุณสามารถแยกข้อความจากเอกสารโดยทางโปรแกรมได้อย่างง่ายดาย ในบทความนี้ คุณจะได้เรียนรู้วิธีแยกข้อความจากเอกสาร DOC หรือ DOCX โดยใช้ C#

หัวข้อต่อไปนี้จะกล่าวถึง/ครอบคลุมในบทความนี้:

C# API สำหรับการแยกข้อความ

ฉันจะใช้ GroupDocs.Parser for .NET API เพื่อแยกข้อความจากเอกสาร DOCX ช่วยให้สามารถแยกข้อความ ข้อมูลเมตา และรูปภาพจากเอกสารรูปแบบไฟล์ที่รองรับ เช่น Word, PDF, Excel และ Powerpoint นอกจากนี้ยังรองรับการแยกข้อความดิบที่มีการจัดรูปแบบและมีโครงสร้างตลอดจนข้อมูลเมตาจากไฟล์ในรูปแบบที่รองรับ

คุณสามารถ ดาวน์โหลด DLL ของ API หรือติดตั้งโดยใช้ NuGet

Install-Package GroupDocs.Parser

แยกข้อความจาก DOCX โดยใช้ C#

คุณสามารถแยกวิเคราะห์เอกสารและแยกข้อความได้อย่างง่ายดายโดยทำตามขั้นตอนง่าย ๆ ที่ระบุไว้ด้านล่าง:

  • สร้างอินสแตนซ์ของคลาส Parser
  • ระบุเส้นทางของไฟล์
  • เรียกเมธอด GetText ของคลาส Parser เพื่อแยกข้อความ
  • รับผลลัพธ์ในวัตถุคลาส TextReader
  • แสดงผลลัพธ์โดยการเรียกเมธอด ReadToEnd ของคลาส TextReader

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแยกข้อความจากไฟล์ DOCX โดยใช้ C#

// สร้างอินสแตนซ์ของคลาส Parser
Parser parser = new Parser(@"C:\Files\sample.docx");

// แยกข้อความลงในเครื่องอ่าน
using (TextReader reader = parser.GetText())
{
    // พิมพ์ข้อความจากเอกสาร
    // หากไม่รองรับการแยกข้อความ โปรแกรมอ่านจะเป็นโมฆะ
    Console.WriteLine(reader == null ? "Text extraction isn't supported" : reader.ReadToEnd());
}
แยกข้อความจาก DOCX โดยใช้ C#

แยกข้อความจาก DOCX โดยใช้ C#

คลาส Parser เป็นคลาสหลักที่มีฟังก์ชันการแยกวิเคราะห์และการแยกข้อความและรูปภาพ ฉันระบุเส้นทางไฟล์อินพุตใน ตัวสร้าง ของคลาสนี้

GetText() วิธีการของคลาส Parser แยกข้อความจากเอกสารที่ระบุ

รับข้อความที่จัดรูปแบบจาก DOCX โดยใช้ C#

คุณสามารถแยกวิเคราะห์เอกสาร Word และแยกข้อความได้อย่างง่ายดายโดยไม่สูญเสียการจัดรูปแบบสไตล์โดยทำตามขั้นตอนง่าย ๆ ที่ระบุไว้ด้านล่าง:

  • สร้างอินสแตนซ์ของคลาส Parser
  • ระบุเส้นทางของไฟล์
  • กำหนด FormattedTextOptions
  • ตั้งค่า FormattedTextMode เป็น HTML
  • เรียกเมธอด GetFormattedText ของคลาส Parser เพื่อแยกข้อความ
  • รับผลลัพธ์ในวัตถุคลาส TextReader
  • แสดงผลลัพธ์โดยการเรียกเมธอด ReadToEnd ของคลาส TextReader

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแยกข้อความที่จัดรูปแบบแล้วจากไฟล์ DOCX โดยใช้ C#

// สร้างอินสแตนซ์ของคลาส Parser
Parser parser = new Parser(@"C:\Files\sample.docx");

// แยกข้อความที่จัดรูปแบบลงในเครื่องอ่าน
using (TextReader reader = parser.GetFormattedText(new FormattedTextOptions(FormattedTextMode.Html)))
{
    // พิมพ์ข้อความที่จัดรูปแบบจากเอกสาร
    // หากไม่รองรับการแยกข้อความที่จัดรูปแบบ โปรแกรมอ่านจะเป็นค่าว่าง
    Console.WriteLine(reader == null ? "Formatted text extraction isn't suppported" : reader.ReadToEnd());
}
แยกข้อความที่จัดรูปแบบจาก DOCX โดยใช้ C#

แยกข้อความที่จัดรูปแบบจาก DOCX โดยใช้ C#

คลาส FormattedTextOptions มีตัวเลือกที่ใช้สำหรับการแยกข้อความที่มีการจัดรูปแบบ เช่น การแยก Mode ฉันตั้งค่าโหมดการแยกเป็น HTML ซึ่งจะแยกข้อความในเอกสารเป็น HTML

GetFormattedText() วิธีการของคลาส Parser แยกข้อความที่จัดรูปแบบจากเอกสารที่ระบุ

แยกข้อความที่จัดรูปแบบออกจากหน้าโดยใช้ C#

คุณสามารถแยกวิเคราะห์เอกสาร Word และแยกข้อความที่จัดรูปแบบจากหน้าเฉพาะของเอกสารได้อย่างง่ายดายโดยทำตามขั้นตอนง่าย ๆ ที่ระบุไว้ด้านล่าง:

  • สร้างอินสแตนซ์ของคลาส Parser
  • ระบุเส้นทางของไฟล์
  • ตรวจสอบว่า FormattedText เป็นจริงหรือไม่
  • เรียก GetDocumentInfo เพื่อนับจำนวนหน้า
  • ตรวจสอบว่า PageCount ไม่เป็นศูนย์
  • กำหนด FormattedTextOptions
  • ตั้งค่า FormattedTextMode เป็น HTML
  • เรียกเมธอด GetFormattedText สำหรับแต่ละดัชนีหน้าเพื่อแยกข้อความ
  • รับผลลัพธ์ในวัตถุคลาส TextReader
  • แสดงผลลัพธ์โดยการเรียกเมธอด ReadToEnd ของคลาส TextReader

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการแยกข้อความที่จัดรูปแบบจากหน้าทีละหน้าโดยใช้ C#

// สร้างอินสแตนซ์ของคลาส Parser
using (Parser parser = new Parser(@"C:\Files\sample.docx"))
{
    // ตรวจสอบว่าเอกสารรองรับการแยกข้อความที่จัดรูปแบบแล้วหรือไม่
    if (!parser.Features.FormattedText)
    {
        Console.WriteLine("Document isn't supports formatted text extraction.");
        return;
    }

    // รับข้อมูลเอกสาร
    IDocumentInfo documentInfo = parser.GetDocumentInfo();
    // ตรวจสอบว่าเอกสารมีหน้าหรือไม่
    if (documentInfo.PageCount == 0)
    {
        Console.WriteLine("Document hasn't pages.");
        return;
    }

    // ทำซ้ำบนหน้าต่างๆ
   for (int p = 0; p < documentInfo.PageCount; p++)
    {
        // พิมพ์หมายเลขหน้า 
        Console.WriteLine(string.Format("Page {0}/{1}", p + 1, documentInfo.PageCount));
        // แยกข้อความที่จัดรูปแบบลงในเครื่องอ่าน
        using (TextReader reader = parser.GetFormattedText(p, new FormattedTextOptions(FormattedTextMode.Html)))
        {
            // พิมพ์ข้อความที่จัดรูปแบบจากเอกสาร
            // เราเพิกเฉยต่อการตรวจสอบค่าว่างเนื่องจากเราได้ตรวจสอบการสนับสนุนคุณลักษณะการแยกข้อความที่จัดรูปแบบแล้วก่อนหน้านี้
            Console.WriteLine(reader.ReadToEnd());
        }
    }
}
แยกข้อความที่จัดรูปแบบออกจากหน้าโดยใช้ C#

แยกข้อความที่จัดรูปแบบออกจากหน้าโดยใช้ C#

คลาส Parser จัดเตรียมคุณสมบัติ Features ที่แสดงถึงคลาส Features สามารถใช้เพื่อตรวจสอบว่าคุณสมบัติได้รับการสนับสนุนสำหรับเอกสารหรือไม่ คุณสามารถอ่านเพิ่มเติมเกี่ยวกับคุณสมบัติที่รองรับได้ในส่วน “รับคุณสมบัติที่รองรับ

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

คุณสามารถลองใช้ API ได้โดยไม่มีข้อจำกัดในการประเมินโดยขอ ใบอนุญาตชั่วคราวฟรี

บทสรุป

ในบทความนี้ คุณได้เรียนรู้วิธีแยกข้อความจากเอกสาร Word โดยใช้ C# แล้ว คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ GroupDocs.Parser สำหรับ .NET API ได้โดยใช้ เอกสารประกอบ ในกรณีที่มีความคลุมเครือ โปรดติดต่อเราที่ ฟอรั่ม

ดูสิ่งนี้ด้วย