ดึงรูปภาพจาก DOCX – การใช้งานเอกสารที่แก้ไขได้ขั้นสูง
หากคุณเป็นนักพัฒนา .NET ที่ต้องการ extract images from DOCX และเพิ่มศักยภาพการแก้ไขเอกสารของคุณ GroupDocs.Editor สำหรับ .NET มีชุดเครื่องมือที่ทรงพลัง คู่มือฉบับสมบูรณ์นี้จะพาคุณผ่านการใช้งานเอกสารที่แก้ไขได้ขั้นสูงด้วย GroupDocs.Editor โดยแยกแต่ละขั้นตอนอย่างละเอียดเพื่อให้คุณใช้ประโยชน์เต็มที่
คำตอบด่วน
- ฉันจะดึงรูปภาพจากไฟล์ DOCX ได้อย่างไร? ใช้
EditableDocument.Imagesหลังจากโหลดเอกสารด้วยEditor. - ฉันสามารถแปลง DOCX เป็น HTML พร้อมทรัพยากรที่ฝังอยู่ได้หรือไม่? ได้—เรียก
EditableDocument.GetEmbeddedHtml()หรือGetContent()เพื่อรับ markup HTML. - เมธอดใดที่บันทึกเอกสารที่แก้ไขเป็น HTML?
EditableDocument.Save(htmlFilePath)จะสร้างไฟล์ HTML พร้อมโฟลเดอร์ทรัพยากร - สามารถดึงฟอนต์จากเอกสาร Word ได้หรือไม่? ใช้
EditableDocument.Fontsเพื่อดึงทรัพยากรฟอนต์ทั้งหมด - ฉันต้องมีไลเซนส์สำหรับการใช้งานในโปรดักชันหรือไม่? จำเป็นต้องมีไลเซนส์ GroupDocs.Editor ที่ถูกต้อง; มีการทดลองใช้ฟรี
extract images from docx คืออะไร?
การดึงรูปภาพจากไฟล์ DOCX หมายถึงการดึงรูปภาพแต่ละรูปที่ฝังอยู่ในเอกสาร Word อย่างโปรแกรมมิ่ง เพื่อให้คุณสามารถนำกลับมาใช้ใหม่ แก้ไข หรือเก็บแยกออกได้ GroupDocs.Editor เปิดเผยคอลเลกชัน Images บนอินสแตนซ์ EditableDocument ทำให้งานนี้ง่ายขึ้น
ทำไมต้องใช้ GroupDocs.Editor สำหรับเวิร์กโฟลว์นี้?
- การควบคุมเต็มรูปแบบ ของทรัพยากรเอกสาร (รูปภาพ, ฟอนต์, CSS) โดยไม่ต้องจัดการ ZIP ด้วยตนเอง.
- การแปลงอย่างไร้รอยต่อ จาก DOCX ไปเป็น HTML พร้อมคงรูปแบบและสไตล์.
- การดึงทรัพยากรอย่างง่าย สำหรับการจัดการรูปภาพแบบกำหนดเอง, ฝังฟอนต์, หรือการส่งมอบผ่าน CDN.
- รูปแบบการทำลายที่แข็งแรง รับประกันว่าไม่มีการรั่วของหน่วยความจำในบริการที่ทำงานเป็นเวลานาน.
ข้อกำหนดเบื้องต้น
- ติดตั้ง Visual Studio บนเครื่องพัฒนาของคุณ.
- .NET Framework ที่เข้ากันได้กับ GroupDocs.Editor.
- ไลบรารี GroupDocs.Editor สำหรับ .NET คุณสามารถ ดาวน์โหลดได้ที่นี่.
- ไลเซนส์ GroupDocs.Editor ที่ถูกต้อง คุณสามารถรับ การทดลองใช้ฟรี หรือซื้อ ไลเซนส์ชั่วคราว.
นำเข้า Namespaces
To begin, ensure you import the necessary namespaces in your .NET project:
using System;
using System.Collections.Generic;
using System.IO;
using GroupDocs.Editor.HtmlCss.Resources;
using GroupDocs.Editor.HtmlCss.Resources.Fonts;
using GroupDocs.Editor.HtmlCss.Resources.Images;
using GroupDocs.Editor.HtmlCss.Resources.Textual;
using GroupDocs.Editor.Options;
ขั้นตอนที่ 1: การสร้างอินสแตนซ์ EditableDocument
First, you need to create an instance of EditableDocument by loading and editing an input document of a supported format.
string inputFilePath = "YourSampleDocument.docx";
Editor editor = new Editor(inputFilePath, delegate { return new WordProcessingLoadOptions(); });
EditableDocument beforeEdit = editor.Edit(new WordProcessingEditOptions());
ในขั้นตอนนี้ เราโหลดเอกสารอินพุตและเตรียมพร้อมสำหรับการแก้ไข.
วิธีการ extract images from DOCX?
Below we dive into the resource extraction capabilities, starting with the most common need—getting all images out of a Word file.
ขั้นตอนที่ 2: การดึงทรัพยากรของเอกสาร
The EditableDocument contains various resources that can be extracted and manipulated. Let’s break these down:
ขั้นตอน 2.1: ดึงเอกสารทั้งหมดเป็น HTML
You can generate a single string that contains the entire document with all its resources embedded as HTML.
string allAsHtmlInsideOneString = beforeEdit.GetEmbeddedHtml();
สตริงนี้จะค่อนข้างใหญ่เนื่องจากรวม stylesheet, รูปภาพ, และฟอนต์ที่เข้ารหัสเป็น base64.
ขั้นตอน 2.2: ดึงรูปภาพทั้งหมด (primary keyword in action)
List<IImageResource> allImages = beforeEdit.Images;
ขั้นตอน 2.3: ดึงฟอนต์ทั้งหมด (secondary keyword)
หากคุณต้องการ extract fonts from word ด้วย ให้ใช้คำเรียกต่อไปนี้:
List<FontResourceBase> allFonts = beforeEdit.Fonts;
ขั้นตอน 2.4: ดึง Stylesheets ทั้งหมด
ดึง Stylesheets ทั้งหมดในรูปแบบข้อความ.
List<CssText> allStylesheets = beforeEdit.Css;
ขั้นตอน 2.5: รวบรวมทรัพยากรทั้งหมด
รวบรวมทรัพยากรทั้งหมดด้วยการเรียกครั้งเดียว.
List<IHtmlResource> allResources = beforeEdit.AllResources;
ซึ่งรวมถึงรูปภาพ, ฟอนต์, และ Stylesheets.
ขั้นตอน 2.6: รับ HTML Markup
รับ HTML markup ของเอกสารโดยไม่มีทรัพยากรที่ฝังอยู่.
string htmlMarkup = beforeEdit.GetContent();
วิธีการ convert docx to html ด้วยการจัดการแบบกำหนดเอง?
บางครั้งคุณอาจต้องปรับลิงก์ภายนอกให้ชี้ไปยังตัวจัดการทรัพยากรของคุณเอง.
ขั้นตอนที่ 3: การปรับลิงก์ภายนอก
ขั้นตอน 3.1: เตรียม Prefix ที่กำหนดเอง
เตรียม prefix ที่จะต่อหน้าลิงก์ภายนอกเดิม.
string customImagesRequesthandlerUri = "http://example.com/ImagesHandler/id=";
string customCssRequesthandlerUri = "http://example.com/CssHandler/id=";
string customFontsRequesthandlerUri = "http://example.com/FontsHandler/id=";
ขั้นตอน 3.2: สร้าง HTML Markup ที่มี Prefix
สร้าง HTML markup พร้อมลิงก์ที่ปรับแล้ว.
string prefixedHtmlMarkup = beforeEdit.GetContent(customImagesRequesthandlerUri, customCssRequesthandlerUri);
ขั้นตอน 3.3: รับเนื้อหา HTML เฉพาะ Body
บาง WYSIWYG editor จะจัดการเฉพาะ HTML markup ที่ไม่มีส่วนหัว.
string onlyBodyContent = beforeEdit.GetBodyContent();
ขั้นตอน 3.4: เนื้อหา Body‑Only ที่มี Prefix
สร้างเนื้อหาเฉพาะ body พร้อม prefix รูปภาพที่กำหนดเอง.
string prefixedBodyContent = beforeEdit.GetBodyContent(customImagesRequesthandlerUri);
ขั้นตอน 3.5: ดึง Stylesheets
ดึง Stylesheets ที่ใช้ในเอกสาร.
List<string> stylesheets = beforeEdit.GetCssContent();
ขั้นตอน 3.6: Stylesheets ที่มี Prefix
ดึง Stylesheets พร้อม prefix ที่กำหนดเอง.
List<string> prefixedStylesheets = beforeEdit.GetCssContent(customImagesRequesthandlerUri, customFontsRequesthandlerUri);
วิธีการ save document as html อย่างถูกต้อง?
ขั้นตอนที่ 4: บันทึกเอกสารเป็น HTML
Save the edited document as an HTML file, including its resources.
string htmlFilePath = Path.Combine("output", Path.GetFileNameWithoutExtension(inputFilePath) + ".html");
beforeEdit.Save(htmlFilePath);
เมธอดนี้จะสร้างไดเรกทอรีแยกสำหรับทรัพยากร เช่น stylesheets, รูปภาพ, และฟอนต์.
ขั้นตอนที่ 5: การทำลาย EditableDocument
EditableDocument implements IDisposable and provides the ability to check if the instance is disposed.
Console.WriteLine("EditableDocument is {0} disposed", !beforeEdit.IsDisposed ? "not" : "already");
ขั้นตอน 5.1 การจัดการเหตุการณ์ Dispose
คุณยังสามารถสมัครรับเหตุการณ์ disposing ได้.
EventHandler someMethod = delegate { Console.WriteLine("Disposing event was spotted!"); };
beforeEdit.Disposed += someMethod;
ขั้นตอนที่ 6: การสร้าง EditableDocument จาก HTML
Create an instance of EditableDocument from an HTML document.
ขั้นตอน 6.1: จากไฟล์ HTML
EditableDocument afterEditFromFile = EditableDocument.FromFile(htmlFilePath, null);
ขั้นตอน 6.2: จาก HTML Markup
EditableDocument afterEditFromMarkup = EditableDocument.FromMarkup(htmlMarkup, allResources);
อินสแตนซ์เหล่านี้ (afterEditFromFile และ afterEditFromMarkup) จะเหมือนกับต้นฉบับ (beforeEdit).
ขั้นตอนที่ 7: การทำลายด้วยตนเอง
Manually dispose of your EditableDocument instances.
beforeEdit.Dispose();
afterEditFromFile.Dispose();
afterEditFromMarkup.Dispose();
editor.Dispose();
ซึ่งจะทำให้การทำความสะอาดทรัพยากรเป็นไปอย่างเหมาะสม.
ปัญหาที่พบบ่อยและวิธีแก้
- รูปภาพไม่แสดงหลังการดึง: ตรวจสอบว่าเอกสารมีรูปภาพฝังอยู่จริงและคุณกำลังเข้าถึง
beforeEdit.ImagesหลังจากเรียกEdit. - ฟอนต์หายไปในผลลัพธ์ HTML: ตรวจสอบว่าคุณเรียก
GetCssContent(customImagesRequesthandlerUri, customFontsRequesthandlerUri)เพื่อฝัง URL ของฟอนต์อย่างถูกต้อง. - สตริง HTML ขนาดใหญ่ทำให้ความดันหน่วยความจำ: ใช้
GetContent()สำหรับ markup ที่ไม่มีทรัพยากรฝังอยู่และให้บริการรูปภาพ/CSS จากไฟล์แยก.
คำถามที่พบบ่อย
Q: GroupDocs.Editor รองรับรูปแบบไฟล์อะไรบ้าง?
A: GroupDocs.Editor รองรับ DOCX, XLSX, PPTX, และรูปแบบสำนักงานยอดนิยมอื่น ๆ อีกหลายรูปแบบ.
Q: ฉันสามารถใช้ GroupDocs.Editor ได้โดยไม่มีไลเซนส์หรือไม่?
A: ใช่, คุณสามารถใช้ได้ด้วย การทดลองใช้ฟรี หรือ ไลเซนส์ชั่วคราว.
Q: ฉันจะดึงทรัพยากรเฉพาะจากเอกสารได้อย่างไร?
A: ใช้คอลเลกชัน Images, Fonts, และ Css บนอินสแตนซ์ EditableDocument.
Q: สามารถปรับลิงก์ในผลลัพธ์ HTML ได้หรือไม่?
A: ได้, ส่ง prefix URI ที่กำหนดเองไปยัง GetContent หรือ GetBodyContent เพื่อเขียนลิงก์รูปภาพ, CSS, และฟอนต์ใหม่.
Q: ฉันจะบันทึกเอกสารที่แก้ไขเป็นไฟล์ HTML อย่างไร?
A: เรียกเมธอด Save บนอินสแตนซ์ EditableDocument โดยระบุเส้นทางไฟล์ที่ลงท้ายด้วย .html.
อัปเดตล่าสุด: 2026-03-14
ทดสอบกับ: GroupDocs.Editor สำหรับ .NET (รุ่นล่าสุด)
ผู้เขียน: GroupDocs