Lucrul cu Cratimare

Uneori este necesar să se utilizeze cratimarea pentru un aranjament mai compact al textului într-un document. În același timp, este important să înțelegem că specificul cratimării cuvintelor poate diferi pentru fiecare limbă.

În prezent, cratimarea nu este folosită la fel de des ca înainte, în special în textele în limba engleză. Cu toate acestea, utilizarea acestei caracteristici poate avea un impact grav asupra documentelor utilizatorului – cratimarea afectează aspectul și, ca urmare, apariția fișierelor de ieșire, de exemplu, în format PDF.

Pentru împărțirea corectă a cuvintelor, se folosesc dicționare de cratimare specifice limbii. Aspose.Words folosește algoritmi avansați pentru a lucra cu astfel de dicționare și vă permite să obțineți aceeași cratimă ca în Microsoft Word.

Dicționare De Cratimare

Deoarece diferite limbi folosesc norme și reguli diferite pentru cratimarea cuvintelor, soluția optimă pentru cratimarea corectă este utilizarea dicționarelor speciale. Aspose.Words folosește OpenOffice dicționare.

Pentru verificarea ortografică, OpenOffice folosește Hunspell bibliotecă, care este o generalizare a algoritmului de cratimare al lui TeX. Acest algoritm permite separarea automată non-standard folosind modele de separare standard și personalizate concurente. Hunspell folosește Cratimă pentru cratimare.

Algoritmul De Cratimare

Aspose.Words implementează algoritmul de cratimare TeX și poate reutiliza OpenOffice dicționare de cratimă.

Următoarele caracteristici ale algoritmilor Aspose.Words ar trebui luate în considerare:

  • Parametrii distanței de cratimare (LEFTHYPHENMIN, RIGHTHYPHENMIN, COMPOUNDLEFTHYPHENMIN, COMPOUNDRIGHTHYPHENMIN) specificate în dicționarul de cratimare sunt ignorate. Aspose.Words folosește propriul set de parametri de distanță în funcție de modul de compatibilitate a documentului.
  • Algoritmul de cratimare în Aspose.Words susține cratimare compusă. Cu toate acestea, Aspose.Words împarte secvențele de caractere care conțin caractere alfabetice și non-alfabetice mixte în părți (cuvinte) numai alfabetice și le cratimează separat. Rețineți că Microsoft Word logica de cratimare a cuvintelor compuse depinde de modul de compatibilitate a documentelor.
  • Algoritmul de cratimare din Aspose.Words nu implementează cratimare nestandardizată. Modelele Non-standard sunt ignorate.

Se Încarcă Dicționare De Cratimare

Pentru a utiliza caracteristica de cratimare, înregistrați mai întâi un dicționar de cratimare.Următorul exemplu de cod arată cum să încărcați dicționare de cratimă pentru limbile specificate dintr-un fișier:

Următorul exemplu de cod arată cum să încărcați dicționarele de cratimă pentru limba specificată dintr-un flux:

Ca alternativă la preînregistrarea dicționarelor de cratimare, este posibil să se înregistreze numai dicționarele de cratimare necesare “la cerere”. Pentru a realiza acest lucru, implementați interfața IHyphenationCallback și utilizați apelul invers static Callback.

Următorul exemplu de cod arată cum să implementați interfața IHyphenationCallback:

Impactul Cratimării asupra aspectului

Când împărțiți textul în linii, Aspose.Words verifică fiecare cuvânt dacă se potrivește în întregime în linia curentă. Dacă un alt cuvânt este prea lung pentru a se potrivi la sfârșitul liniei, implicit Aspose.Words îl mută la începutul liniei următoare în loc să-l cratimeze.

Cu toate acestea, caracteristica de cratimă poate fi utilizată în Aspose.Words pentru a insera cratime în cuvinte pentru a elimina golurile din textul justificat sau pentru a menține o lungime uniformă a liniei în coloane înguste. Acest lucru poate afecta în mod evident numărul de linii și, prin urmare, numărul de pagini. Cu alte cuvinte, utilizarea funcției de cratimare afectează aspectul documentului.

Cratimare și justificare (H&J)

Microsoft Word are o logică complexă pentru alegerea unui punct de întrerupere dacă textul este justificat și cratima este activată. Pe scurt, Microsoft Word poate prefera să micșoreze sau să întindă spațiile pentru a evita cratimarea liniilor. Cel mai probabil această logică se bazează pe Articolul lui Knuth.

Aspose.Words implementează propriul algoritm H & J care dă același rezultat ca Microsoft Word și oferă o rupere identică a liniei în documentul de ieșire.

Vezi Și