Uso avançado de documentos editáveis

Introdução

Se você é um desenvolvedor .NET e deseja aprimorar seus recursos de edição de documentos, o GroupDocs.Editor for .NET oferece um poderoso conjunto de ferramentas. Este guia abrangente orientará você no uso avançado de documentos editáveis usando o GroupDocs.Editor, detalhando cada etapa para garantir que você possa aproveitar todo o seu potencial.

Pré-requisitos

Antes de mergulhar nas funcionalidades avançadas, certifique-se de ter o seguinte:

  • Visual Studio instalado em sua máquina de desenvolvimento.
  • .NET Framework compatível com GroupDocs.Editor.
  • Biblioteca GroupDocs.Editor para .NET. Você podebaixe aqui.
  • Uma licença válida do GroupDocs.Editor. Você pode obter umteste grátis ou compre umlicença temporária.

Importar namespaces

Para começar, certifique-se de importar os namespaces necessários em seu projeto .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;

Etapa 1: Criando uma instância EditableDocument

Primeiro, você precisa criar uma instância deEditableDocument carregando e editando um documento de entrada de um formato suportado.

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

Nesta etapa, carregamos o documento de entrada e o preparamos para edição.

Etapa 2: Extraindo Recursos de Documentos

OEditableDocument contém vários recursos que podem ser extraídos e manipulados. Vamos decompô-los:

Etapa 2.1: Extraia o documento inteiro como HTML

Você pode gerar uma única string que contém o documento inteiro com todos os seus recursos incorporados como HTML.

string allAsHtmlInsideOneString = beforeEdit.GetEmbeddedHtml();

Essa string será bem grande, pois inclui folhas de estilo, imagens e fontes codificadas em base64.

Etapa 2.2: extrair todas as imagens

Extraia todas as imagens do documento.

List<IImageResource> allImages = beforeEdit.Images;

Etapa 2.3: extrair todas as fontes

Extraia todas as fontes usadas no documento.

List<FontResourceBase> allFonts = beforeEdit.Fonts;

Etapa 2.4: extrair todas as folhas de estilo

Extraia todas as folhas de estilo em formato textual.

List<CssText> allStylesheets = beforeEdit.Css;

Etapa 2.5: Reúna todos os recursos

Reúna todos os recursos em uma chamada.

List<IHtmlResource> allResources = beforeEdit.AllResources;

Isso inclui imagens, fontes e folhas de estilo.

Etapa 2.6: Obtenha a marcação HTML

Obtenha a marcação HTML do documento sem recursos incorporados.

string htmlMarkup = beforeEdit.GetContent();

Às vezes, você precisa ajustar links externos para apontar para um manipulador de recursos personalizado. Veja como fazer isso:

Etapa 3.1: preparar prefixos personalizados

Prepare prefixos que precederão links externos originais.

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

Etapa 3.2: Gerar marcação HTML prefixada

Gere marcação HTML com links ajustados.

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

Etapa 3.3: Obtenha conteúdo HTML somente para o corpo

Alguns editores WYSIWYG lidam apenas com marcação HTML pura, sem cabeçalhos.

string onlyBodyContent = beforeEdit.GetBodyContent();

Etapa 3.4: Conteúdo somente corpo prefixado

Gere conteúdo somente de corpo com prefixos de imagem personalizados.

string prefixedBodyContent = beforeEdit.GetBodyContent(customImagesRequesthandlerUri);

Etapa 3.5: Extrair folhas de estilo

Extraia folhas de estilo usadas no documento.

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

Etapa 3.6: Folhas de estilo prefixadas

Extraia folhas de estilo com prefixos personalizados.

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

Etapa 4: salvar o documento como HTML

Salve o documento editado como um arquivo HTML, incluindo seus recursos.

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

Este método cria um diretório separado para recursos como folhas de estilo, imagens e fontes.

Etapa 5: Descarte de EditableDocument

Implementos EditableDocumentIDisposable e fornece a capacidade de verificar se a instância foi descartada.

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

Etapa 5.1 Tratamento do evento Dispose

Você também pode se inscrever no evento de descarte.

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

Etapa 6: Criando EditableDocument a partir de HTML

Crie uma instância de EditableDocument a partir de um documento HTML.

Etapa 6.1: do arquivo HTML

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

Etapa 6.2: Da marcação HTML

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

Essas instâncias (afterEditFromFile e afterEditFromMarkup) são idênticas às originais (beforeEdit).

Etapa 7: descarte manual

Descarte manualmente suas instâncias de EditableDocument.

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

Isso garante a limpeza adequada dos recursos.

Conclusão

GroupDocs.Editor for .NET fornece ferramentas robustas para edição de documentos programaticamente. Seguindo este guia passo a passo, você pode gerenciar com eficiência o conteúdo, os recursos e os formatos de saída do documento. Esteja você incorporando recursos, ajustando links externos ou convertendo documentos em HTML, o GroupDocs.Editor fornece a funcionalidade necessária para manipulação avançada de documentos.

Perguntas frequentes

Quais formatos o GroupDocs.Editor suporta?

GroupDocs.Editor suporta vários formatos, incluindo DOCX, XLSX, PPTX e muito mais.

Posso usar o GroupDocs.Editor sem licença?

Sim, você pode usá-lo com umteste grátis ou umlicença temporária.

Como extraio recursos específicos de um documento?

Você pode extrair imagens, fontes e folhas de estilo usando os métodos fornecidos, comoImages, Fonts , eCss.

Sim, você pode ajustar links externos especificando prefixos personalizados para imagens, CSS e fontes.

Como salvo um documento editado como um arquivo HTML?

Use oSave método doEditableDocumentclass para salvar o documento como um arquivo HTML, incluindo seus recursos.