Cómo exportar y guardar documentos de Word en .NET
Esta guía muestra cómo exportar y guardar un documento de Word con Aspose.Words FOSS para .NET: guardar con un formato inferido o explícito, configurar opciones de guardado OOXML, exportar a Markdown, exportar a texto plano y detectar el formato de un archivo antes de convertirlo. Aspose.Words FOSS para .NET está disponible a través de NuGet o compilándolo desde el código fuente.
Guía paso a paso
Paso 1: Obtener la biblioteca
Clona el repositorio y compila Aspose.Words.sln en configuración Release, luego agrega una referencia de proyecto a Aspose.Words.csproj de tu propio proyecto .NET, como se describe en el guía de instalación. Agrega using Aspose.Words; en la parte superior de cualquier archivo que guarde documentos.
Paso 2: Guardar con un formato inferido o explícito
Document.Save(fileName) infiere el formato de destino a partir de la extensión del archivo. Save(fileName, saveFormat) hace explícito el formato independientemente de la extensión al tomar un valor de enumeración SaveFormat, y Save(fileName, saveOptions) (o las sobrecargas correspondientes de Stream) acepta una subclase SaveOptions para control específico del formato. SaveOptions.CreateSaveOptions(saveFormat) es una fábrica estática que devuelve la subclase de opciones correspondiente con sus valores predeterminados ya configurados para un SaveFormat dado. Esta edición guarda completamente tanto hacia como desde DOCX, DOCM, DOTX, DOTM y Flat OPC (más sus variantes con macros y plantillas), así como Markdown y texto plano.
Paso 3: Configurar opciones de exportación OOXML
OoxmlSaveOptions configura el guardado a cualquiera de las variantes Open XML. Su propiedad SaveFormat selecciona DOCX, DOCM, DOTX, DOTM o Flat OPC de forma específica; Password establece una contraseña de apertura en el archivo guardado, independiente de la restricción de edición de Document.Protect; Compliance elige el nivel de rigor de OOXML; y CompressionLevel / Zip64Mode controlan el empaquetado subyacente de ZIP. Construya uno con new OoxmlSaveOptions(saveFormat) o mediante SaveOptions.CreateSaveOptions(saveFormat).
Paso 4: Exportar a Markdown
MarkdownSaveOptions controla una exportación a Markdown: ListExportMode y LinkExportMode gobiernan cómo se renderizan las listas y los hipervínculos, ImagesFolder / ImagesFolderAlias controlan dónde van las imágenes extraídas y cómo se referencian, ExportImagesAsBase64 las incrusta en línea en lugar de escribir archivos separados, y TableContentAlignment afecta el marcado de tablas generado. Pase una instancia de MarkdownSaveOptions a Document.Save(fileName, saveOptions) con un nombre de archivo .md, o establezca su SaveFormat explícitamente.
Paso 5: Exportar a texto plano
TxtSaveOptions (a través de su base compartida TxtSaveOptionsBase, también utilizada por MarkdownSaveOptions) controla la exportación a texto plano: Encoding establece la codificación de caracteres, ParagraphBreak define la cadena de fin de línea, MaxCharactersPerLine envuelve líneas largas, SimplifyListLabels normaliza viñetas y números de listas a caracteres simples, y PreserveTableLayout mantiene alineadas las columnas de la tabla usando espacios.
Paso 6: Detectar un formato antes de convertir
Antes de convertir un archivo de formato desconocido, FileFormatUtil.DetectFileFormat(fileName) devuelve un FileFormatInfo con el LoadFormat detectado. Combínelo con FileFormatUtil.LoadFormatToSaveFormat(loadFormat) para verificar si ese formato puede realizar un viaje de ida y vuelta a través de los formatos admitidos por esta edición antes de invocar Document.Save. Algunos miembros de enumeración SaveFormat existen para la completitud de API, pero la edición reducida y de código abierto no implementa un lector o escritor funcional para esos formatos; manténgase en la familia DOCX/DOCM/DOTX/DOTM/Flat OPC además de Markdown y texto plano para una salida fiable.
Problemas comunes y soluciones
Save(fileName) escribe el formato incorrecto. La extensión del archivo no coincide con el formato previsto. Usa Save(fileName, saveFormat) or Save(fileName, saveOptions) para hacer explícito el formato en lugar de depender de la extensión.
El archivo OOXML guardado no se abre con una contraseña. OoxmlSaveOptions.Password no se estableció antes de guardar. Construya un OoxmlSaveOptions, establezca Password, y páselo a Save.
La exportación a Markdown dispersa archivos de imagen inesperadamente. Default MarkdownSaveOptions el comportamiento extrae imágenes a archivos separados. Establezca ExportImagesAsBase64 = true para un único archivo Markdown autocontenido, o establezca ImagesFolder para controlar dónde van las imágenes.
La exportación en texto plano pierde la alineación de columnas de la tabla. TxtSaveOptions.PreserveTableLayout se deja en su valor predeterminado. Establecer PreserveTableLayout = true antes de guardar.
Preguntas frecuentes
¿Cómo guardo en un formato específico sin importar la extensión del archivo?
Llame a Save(fileName, saveFormat) con un valor explícito de SaveFormat, o Save(fileName, saveOptions) con una subclase coincidente de SaveOptions.
¿Qué formatos hacen round-trip en ambos sentidos en esta edición?
DOCX, DOCM, DOTX, DOTM, Flat OPC (más sus variantes con macros y de plantilla), Markdown y texto plano.
¿Cómo protejo con contraseña un archivo guardado para que ni siquiera pueda abrirse?
Establezca Password en una instancia de OoxmlSaveOptions y pásela a Document.Save(fileName, saveOptions).
¿Cómo controlo los finales de línea en un archivo de texto exportado?
Establezca ParagraphBreak en una instancia de TxtSaveOptions antes de guardar.
¿Cómo verifico el formato de un archivo antes de convertirlo?
Llame a FileFormatUtil.DetectFileFormat(fileName) y lea el FileFormatInfo.LoadFormat devuelto.