Wyodrębnianie obrazów z DOCX – Zaawansowane użycie edytowalnych dokumentów
Jeśli jesteś programistą .NET, który chce wyodrębnić obrazy z DOCX i zwiększyć możliwości edycji dokumentów, GroupDocs.Editor for .NET oferuje potężny zestaw narzędzi. Ten kompleksowy przewodnik przeprowadzi Cię przez zaawansowane użycie edytowalnych dokumentów przy użyciu GroupDocs.Editor, szczegółowo opisując każdy krok, abyś mógł w pełni wykorzystać jego potencjał.
Szybkie odpowiedzi
- Jak mogę wyodrębnić obrazy z pliku DOCX? Użyj
EditableDocument.Imagespo załadowaniu dokumentu przy pomocyEditor. - Czy mogę konwertować DOCX do HTML z osadzonymi zasobami? Tak — wywołaj
EditableDocument.GetEmbeddedHtml()lubGetContent()aby uzyskać znacznik HTML. - Jaką metodą zapisać edytowany dokument jako HTML?
EditableDocument.Save(htmlFilePath)tworzy plik HTML z folderem zasobów. - Czy można wyodrębnić czcionki z dokumentu Word? Użyj
EditableDocument.Fonts, aby pobrać wszystkie zasoby czcionek. - Czy potrzebna jest licencja do użytku produkcyjnego? Wymagana jest ważna licencja GroupDocs.Editor; dostępna jest darmowa wersja próbna.
Czym jest extract images from docx?
Wyodrębnianie obrazów z pliku DOCX oznacza programowe pobieranie każdego obrazu osadzonego w dokumencie Word, aby móc go ponownie używać, modyfikować lub przechowywać osobno. GroupDocs.Editor udostępnia kolekcję Images w instancji EditableDocument, co upraszcza to zadanie.
Dlaczego warto używać GroupDocs.Editor w tym przepływie pracy?
- Pełna kontrola nad zasobami dokumentu (obrazy, czcionki, CSS) bez ręcznego obsługiwania ZIP.
- Bezproblemowa konwersja z DOCX do HTML przy zachowaniu układu i stylizacji.
- Łatwe wyodrębnianie zasobów dla niestandardowej obsługi obrazów, osadzania czcionek lub dostarczania przez CDN.
- Solidny wzorzec zwalniania zapewnia brak wycieków pamięci w długotrwale działających usługach.
Wymagania wstępne
- Visual Studio zainstalowane na Twoim komputerze deweloperskim.
- .NET Framework kompatybilny z GroupDocs.Editor.
- Biblioteka GroupDocs.Editor for .NET. Możesz ją pobrać tutaj.
- Ważna licencja GroupDocs.Editor. Możesz uzyskać darmową wersję próbną lub zakupić tymczasową licencję.
Importowanie przestrzeni nazw
Aby rozpocząć, upewnij się, że importujesz niezbędne przestrzenie nazw w swoim projekcie .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());
W tym kroku ładujemy dokument wejściowy i przygotowujemy go do edycji.
Jak wyodrębnić obrazy z DOCX?
Poniżej zagłębiamy się w możliwości wyodrębniania zasobów, zaczynając od najczęstszej potrzeby — pobrania wszystkich obrazów z pliku Word.
Krok 2: Wyodrębnianie zasobów dokumentu
EditableDocument zawiera różne zasoby, które można wyodrębnić i manipulować nimi. Rozbijmy je na części:
Krok 2.1: Wyodrębnienie całego dokumentu jako HTML
Możesz wygenerować pojedynczy ciąg znaków zawierający cały dokument ze wszystkimi zasobami osadzonymi jako 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ębnienie wszystkich obrazów (główne słowo kluczowe w akcji)
Wyodrębnij wszystkie obrazy z dokumentu — jest to sedno extract images from docx.
List<IImageResource> allImages = beforeEdit.Images;
Krok 2.3: Wyodrębnienie wszystkich czcionek (drugorzędne słowo kluczowe)
Jeśli potrzebujesz także wyodrębnić czcionki z word, użyj następującego wywołania:
List<FontResourceBase> allFonts = beforeEdit.Fonts;
Krok 2.4: Wyodrębnienie wszystkich arkuszy stylów
Wyodrębnij wszystkie arkusze stylów w formacie tekstowym.
List<CssText> allStylesheets = beforeEdit.Css;
Krok 2.5: Zgromadzenie wszystkich zasobów
Zgromadź wszystkie zasoby w jednym wywołaniu.
List<IHtmlResource> allResources = beforeEdit.AllResources;
To obejmuje obrazy, czcionki i arkusze stylów.
Krok 2.6: Uzyskanie znacznika HTML
Uzyskaj znacznik HTML dokumentu bez osadzonych zasobów.
string htmlMarkup = beforeEdit.GetContent();
Jak konwertować docx do html z niestandardową obsługą?
Czasami trzeba dostosować zewnętrzne linki, aby wskazywały na własne obsługujące je zasoby.
Krok 3: Dostosowywanie zewnętrznych linków
Krok 3.1: Przygotowanie niestandardowych prefiksów
Przygotuj prefiksy, które będą poprzedzać oryginalne zewnętrzne linki.
string customImagesRequesthandlerUri = "http://example.com/ImagesHandler/id=";
string customCssRequesthandlerUri = "http://example.com/CssHandler/id=";
string customFontsRequesthandlerUri = "http://example.com/FontsHandler/id=";
Krok 3.2: Generowanie znacznika HTML z prefiksami
Wygeneruj znacznik HTML z dostosowanymi linkami.
string prefixedHtmlMarkup = beforeEdit.GetContent(customImagesRequesthandlerUri, customCssRequesthandlerUri);
Krok 3.3: Uzyskanie treści HTML tylko z ciałem
Niektóre edytory WYSIWYG obsługują wyłącznie czysty znacznik HTML bez nagłówków.
string onlyBodyContent = beforeEdit.GetBodyContent();
Krok 3.4: Treść tylko z ciałem z prefiksami
Wygeneruj treść tylko z ciałem z niestandardowymi prefiksami obrazów.
string prefixedBodyContent = beforeEdit.GetBodyContent(customImagesRequesthandlerUri);
Krok 3.5: Wyodrębnienie arkuszy stylów
Wyodrębnij arkusze stylów użyte w dokumencie.
List<string> stylesheets = beforeEdit.GetCssContent();
Krok 3.6: Arkusze stylów z prefiksami
Wyodrębnij arkusze stylów z niestandardowymi prefiksami.
List<string> prefixedStylesheets = beforeEdit.GetCssContent(customImagesRequesthandlerUri, customFontsRequesthandlerUri);
Jak zapisać dokument jako html poprawnie?
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 osobny katalog dla zasobów, takich jak arkusze stylów, obrazy i czcionki.
Krok 5: Zwalnianie EditableDocument
EditableDocument implementuje IDisposable i umożliwia sprawdzenie, czy instancja została zwolniona.
Console.WriteLine("EditableDocument is {0} disposed", !beforeEdit.IsDisposed ? "not" : "already");
Krok 5.1 Obsługa zdarzenia Dispose
Możesz także subskrybować zdarzenie zwalniania.
EventHandler someMethod = delegate { Console.WriteLine("Disposing event was spotted!"); };
beforeEdit.Disposed += someMethod;
Krok 6: Tworzenie EditableDocument z HTML
Utwórz instancję EditableDocument z dokumentu HTML.
Krok 6.1: Z pliku HTML
EditableDocument afterEditFromFile = EditableDocument.FromFile(htmlFilePath, null);
Krok 6.2: Z znacznika HTML
EditableDocument afterEditFromMarkup = EditableDocument.FromMarkup(htmlMarkup, allResources);
Te instancje (afterEditFromFile i afterEditFromMarkup) są identyczne jak oryginalna (beforeEdit).
Krok 7: Ręczne zwalnianie
Ręcznie zwolnij swoje instancje EditableDocument.
beforeEdit.Dispose();
afterEditFromFile.Dispose();
afterEditFromMarkup.Dispose();
editor.Dispose();
Zapewnia to prawidłowe czyszczenie zasobów.
Typowe problemy i rozwiązania
- Obrazy nie pojawiają się po wyodrębnieniu: Upewnij się, że dokument rzeczywiście zawiera osadzone obrazy i że odwołujesz się do
beforeEdit.Imagespo wywołaniuEdit. - Brak czcionek w wyjściu HTML: Upewnij się, że wywołujesz
GetCssContent(customImagesRequesthandlerUri, customFontsRequesthandlerUri), aby poprawnie osadzić adresy URL czcionek. - Duże ciągi HTML powodujące obciążenie pamięci: Użyj
GetContent()dla znacznika bez osadzonych zasobów i serwuj obrazy/CSS z osobnych plików.
Najczęściej zadawane pytania
P: Jakie formaty obsługuje GroupDocs.Editor?
O: GroupDocs.Editor obsługuje DOCX, XLSX, PPTX oraz wiele innych popularnych formatów biurowych.
P: Czy mogę używać GroupDocs.Editor bez licencji?
O: Tak, możesz używać go z darmową wersją próbną lub tymczasową licencją.
P: Jak wyodrębnić konkretne zasoby z dokumentu?
O: Użyj kolekcji Images, Fonts i Css w instancji EditableDocument.
P: Czy można dostosować linki w wyjściu HTML?
O: Tak, przekaż niestandardowe prefiksy URI do GetContent lub GetBodyContent, aby przepisac linki do obrazów, CSS i czcionek.
P: Jak zapisać edytowany dokument jako plik HTML?
O: Wywołaj metodę Save na instancji EditableDocument, podając ścieżkę pliku kończącą się na .html.
Ostatnia aktualizacja: 2026-03-14
Testowano z: GroupDocs.Editor for .NET (najnowsze wydanie)
Autor: GroupDocs