Trabalhando com Hyphenation
Às vezes é necessário usar a hifenação para um arranjo mais compacto do texto em um documento. Ao mesmo tempo, é importante entender que as especificidades da palavra hifenação podem diferir para cada linguagem.
Atualmente, a hifenação não é usada tão frequentemente quanto costumava ser, especialmente em textos em inglês. No entanto, o uso deste recurso pode ter um impacto sério nos documentos do usuário – a hifenação afeta o layout e, como resultado, a aparência dos arquivos de saída, por exemplo, em formato PDF.
Para a separação correta das palavras, os dicionários de hifenação específicos da linguagem são usados. Aspose.Words usa algoritmos avançados para trabalhar com tais dicionários e permite que você obtenha a mesma hifenação como em Microsoft Word.
Dicionários de Hifenação
Uma vez que diferentes línguas usam diferentes normas e regras para a hifenação de palavras, a solução ideal para a hifenação correta é usar dicionários especiais. Aspose.Words usa dicionários OpenOffice.
Para verificação ortográfica, OpenOffice usa o Hunspell biblioteca de programas, que é uma generalização do algoritmo de hifenação de TeX. Este algoritmo permite a hifenação automática não padrão usando padrões de hifenação padrão concorrentes e personalizados. Hunspell usa o Hífen para a hifenação.
Algoritmo de Hifenação
Aspose.Words implementos o algoritmo de hifenização TeX e pode reutilizar dicionários de hifenação OpenOffice.
As seguintes características de Aspose.Words algoritmos devem ser levados em conta:
- Parâmetros de distância de hífen (LEFENMIN, RIGHTHYPHENMIN, COMPOUNDOFTHYPHENMIN, COMPOUNDRIGHTHYPHENMIN) especificado no dicionário de hifenação são ignorados. Aspose.Words usa seu próprio conjunto de parâmetros de distância dependendo do modo de compatibilidade do documento.
- O algoritmo de hifenação em Aspose.Words suportes hifenização composta. No entanto, Aspose.Words divide sequências de caracteres contendo caracteres alfabéticos e não-alfabéticos misturados em partes somente alfabéticas (palavras) e os hifeniza separadamente. Note que Microsoft Word A lógica da hifenação de palavras compostas depende do modo de compatibilidade de documentos.
- O algoritmo de hifenação em Aspose.Words não implementar o hifenização não padrão. Padrões não-padrão são ignorados.
Carregando Dicionários de Hifenação
Para usar o recurso de hifenação, primeiro registre um dicionário de hifenação. O exemplo de código a seguir mostra como carregar dicionários de hífen para as linguagens especificadas de um arquivo:
O exemplo de código a seguir mostra como carregar dicionários de hífen para o idioma especificado de um fluxo:
Como alternativa aos dicionários de hifenação pré-registro, é possível registrar apenas dicionários de hifenação exigidos “por solicitação”. Para alcançar isso, implementar o IHyphenationCallback interface e usar a chamada estática Callback.
O seguinte exemplo de código mostra como implementar o IHyphenationCallback interface:
Impacto da Hifenação no Layout
Ao quebrar o texto em linhas, Aspose.Words verifica cada palavra se encaixa inteiramente na linha atual. Se outra palavra é muito longa para caber no final da linha, por padrão Aspose.Words move-o para o início da próxima linha em vez de hifená-la.
No entanto, o recurso de hifenação pode ser usado em Aspose.Words inserir hífens em palavras para eliminar lacunas em texto justificado ou manter um comprimento de linha uniforme em colunas estreitas. Isso pode obviamente afetar o número de linhas e, portanto, o número de páginas. Em outras palavras, usando a função de hifenação afeta o layout do documento.
Hifenação e Justificação (H&J)
Microsoft Word tem lógica complexa para escolher um ponto de interrupção se o texto é justificado e a hifenação é ativada. Em resumo, Microsoft Word pode preferir reduzir ou esticar espaços para evitar a hifenação da linha. Provavelmente esta lógica é baseada em Artigo de Knuth.
Aspose.Words implementa seu próprio algoritmo H&J que dá o mesmo resultado que Microsoft Word e fornece a quebra de linha idêntica no documento de saída.