Zaawansowane wykorzystanie edytowalnych dokumentów

Wstęp

Jeśli jesteś programistą .NET i chcesz ulepszyć swoje możliwości edycji dokumentów, GroupDocs.Editor dla .NET oferuje potężny zestaw narzędzi. Ten obszerny przewodnik przeprowadzi Cię przez zaawansowane korzystanie z edytowalnych dokumentów przy użyciu programu GroupDocs.Editor, szczegółowo opisując każdy krok, aby upewnić się, że możesz wykorzystać jego pełny potencjał.

Warunki wstępne

Zanim zagłębisz się w zaawansowane funkcje, upewnij się, że posiadasz następujące elementy:

Importuj przestrzenie nazw

Na początek upewnij się, że zaimportowałeś niezbędne przestrzenie nazw do projektu .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;

Krok 1: Tworzenie instancji EditableDocument

Najpierw musisz utworzyć instancjęEditableDocument ładując i edytując dokument wejściowy w obsługiwanym formacie.

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

Na tym etapie ładujemy dokument wejściowy i przygotowujemy go do edycji.

Krok 2: Wyodrębnianie zasobów dokumentów

TheEditableDocument zawiera różne zasoby, które można wydobywać i manipulować. Podzielmy je na części:

Krok 2.1: Wyodrębnij cały dokument jako HTML

Można wygenerować pojedynczy ciąg znaków zawierający cały dokument ze wszystkimi zasobami osadzonymi w formacie HTML.

string allAsHtmlInsideOneString = beforeEdit.GetEmbeddedHtml();

Ten ciąg będzie dość duży, ponieważ zawiera arkusze stylów, obrazy i czcionki zakodowane w base64.

Krok 2.2: Wyodrębnij wszystkie obrazy

Wyodrębnij wszystkie obrazy z dokumentu.

List<IImageResource> allImages = beforeEdit.Images;

Krok 2.3: Wyodrębnij wszystkie czcionki

Wyodrębnij wszystkie czcionki użyte w dokumencie.

List<FontResourceBase> allFonts = beforeEdit.Fonts;

Krok 2.4: Wyodrębnij wszystkie arkusze stylów

Wyodrębnij wszystkie arkusze stylów w formacie tekstowym.

List<CssText> allStylesheets = beforeEdit.Css;

Krok 2.5: Zbierz wszystkie zasoby

Zbierz wszystkie zasoby w jednym połączeniu.

List<IHtmlResource> allResources = beforeEdit.AllResources;

Dotyczy to obrazów, czcionek i arkuszy stylów.

Krok 2.6: Uzyskaj znaczniki HTML

Uzyskaj znaczniki HTML dokumentu bez osadzonych zasobów.

string htmlMarkup = beforeEdit.GetContent();

Krok 3: Dostosowywanie linków zewnętrznych

Czasami trzeba dostosować linki zewnętrzne, aby wskazywały niestandardową procedurę obsługi zasobów. Oto jak to zrobić:

Krok 3.1: Przygotuj niestandardowe prefiksy

Przygotuj przedrostki, które będą dołączane do oryginalnych linków zewnętrznych.

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

Krok 3.2: Wygeneruj prefiksowane znaczniki HTML

Wygeneruj znaczniki HTML z dostosowanymi linkami.

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

Krok 3.3: Uzyskaj treść HTML zawierającą wyłącznie treść

Niektóre edytory WYSIWYG obsługują tylko czyste znaczniki HTML bez nagłówków.

string onlyBodyContent = beforeEdit.GetBodyContent();

Krok 3.4: Treść zawierająca tylko treść z prefiksem

Generuj samą treść z niestandardowymi przedrostkami obrazów.

string prefixedBodyContent = beforeEdit.GetBodyContent(customImagesRequesthandlerUri);

Krok 3.5: Wyodrębnij arkusze stylów

Wyodrębnij arkusze stylów użyte w dokumencie.

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

Krok 3.6: Przedrostki arkuszy stylów

Wyodrębnij arkusze stylów z niestandardowymi przedrostkami.

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

Krok 4: Zapisz dokument jako HTML

Zapisz edytowany dokument jako plik HTML wraz z jego zasobami.

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

Ta metoda tworzy oddzielny katalog dla zasobów, takich jak arkusze stylów, obrazy i czcionki.

Krok 5: Pozbycie się edytowalnego dokumentu

Implementacje EditableDocumentIDisposable i zapewnia możliwość sprawdzenia, czy instancja została usunięta.

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

Krok 5.1 Obsługa zdarzenia Dispose

Możesz także zapisać się na wydarzenie utylizacji.

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

Krok 6: Tworzenie edytowalnego dokumentu z HTML

Utwórz instancję EditableDocument z dokumentu HTML.

Krok 6.1: Z pliku HTML

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

Krok 6.2: Ze znaczników HTML

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

Te instancje (afterEditFromFile i afterEditFromMarkup) są identyczne z oryginałem (przed Edit).

Krok 7: Ręczna utylizacja

Ręcznie usuń instancje EditableDocument.

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

Zapewnia to właściwe oczyszczenie zasobów.

Wniosek

GroupDocs.Editor dla .NET zapewnia niezawodne narzędzia do programowej edycji dokumentów. Postępując zgodnie z tym szczegółowym przewodnikiem, możesz efektywnie zarządzać zawartością dokumentu, zasobami i formatami wyjściowymi. Niezależnie od tego, czy osadzasz zasoby, dostosowujesz linki zewnętrzne, czy konwertujesz dokumenty do formatu HTML, GroupDocs.Editor zapewnia funkcjonalność potrzebną do zaawansowanej manipulacji dokumentami.

Często zadawane pytania

Jakie formaty obsługuje GroupDocs.Editor?

GroupDocs.Editor obsługuje różne formaty, w tym DOCX, XLSX, PPTX i inne.

Czy mogę używać GroupDocs.Editor bez licencji?

Tak, możesz go używać zbezpłatna wersja próbna lublicencja tymczasowa.

Jak wyodrębnić określone zasoby z dokumentu?

Możesz wyodrębnić obrazy, czcionki i arkusze stylów, korzystając z dostarczonych metod, takich jakImages, Fonts , ICss.

Czy można dostosować linki w wynikach HTML?

Tak, możesz dostosować linki zewnętrzne, określając niestandardowe przedrostki obrazów, CSS i czcionek.

Jak zapisać edytowany dokument jako plik HTML?

UżyjSave metodaEditableDocumentclass, aby zapisać dokument jako plik HTML wraz z jego zasobami.