Trabalhando com Configurações de Documento
Trabalhando com Configurações de Documento
Além do conteúdo, um documento Word contém configurações de nível de aplicativo – interruptores de compatibilidade legada, preferências de hifenização, a configuração de mala direta armazenada, opções de visualização e o estado de proteção contra gravação. Aspose.Words FOSS para .NET expõe esses através do Aspose.Words.Settings namespace e um conjunto de propriedades em Document. Esta página abrange cada grupo de configurações e o que ele controla e o que não controla.
Opções de Compatibilidade
Document.CompatibilityOptions é uma instância de CompatibilityOptions que contém dezenas de interruptores booleanos que reproduzem comportamentos específicos de layout e espaçamento de versões mais antigas do Word – por exemplo GrowAutofit, UseWord2010TableStyleRules, UseWord2002TableStyleRules, AdjustLineHeightInTable, AlignTablesRowByRow, NoExtraLineSpacing, SuppressSpacingAtTopOfPage, SpacingInWholePoints, UseFELayout e BalanceSingleByteDoubleByteWidth. Defina diretamente as propriedades de que precisar para corresponder às particularidades de renderização de uma versão específica do Word em ferramentas subsequentes que leem o documento.
Preferências de Hifenização
Document.HyphenationOptions é uma instância de HyphenationOptions (AutoHyphenation, ConsecutiveHyphenLimit, HyphenateCaps, HyphenationZone) que armazena as preferências de hifenização do Word para o documento. Essas propriedades dão suporte ao ciclo completo da solicitação; como esta edição não inclui o motor de layout de página, Aspose.Words FOSS não calcula os pontos de hifenização por si — o Word os aplica ao abrir e paginar o arquivo.
Configuração de Mala Direta
Document.MailMergeSettings é uma instância MailMergeSettings que armazena a configuração de mala-directa registrada no documento: MainDocumentType, CheckErrors, Destination, DataSource, DataType, Query, ConnectString, MailSubject, MailAsAttachment, ActiveRecord e ViewMergedData, além de Clear() e Clone(). Para fontes de dados externas conectadas através do mecanismo Office Data Source Object do Word, MailMergeSettings.Odso expõe uma instância Odso (DataSource, DataSourceType, TableName, ColumnDelimiter, FirstRowContainsColumnNames) cujo FieldMapDatas (OdsoFieldMapDataCollection de OdsoFieldMapData: Name, MappedName, Column, Type) e RecipientDatas (OdsoRecipientDataCollection de OdsoRecipientData: Active, Column, Hash, UniqueTag) descrevem o mapeamento de campos e a lista de destinatários.
Configurações de Exibição do Documento
Document.ViewOptions é uma instância ViewOptions que controla como o Word exibe o arquivo quando ele é aberto: ViewType, ZoomType, ZoomPercent, DisplayBackgroundShape, DoNotDisplayPageBoundaries e FormsDesign. Essas propriedades afetam apenas a exibição do documento pelo próprio Word — não têm efeito sobre como o Aspose.Words FOSS processa o arquivo.
Proteção contra gravação
Document.WriteProtection é uma instância WriteProtection (IsWriteProtected, ReadOnlyRecommended) com SetPassword() para definir uma senha de proteção e ValidatePassword() para verificar uma senha candidata contra ela.
Unidades de Medida
O enum MeasurementUnits especifica a unidade de medida que o Word deve usar em sua interface para um documento.
Dicas e Melhores Práticas
CompatibilityOptions.OptimizeFor(MsWordVersion)está presente na classe, mas sua implementação não está completa nesta compilação — ele lançaNotImplementedException. Defina as propriedades booleanas individuaisCompatibilityOptionsde que precisa diretamente, em vez de confiar emOptimizeForpara aplicar um perfil de versão completo de uma só vez.MailMergeSettingsandOdsoarmazenar a mala direta configuration que foi registrado no documento – ler e gravar essa configuração é suportado, mas executar uma mala direta (preencher campos a partir de uma fonte de dados ao vivo) não está incluído nesta edição de código aberto.HyphenationOptionseViewOptionssão ambas preferências de exibição/UI que o próprio Word aplica — não espere que chamarDocument.Save()altere como o texto quebra ou aparece com base nessas configurações, já que esta edição não inclui o mecanismo de layout de página.- Chame
WriteProtection.SetPassword()antes de habilitarIsWriteProtectede useValidatePassword()para verificar uma senha candidata em vez de armazenar ou comparar a string bruta você mesmo. CompatibilityOptions,HyphenationOptions,MailMergeSettings,ViewOptionseWriteProtectionsão todos acessíveis diretamente a partir deDocument— não há necessidade de procurar na árvore de nós por eles.
Problemas Comuns
| Problema | Causa | Correção |
|---|---|---|
CompatibilityOptions.OptimizeFor() lança NotImplementedException | Não implementado nesta build | Defina as propriedades booleanas individuais de CompatibilityOptions em vez disso |
| Mail merge não preenche o documento com dados | MailMergeSettings apenas armazena a configuração de mesclagem; a execução não está incluída nesta edição | Leia a configuração da fonte de dados armazenada e conduza sua própria lógica de preenchimento de campos, ou use a versão comercial Aspose.Words para .NET |
Alterar ViewOptions.ZoomPercent não tem efeito visível ao processar o documento | ViewOptions afeta apenas a exibição do Word, não o próprio processamento da Aspose.Words FOSS | Comportamento esperado – nenhuma correção necessária |
WriteProtection.ValidatePassword() retorna false inesperadamente | SetPassword() não foi chamado primeiro, ou uma senha diferente foi definida | Chame SetPassword() para estabelecer a senha protegida antes de validar |
FAQ
Posso usar Aspose.Words FOSS para executar uma mala direta real?
Não. MailMergeSettings e Odso permitem que você leia e escreva a configuração de mesclagem armazenada em um documento, mas executar uma mala direta – preenchendo campos a partir de uma fonte de dados – não está incluído nesta edição de código aberto.
O CompatibilityOptions.OptimizeFor() funciona?
Não – ele gera NotImplementedException nesta compilação. Defina diretamente as propriedades individuais de CompatibilityOptions de que precisa.
Como protejo um documento com senha contra edições?
Chame WriteProtection.SetPassword() em Document.WriteProtection, então defina IsWriteProtected para habilitar a proteção.
Os HyphenationOptions e ViewOptions alteram a disposição do documento?
Não. Ambos são preferências armazenadas que o Microsoft Word aplica ao abrir e exibir o arquivo. Esta edição não inclui o mecanismo de layout de página, portanto essas configurações são repassadas sem que o Aspose.Words FOSS calcule o layout a partir delas.
API Reference Resumo
| Classe / Enum | Descrição |
|---|---|
CompatibilityOptions | Comutadores legados de layout/espaçamento da versão do Word, via Document.CompatibilityOptions |
Compatibility | Enum que nomeia as opções individuais de compatibilidade |
MsWordVersion | Valores de versão do Word usados por CompatibilityOptions.OptimizeFor() |
HyphenationOptions | Preferências de hifenização, via Document.HyphenationOptions |
MailMergeSettings | Configuração de mala direta armazenada, via Document.MailMergeSettings |
Odso | Configurações de conexão do Office Data Source Object para mala direta |
OdsoFieldMapData / OdsoFieldMapDataCollection | Mapeamento de coluna para campo de mesclagem para uma fonte de dados ODSO |
OdsoRecipientData / OdsoRecipientDataCollection | Estado de inclusão/exclusão por destinatário para uma mala direta |
ViewOptions | Preferências de exibição do Word (zoom, marcas de formatação), via Document.ViewOptions |
WriteProtection | Estado de proteção contra gravação do documento, via Document.WriteProtection |
MeasurementUnits | Unidade de medida que o Word deve usar em sua interface |