Trabajando con la Configuración del Documento
Trabajando con la configuración del documento
Más allá del contenido, un documento de Word lleva configuraciones a nivel de aplicación – interruptores de compatibilidad heredados, preferencias de guionado, la configuración de combinación de correspondencia almacenada, opciones de vista y estado de protección contra escritura. Aspose.Words FOSS para .NET expone estos a través del Aspose.Words.Settings espacio de nombres y un puñado de propiedades en Document. Esta página cubre cada grupo de configuraciones y lo que controla y lo que no controla.
Opciones de compatibilidad
Document.CompatibilityOptions es una instancia de CompatibilityOptions que contiene docenas de conmutadores booleanos que reproducen comportamientos específicos de diseño y espaciado de versiones antiguas de Word — por ejemplo GrowAutofit, UseWord2010TableStyleRules, UseWord2002TableStyleRules, AdjustLineHeightInTable, AlignTablesRowByRow, NoExtraLineSpacing, SuppressSpacingAtTopOfPage, SpacingInWholePoints, UseFELayout y BalanceSingleByteDoubleByteWidth. Establece directamente las propiedades que necesites para coincidir con las particularidades de renderizado de una versión específica de Word en las herramientas posteriores que leen el documento.
Preferencias de guionado
Document.HyphenationOptions es una instancia de HyphenationOptions (AutoHyphenation, ConsecutiveHyphenLimit, HyphenateCaps, HyphenationZone) que almacena las preferencias de guionado de Word para el documento. Estas propiedades realizan un viaje de ida y vuelta de la solicitud; debido a que esta edición no incluye el motor de maquetación, Aspose.Words FOSS no calcula por sí mismo los cortes de guionado — Word los aplica al abrir y paginar el archivo.
Configuración de combinación de correspondencia
Document.MailMergeSettings es una instancia MailMergeSettings que almacena la configuración de combinación de correspondencia registrada en el documento: MainDocumentType, CheckErrors, Destination, DataSource, DataType, Query, ConnectString, MailSubject, MailAsAttachment, ActiveRecord y ViewMergedData, además de Clear() y Clone(). Para fuentes de datos externas conectadas mediante el mecanismo Office Data Source Object de Word, MailMergeSettings.Odso expone una instancia Odso (DataSource, DataSourceType, TableName, ColumnDelimiter, FirstRowContainsColumnNames) cuyo FieldMapDatas (OdsoFieldMapDataCollection de OdsoFieldMapData: Name, MappedName, Column, Type) y RecipientDatas (OdsoRecipientDataCollection de OdsoRecipientData: Active, Column, Hash, UniqueTag) describen el mapeo de campos y la lista de destinatarios.
Configuración de vista del documento
Document.ViewOptions es una instancia ViewOptions que controla cómo Word muestra el archivo cuando se abre: ViewType, ZoomType, ZoomPercent, DisplayBackgroundShape, DoNotDisplayPageBoundaries y FormsDesign. Estas propiedades solo afectan la visualización del documento por parte de Word; no tienen ningún efecto en cómo Aspose.Words FOSS procesa el documento.
Protección de escritura
Document.WriteProtection es una instancia WriteProtection (IsWriteProtected, ReadOnlyRecommended) con SetPassword() para establecer una contraseña de protección y ValidatePassword() para comprobar una contraseña candidata contra ella.
Unidades de medida
El enum MeasurementUnits especifica la unidad de medida que Word debe usar en su interfaz para un documento.
Consejos y mejores prácticas
CompatibilityOptions.OptimizeFor(MsWordVersion)está presente en la clase pero su implementación no está completa en esta compilación – lanzaNotImplementedException. Establezca las propiedades booleanas individualesCompatibilityOptionsque necesite directamente en lugar de depender deOptimizeForpara aplicar todo un perfil de versión a la vez.MailMergeSettingsandOdsoalmacenar la combinación de correspondencia configuration que se registró en el documento – la lectura y escritura de esa configuración está soportada, pero la ejecución de una combinación de correspondencia (poblado de campos a partir de una fuente de datos en vivo) no está incluida en esta edición de código abierto.HyphenationOptionsyViewOptionsson ambas preferencias de visualización/UI que Word aplica por sí mismo – no espere que llamar aDocument.Save()cambie cómo el texto se ajusta o aparece según estas configuraciones, ya que esta edición no incluye el motor de maquetación de página.- Llame a
WriteProtection.SetPassword()antes de habilitarIsWriteProtected, y useValidatePassword()para verificar una contraseña candidata en lugar de almacenar o comparar la cadena cruda usted mismo. CompatibilityOptions,HyphenationOptions,MailMergeSettings,ViewOptionsyWriteProtectionson accesibles directamente desdeDocument– no es necesario buscar en el árbol de nodos para encontrarlos.
Problemas comunes
| Problema | Causa | Solución |
|---|---|---|
CompatibilityOptions.OptimizeFor() lanza NotImplementedException | No implementado en esta compilación | Establezca en su lugar las propiedades booleanas individuales de CompatibilityOptions |
| Mail merge no rellena el documento con datos | MailMergeSettings solo almacena la configuración de combinación; la ejecución no está incluida en esta edición | Lea la configuración de origen de datos almacenada y dirija su propia lógica de población de campos, o utilice la versión comercial Aspose.Words para .NET |
Cambiar ViewOptions.ZoomPercent no tiene efecto visible al procesar el documento | ViewOptions solo afecta la visualización de Word, no el procesamiento propio de Aspose.Words FOSS | Comportamiento esperado – no se necesita solución |
WriteProtection.ValidatePassword() devuelve false inesperadamente | SetPassword() no se llamó primero, o se estableció una contraseña diferente | Llame a SetPassword() para establecer la contraseña protegida antes de validar |
FAQ
¿Puedo usar Aspose.Words FOSS para ejecutar una combinación de correspondencia real?
No. MailMergeSettings y Odso le permiten leer y escribir la configuración de combinación almacenada en un documento, pero ejecutar una combinación de correspondencia – poblar campos a partir de una fuente de datos – no está incluido en esta edición de código abierto.
¿Funciona CompatibilityOptions.OptimizeFor()?
No – genera NotImplementedException en esta compilación. En su lugar, establezca directamente las propiedades CompatibilityOptions individuales que necesite.
¿Cómo protejo con contraseña un documento contra ediciones?
Llame a WriteProtection.SetPassword() en Document.WriteProtection, luego establezca IsWriteProtected para habilitar la protección.
¿HyphenationOptions y ViewOptions cambian la forma en que se dispone el documento?
No. Ambos son preferencias almacenadas que Microsoft Word aplica al abrir y mostrar el archivo. Esta edición no incluye el motor de maquetación de páginas, por lo que estas configuraciones se transmiten sin que Aspose.Words FOSS calcule por sí mismo el diseño a partir de ellas.
API Reference Resumen
| Clase / Enumeración | Descripción |
|---|---|
CompatibilityOptions | Conmutadores de diseño/espaciado de versiones heredadas de Word, mediante Document.CompatibilityOptions |
Compatibility | Enumeración que nombra las opciones de compatibilidad individuales |
MsWordVersion | Valores de versión de Word utilizados por CompatibilityOptions.OptimizeFor() |
HyphenationOptions | Preferencias de guionado, mediante Document.HyphenationOptions |
MailMergeSettings | Configuración de combinación de correspondencia almacenada, a través de Document.MailMergeSettings |
Odso | Configuración de conexión del Office Data Source Object para la combinación de correspondencia |
OdsoFieldMapData / OdsoFieldMapDataCollection | Asignación de columna a campo de combinación para una fuente de datos ODSO |
OdsoRecipientData / OdsoRecipientDataCollection | Estado de inclusión/exclusión por destinatario para una combinación de correspondencia |
ViewOptions | Preferencias de visualización de Word (zoom, marcas de formato), a través de Document.ViewOptions |
WriteProtection | Estado de protección contra escritura del documento, a través de Document.WriteProtection |
MeasurementUnits | Unidad de medida que Word debe usar en su interfaz |