Como Exportar e Salvar Documentos Word em .NET

Como Exportar e Salvar Documentos Word em .NET

Este guia mostra como exportar e salvar um documento Word com Aspose.Words FOSS para .NET: salvar com um formato inferido ou explícito, configurar opções de salvamento OOXML, exportar para Markdown, exportar para texto simples e detectar o formato de um arquivo antes de convertê-lo. Aspose.Words FOSS para .NET está disponível via NuGet ou compilando a partir do código-fonte.

Guia Passo a Passo

Passo 1: Obter a Biblioteca

Clone o repositório e compile Aspose.Words.sln na configuração Release, então adicione uma referência de projeto a Aspose.Words.csproj do seu próprio projeto .NET, conforme descrito no guia de Instalação. Adicione using Aspose.Words; no topo de qualquer arquivo que salva documentos.


Passo 2: Salvar com um Formato Inferido ou Explícito

Document.Save(fileName) infere o formato de destino a partir da extensão do arquivo. Save(fileName, saveFormat) torna o formato explícito independentemente da extensão ao receber um valor enum SaveFormat, e Save(fileName, saveOptions) (ou as sobrecargas correspondentes Stream) aceita uma subclasse SaveOptions para controle específico de formato. SaveOptions.CreateSaveOptions(saveFormat) é uma fábrica estática que devolve a subclasse de opções correspondente com seus valores padrão já configurados para um determinado SaveFormat. Esta edição salva totalmente tanto para quanto de DOCX, DOCM, DOTX, DOTM e Flat OPC (além de suas variantes habilitadas para macro e de modelo), bem como Markdown e texto simples.


Etapa 3: Configurar Opções de Exportação OOXML

OoxmlSaveOptions configura a gravação para qualquer uma das variantes Open XML. Sua propriedade SaveFormat seleciona especificamente DOCX, DOCM, DOTX, DOTM ou Flat OPC; Password define uma senha de abertura no arquivo salvo, independente da restrição de edição de Document.Protect; Compliance seleciona o nível de rigor do OOXML; e CompressionLevel / Zip64Mode controlam o empacotamento subjacente ZIP. Construa um com new OoxmlSaveOptions(saveFormat) ou via SaveOptions.CreateSaveOptions(saveFormat).


Etapa 4: Exportar para Markdown

MarkdownSaveOptions controla uma exportação para Markdown: ListExportMode e LinkExportMode determinam como listas e hyperlinks são renderizados, ImagesFolder / ImagesFolderAlias controlam onde as imagens extraídas são armazenadas e como são referenciadas, ExportImagesAsBase64 as incorpora inline ao invés de gravar arquivos separados, e TableContentAlignment afeta a marcação da tabela gerada. Passe uma instância MarkdownSaveOptions para Document.Save(fileName, saveOptions) com um nome de arquivo .md, ou defina seu SaveFormat explicitamente.


Etapa 5: Exportar para Texto Simples

TxtSaveOptions (via sua base compartilhada TxtSaveOptionsBase, também usada por MarkdownSaveOptions) controla a exportação de texto simples: Encoding define a codificação de caracteres, ParagraphBreak define a cadeia de terminação de linha, MaxCharactersPerLine quebra linhas longas, SimplifyListLabels normaliza marcadores e números de listas para caracteres simples, e PreserveTableLayout mantém as colunas da tabela alinhadas usando espaços.


Etapa 6: Detectar um Formato Antes de Converter

Antes de converter um arquivo de formato desconhecido, FileFormatUtil.DetectFileFormat(fileName) devolve um FileFormatInfo com o LoadFormat detectado. Combine-o com FileFormatUtil.LoadFormatToSaveFormat(loadFormat) para verificar se esse formato pode fazer round-trip através dos formatos suportados por esta edição antes de chamar Document.Save. Alguns membros enum SaveFormat existem para a completude do API, mas a edição reduzida e de código aberto não implementa um leitor ou gravador funcional para eles; mantenha-se na família DOCX/DOCM/DOTX/DOTM/Flat OPC mais Markdown e texto simples para uma saída confiável.

Problemas Comuns e Soluções

Save(fileName) escreve no formato errado. A extensão do arquivo não corresponde ao formato pretendido. Use Save(fileName, saveFormat) or Save(fileName, saveOptions) para tornar o formato explícito em vez de depender da extensão.

O arquivo OOXML salvo não abrirá com senha. OoxmlSaveOptions.Password não foi definido antes de salvar. Construa um OoxmlSaveOptions, defina Password, e passe-o para Save.

A exportação para Markdown espalha arquivos de imagem inesperadamente. Default MarkdownSaveOptions o comportamento extrai imagens para arquivos separados. Defina ExportImagesAsBase64 = true para um único arquivo Markdown autocontido, ou defina ImagesFolder para controlar onde as imagens vão.

A exportação em texto simples perde o alinhamento das colunas da tabela. TxtSaveOptions.PreserveTableLayout é deixado no padrão. Defina PreserveTableLayout = true antes de salvar.

Perguntas Frequentes

Como salvo em um formato específico independentemente da extensão do arquivo?

Chame Save(fileName, saveFormat) com um valor explícito de SaveFormat, ou Save(fileName, saveOptions) com uma subclasse SaveOptions correspondente.

Quais formatos fazem round-trip nos dois sentidos nesta edição?

DOCX, DOCM, DOTX, DOTM, Flat OPC (mais suas variantes com macros e de modelo), Markdown e texto simples.

Como protejo um arquivo salvo com senha para que ele nem possa ser aberto?

Defina Password em uma instância OoxmlSaveOptions e passe-a para Document.Save(fileName, saveOptions).

Como controlo as terminações de linha em um arquivo de texto exportado?

Defina ParagraphBreak em uma instância TxtSaveOptions antes de salvar.

Como verifico o formato de um arquivo antes de convertê-lo?

Chame FileFormatUtil.DetectFileFormat(fileName) e leia o FileFormatInfo.LoadFormat retornado.

Ver também

 Português