การใช้งานขั้นสูงของเอกสารที่แก้ไขได้

การแนะนำ

หากคุณเป็นนักพัฒนา .NET ที่ต้องการปรับปรุงความสามารถในการแก้ไขเอกสาร GroupDocs.Editor สำหรับ .NET มีชุดเครื่องมืออันทรงพลัง คู่มือที่ครอบคลุมนี้จะแนะนำการใช้งานขั้นสูงของเอกสารที่แก้ไขได้โดยใช้ GroupDocs.Editor โดยแจกแจงรายละเอียดแต่ละขั้นตอนเพื่อให้แน่ใจว่าคุณสามารถใช้ศักยภาพของเอกสารได้อย่างเต็มที่

ข้อกำหนดเบื้องต้น

ก่อนที่จะเจาะลึกฟังก์ชันการทำงานขั้นสูง ตรวจสอบให้แน่ใจว่าคุณมีสิ่งต่อไปนี้:

นำเข้าเนมสเปซ

ในการเริ่มต้น ตรวจสอบให้แน่ใจว่าคุณนำเข้าเนมสเปซที่จำเป็นในโปรเจ็กต์ .NET ของคุณ:

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 โดยการโหลดและแก้ไขเอกสารอินพุตในรูปแบบที่รองรับ

string inputFilePath = "YourSampleDocument.docx";
Editor editor = new Editor(inputFilePath, delegate { return new WordProcessingLoadOptions(); });
EditableDocument beforeEdit = editor.Edit(new WordProcessingEditOptions());

ในขั้นตอนนี้ เราจะโหลดเอกสารอินพุตและเตรียมพร้อมสำหรับการแก้ไข

ขั้นตอนที่ 2: แยกทรัพยากรเอกสาร

ที่EditableDocument มีทรัพยากรต่าง ๆ ที่สามารถแยกและจัดการได้ มาทำลายสิ่งเหล่านี้กัน:

ขั้นตอนที่ 2.1: แยกเอกสารทั้งหมดเป็น HTML

คุณสามารถสร้างสตริงเดียวที่มีทั้งเอกสารโดยมีทรัพยากรทั้งหมดฝังอยู่เป็น HTML

string allAsHtmlInsideOneString = beforeEdit.GetEmbeddedHtml();

สตริงนี้จะค่อนข้างใหญ่เนื่องจากมีสไตล์ชีต รูปภาพ และแบบอักษรที่เข้ารหัสใน base64

ขั้นตอนที่ 2.2: แยกรูปภาพทั้งหมด

แยกรูปภาพทั้งหมดออกจากเอกสาร

List<IImageResource> allImages = beforeEdit.Images;

ขั้นตอนที่ 2.3: แยกแบบอักษรทั้งหมด

แยกแบบอักษรทั้งหมดที่ใช้ในเอกสาร

List<FontResourceBase> allFonts = beforeEdit.Fonts;

ขั้นตอนที่ 2.4: แยกสไตล์ชีททั้งหมด

แยกสไตล์ชีตทั้งหมดในรูปแบบข้อความ

List<CssText> allStylesheets = beforeEdit.Css;

ขั้นตอนที่ 2.5: รวบรวมทรัพยากรทั้งหมด

รวบรวมทรัพยากรทั้งหมดในการโทรครั้งเดียว

List<IHtmlResource> allResources = beforeEdit.AllResources;

ซึ่งรวมถึงรูปภาพ แบบอักษร และสไตล์ชีท

ขั้นตอนที่ 2.6: รับมาร์กอัป HTML

รับมาร์กอัป HTML ของเอกสารโดยไม่มีทรัพยากรแบบฝัง

string htmlMarkup = beforeEdit.GetContent();

ขั้นตอนที่ 3: การปรับลิงค์ภายนอก

บางครั้ง คุณจำเป็นต้องปรับลิงก์ภายนอกให้ชี้ไปที่ตัวจัดการทรัพยากรแบบกำหนดเอง ต่อไปนี้เป็นวิธีดำเนินการ:

ขั้นตอนที่ 3.1: เตรียมคำนำหน้าแบบกำหนดเอง

เตรียมคำนำหน้าที่จะนำหน้าลิงก์ภายนอกต้นฉบับ

string customImagesRequesthandlerUri = "http://example.com/ImagesHandler/id=";
string customCssRequesthandlerUri = "http://example.com/CssHandler/id = ";
string customFontsRequesthandlerUri = "http://example.com/FontsHandler/id=";

ขั้นตอนที่ 3.2: สร้างมาร์กอัป HTML คำนำหน้า

สร้างมาร์กอัป HTML พร้อมลิงก์ที่ปรับเปลี่ยน

string prefixedHtmlMarkup = beforeEdit.GetContent(customImagesRequesthandlerUri, customCssRequesthandlerUri);

ขั้นตอนที่ 3.3: รับเนื้อหา HTML เฉพาะเนื้อหา

โปรแกรมแก้ไขแบบ WYSIWYG บางตัวจัดการเฉพาะมาร์กอัป HTML ล้วนๆ โดยไม่มีส่วนหัว

string onlyBodyContent = beforeEdit.GetBodyContent();

ขั้นตอนที่ 3.4: คำนำหน้าเนื้อหาเฉพาะเนื้อหา

สร้างเนื้อหาเฉพาะเนื้อหาด้วยคำนำหน้ารูปภาพที่กำหนดเอง

string prefixedBodyContent = beforeEdit.GetBodyContent(customImagesRequesthandlerUri);

ขั้นตอนที่ 3.5: แยกสไตล์ชีท

แยกสไตล์ชีทที่ใช้ในเอกสาร

List<string> stylesheets = beforeEdit.GetCssContent();

ขั้นตอนที่ 3.6: คำนำหน้าสไตล์ชีต

แยกสไตล์ชีทด้วยคำนำหน้าที่กำหนดเอง

List<string> prefixedStylesheets = beforeEdit.GetCssContent(customImagesRequesthandlerUri, customFontsRequesthandlerUri);

ขั้นตอนที่ 4: บันทึกเอกสารเป็น HTML

บันทึกเอกสารที่แก้ไขเป็นไฟล์ HTML รวมถึงทรัพยากรด้วย

string htmlFilePath = Path.Combine("output", Path.GetFileNameWithoutExtension(inputFilePath) + ".html");
beforeEdit.Save(htmlFilePath);

เมธอดนี้จะสร้างไดเร็กทอรีแยกต่างหากสำหรับทรัพยากร เช่น สไตล์ชีต รูปภาพ และแบบอักษร

ขั้นตอนที่ 5: การกำจัดเอกสารที่แก้ไขได้

เอกสารที่แก้ไขได้นำไปใช้IDisposable และให้ความสามารถในการตรวจสอบว่าอินสแตนซ์ถูกกำจัดหรือไม่

Console.WriteLine("EditableDocument is {0} disposed", !beforeEdit.IsDisposed ? "not" : "already");

ขั้นตอนที่ 5.1 การจัดการเหตุการณ์การกำจัด

คุณยังสามารถสมัครรับเหตุการณ์การกำจัดได้

EventHandler someMethod = delegate { Console.WriteLine("Disposing event was spotted!"); };
beforeEdit.Disposed += someMethod;

ขั้นตอนที่ 6: การสร้างเอกสารที่แก้ไขได้จาก HTML

สร้างอินสแตนซ์ของ EditableDocument จากเอกสาร HTML

ขั้นตอนที่ 6.1: จากไฟล์ HTML

EditableDocument afterEditFromFile = EditableDocument.FromFile(htmlFilePath, null);

ขั้นตอนที่ 6.2: จากมาร์กอัป HTML

EditableDocument afterEditFromMarkup = EditableDocument.FromMarkup(htmlMarkup, allResources);

อินสแตนซ์เหล่านี้ (afterEditFromFile และ afterEditFromMarkup) จะเหมือนกับอินสแตนซ์ดั้งเดิม (beforeEdit)

ขั้นตอนที่ 7: การกำจัดด้วยตนเอง

กำจัดอินสแตนซ์ EditableDocument ของคุณด้วยตนเอง

beforeEdit.Dispose();
afterEditFromFile.Dispose();
afterEditFromMarkup.Dispose();
editor.Dispose();

สิ่งนี้ทำให้มั่นใจได้ถึงการล้างทรัพยากรอย่างเหมาะสม

บทสรุป

GroupDocs.Editor สำหรับ .NET มีเครื่องมือที่มีประสิทธิภาพสำหรับการแก้ไขเอกสารโดยทางโปรแกรม ด้วยการทำตามคำแนะนำทีละขั้นตอนนี้ คุณสามารถจัดการเนื้อหาเอกสาร ทรัพยากร และรูปแบบเอาต์พุตได้อย่างมีประสิทธิภาพ ไม่ว่าคุณจะฝังทรัพยากร ปรับลิงก์ภายนอก หรือแปลงเอกสารเป็น HTML GroupDocs.Editor จะทำให้คุณมีฟังก์ชันที่จำเป็นสำหรับการจัดการเอกสารขั้นสูง

คำถามที่พบบ่อย

GroupDocs.Editor รองรับรูปแบบใดบ้าง

GroupDocs.Editor รองรับรูปแบบต่างๆ รวมถึง DOCX, XLSX, PPTX และอื่นๆ

ฉันสามารถใช้ GroupDocs.Editor โดยไม่มีใบอนุญาตได้หรือไม่

ใช่ คุณสามารถใช้มันกับทดลองฟรี หรือกใบอนุญาตชั่วคราว.

ฉันจะแยกทรัพยากรเฉพาะออกจากเอกสารได้อย่างไร

คุณสามารถแยกรูปภาพ แบบอักษร และสไตล์ชีทได้โดยใช้วิธีการที่ให้ไว้ เช่นImages, Fonts , และCss.

เป็นไปได้หรือไม่ที่จะปรับลิงก์ในเอาต์พุต HTML?

ได้ คุณสามารถปรับลิงก์ภายนอกได้โดยการระบุคำนำหน้าแบบกำหนดเองสำหรับรูปภาพ, CSS และแบบอักษร

ฉันจะบันทึกเอกสารที่แก้ไขแล้วเป็นไฟล์ HTML ได้อย่างไร

ใช้Save วิธีการของEditableDocumentคลาสเพื่อบันทึกเอกสารเป็นไฟล์ HTML รวมถึงทรัพยากรด้วย