ดึงสื่อจากเอกสาร Word
วิธีการดึงข้อความ รูปภาพ และข้อมูลเมตาจากเอกสาร Word ใน .NET
การดึงข้อความ รูปภาพ และข้อมูลเมตาจากเอกสาร Word เป็นสิ่งสำคัญสำหรับการวิเคราะห์และประมวลผลเอกสาร ด้วย Aspose.Words for .NET นักพัฒนาสามารถเรียกคืนเนื้อหาและคุณสมบัติของเอกสารได้อย่างมีโปรแกรมสำหรับกรณีการใช้งานที่หลากหลาย เช่น การจัดทำดัชนี การเก็บถาวร หรือการแปลงเนื้อหา
ข้อกำหนดเบื้องต้น
- ติดตั้ง .NET SDK.
- เพิ่มแพ็คเกจ Aspose.Words NuGet:
dotnet add package Aspose.Words
- เตรียมเอกสาร Word (
document.docx
) ที่มีข้อความ รูปภาพ และข้อมูลเมตา
คู่มือทีละขั้นตอนในการดึงเนื้อหาจากไฟล์ Word
1. โหลดเอกสาร Word
using System;
using Aspose.Words;
class Program
{
static void Main()
{
// ขั้นตอนที่ 1: โหลดเอกสาร Word
string filePath = "document.docx";
Document doc = new Document(filePath);
// ขั้นตอนที่ 2, 3, และ 4 จะถูกเพิ่มด้านล่าง
}
}
คำอธิบาย: โค้ดนี้โหลดเอกสาร Word ที่ระบุเข้าไปในหน่วยความจำเพื่อการประมวลผลต่อไป
2. ดึงข้อความจากเอกสาร
using System;
using Aspose.Words;
class Program
{
static void Main()
{
string filePath = "document.docx";
Document doc = new Document(filePath);
// ขั้นตอนที่ 2: ดึงข้อความ
string text = doc.GetText();
Console.WriteLine("ข้อความที่ดึงออกมา: " + text);
// ขั้นตอนที่ 3 และ 4 จะถูกเพิ่มด้านล่าง
}
}
คำอธิบาย: โค้ดนี้ดึงเนื้อหาข้อความทั้งหมดจากเอกสาร Word ที่โหลดและพิมพ์ลงในคอนโซล
3. ดึงข้อมูลเมตาจากเอกสาร
using System;
using Aspose.Words;
class Program
{
static void Main()
{
string filePath = "document.docx";
Document doc = new Document(filePath);
string text = doc.GetText();
Console.WriteLine("ข้อความที่ดึงออกมา: " + text);
// ขั้นตอนที่ 3: ดึงข้อมูลเมตา
Console.WriteLine("ชื่อเรื่อง: " + doc.BuiltInDocumentProperties.Title);
Console.WriteLine("ผู้เขียน: " + doc.BuiltInDocumentProperties.Author);
Console.WriteLine("วันที่สร้าง: " + doc.BuiltInDocumentProperties.CreatedTime);
// ขั้นตอนที่ 4 จะถูกเพิ่มด้านล่าง
}
}
คำอธิบาย: โค้ดนี้ดึงและพิมพ์ชื่อเรื่อง ผู้เขียน และวันที่สร้างข้อมูลเมตาจากเอกสาร Word
4. ดึงรูปภาพจากเอกสาร
using System;
using Aspose.Words;
class Program
{
static void Main()
{
string filePath = "document.docx";
Document doc = new Document(filePath);
string text = doc.GetText();
Console.WriteLine("ข้อความที่ดึงออกมา: " + text);
Console.WriteLine("ชื่อเรื่อง: " + doc.BuiltInDocumentProperties.Title);
Console.WriteLine("ผู้เขียน: " + doc.BuiltInDocumentProperties.Author);
Console.WriteLine("วันที่สร้าง: " + doc.BuiltInDocumentProperties.CreatedTime);
// ขั้นตอนที่ 4: ดึงรูปภาพ
int imageCount = 0;
foreach (var shape in doc.GetChildNodes(NodeType.Shape, true))
{
if (shape is Shape { HasImage: true } imageShape)
{
string imageFilePath = $"Image_{++imageCount}.png";
imageShape.ImageData.Save(imageFilePath);
Console.WriteLine($"บันทึกรูปภาพ: {imageFilePath}");
}
}
Console.WriteLine("การดึงเนื้อหาสำเร็จเสร็จสิ้น");
}
}
คำอธิบาย: โค้ดนี้ดึงรูปภาพทั้งหมดจากเอกสาร Word และบันทึกเป็นไฟล์ PNG ในโฟลเดอร์โปรเจกต์
5. ทดสอบโซลูชัน
- ตรวจสอบให้แน่ใจว่า
document.docx
อยู่ในโฟลเดอร์โปรเจกต์ - รันโปรแกรมและตรวจสอบ:
- ข้อความที่ดึงออกมาในผลลัพธ์ของคอนโซล
- รายละเอียดข้อมูลเมตาที่พิมพ์
- รูปภาพที่ดึงออกมาถูกบันทึกในโฟลเดอร์โปรเจกต์
วิธีการติดตั้งและรันบนแพลตฟอร์มหลัก
Windows
- ติดตั้ง .NET runtime และติดตั้งแอปพลิเคชัน
- ทดสอบแอปพลิเคชันโดยการรันผ่านบรรทัดคำสั่ง
Linux
- ติดตั้ง .NET runtime
- ใช้คำสั่งในเทอร์มินัลเพื่อเรียกใช้แอปพลิเคชันหรือโฮสต์บนเซิร์ฟเวอร์
macOS
- รันแอปพลิเคชันโดยใช้ Kestrel หรือติดตั้งบนบริการคลาวด์
ปัญหาทั่วไปและวิธีแก้ไข
- รูปภาพไม่ถูกดึงออก:
- ตรวจสอบว่าเอกสารมีรูปภาพที่ฝังอยู่และไม่ใช่รูปภาพที่เชื่อมโยงจากภายนอก
- ข้อมูลเมตาหาย:
- ตรวจสอบว่าเอกสารมีคุณสมบัติข้อมูลเมตา เช่น ชื่อเรื่องหรือผู้เขียนตั้งค่าไว้
- การประมวลผลไฟล์ขนาดใหญ่:
- ใช้แนวทางที่ประหยัดหน่วยความจำ เช่น การประมวลผลเฉพาะส่วนของเอกสาร
ด้วยคู่มือนี้ คุณสามารถดึงเนื้อหาที่มีค่าออกจากเอกสาร Word โดยใช้ Aspose.Words for .NET ได้อย่างมีโปรแกรม