کار با خط کش
گاهی اوقات لازم است از خط کش برای ترتیب فشرده تر متن در یک سند استفاده شود. در عین حال، مهم است که درک کنیم که ویژگی های خط کش کلمه ممکن است برای هر زبان متفاوت باشد.
در حال حاضر، خط کش به همان اندازه که قبلا استفاده می شد، به ویژه در متون انگلیسی استفاده نمی شود. با این وجود، استفاده از این ویژگی می تواند تأثیر جدی بر اسناد کاربر داشته باشد – خط کش بر طرح و در نتیجه ظاهر فایل های خروجی، به عنوان مثال، در فرمت PDF تأثیر می گذارد.
برای تقسیم صحیح کلمات، از فرهنگ لغت های خاص زبان استفاده می شود. Aspose.Words از الگوریتم های پیشرفته برای کار با چنین دیکشنری هایی استفاده می کند و به شما اجازه می دهد همان خط کش را که در Microsoft Word وجود دارد، بدست آورید.
فرهنگ لغت های خط کش
از آنجا که زبانهای مختلف از هنجارها و قواعد مختلف برای خط کش کلمات استفاده می کنند، راه حل بهینه برای خط کش صحیح استفاده از دیکشنری های خاص است. Aspose.Words از فرهنگ لغت های OpenOffice استفاده می کند.
برای بررسی املا، OpenOffice از Hunspell کتابخانه، که یک تعمیم الگوریتم خط کش TeX است. این الگوریتم اجازه می دهد تا برای خط کش غیر استاندارد خودکار با استفاده از الگوهای خط کش استاندارد و سفارشی رقابت. Hunspell از خط کش برای خط کش.
الگوریتم خط کش
Aspose.Words اجرا می کند الگوریتم خط کش TeX و می تواند از فرهنگ لغت های OpenOffice استفاده کند.
ویژگی های زیر الگوریتم های Aspose.Words باید در نظر گرفته شود:
- پارامترهای فاصله خط کش(LEFTHYPHENMIN, RIGHTHYPHENMIN, COMPOUNDLEFTHYPHENMIN, COMPOUNDRIGHTHYPHENMIN) مشخص شده در فرهنگ لغت hyphenation نادیده گرفته می شود. Aspose.Words از مجموعه پارامترهای فاصله خود بسته به حالت سازگاری سند استفاده می کند.
- الگوریتم خط کش در Aspose.Words پشتیبانی می کند خط کش کامپوزیت. با این حال، Aspose.Words توالی های کاراکتر حاوی حروف الفبا مخلوط و غیر الفبا را به بخش های الفبا (کلمات) تقسیم می کند و آنها را به طور جداگانه خط کش می کند. توجه داشته باشید که Microsoft Word منطق خط کش کلمات ترکیبی به حالت سازگاری سند بستگی دارد.
- الگوریتم خط کش در Aspose.Words پیاده سازی نمی کند خط کش غیر استاندارد. الگوهای غیر استاندارد نادیده گرفته می شوند.
بارگذاری دیکشنری های هیفن
برای استفاده از ویژگی hyphenation، ابتدا یک فرهنگ لغت hyphenation را ثبت کنید.مثال کد زیر نشان می دهد که چگونه دیکشنری های خط کش را برای زبان های مشخص شده از یک فایل بارگذاری کنیم:
مثال کد زیر نشان می دهد که چگونه دیکشنری های خط کش را برای زبان مشخص شده از یک جریان بارگذاری کنیم:
به عنوان یک جایگزین برای پیش ثبت دیکشنری های خط کش، امکان ثبت تنها دیکشنری های خط کش مورد نیاز “به درخواست"وجود دارد. برای رسیدن به این هدف، رابط IHyphenationCallback را پیاده سازی کنید و از فراخوان استاتیک Callback استفاده کنید.
مثال کد زیر نشان می دهد که چگونه رابط IHyphenationCallback را پیاده سازی کنیم:
تاثیر خط کش روی طرح بندی
هنگام شکستن متن به خطوط، Aspose.Words هر کلمه را بررسی می کند که آیا کاملا با خط فعلی مطابقت دارد یا خیر. اگر کلمه دیگری برای قرار دادن در انتهای خط خیلی طولانی باشد، به طور پیش فرض Aspose.Words آن را به جای خط خط بعدی به ابتدای خط بعدی منتقل می کند.
با این حال، ویژگی hyphenation می تواند در Aspose.Words برای وارد کردن hyphens به کلمات برای از بین بردن شکاف در متن توجیه شده یا برای حفظ طول خط مساوی در ستون های باریک استفاده شود. این به وضوح می تواند بر تعداد خطوط و در نتیجه تعداد صفحات تاثیر بگذارد. به عبارت دیگر، استفاده از تابع خط کش بر طرح سند تأثیر می گذارد.
خط کش و توجیه (H & J)
Microsoft Word منطق پیچیده ای برای انتخاب نقطه توقف دارد اگر متن توجیه شده و خط کش فعال باشد. به طور خلاصه ،Microsoft Word ممکن است ترجیح دهد فضاها را کوچک یا کشش دهد تا از خط خط خط جلوگیری شود. احتمالا این منطق بر اساس مقاله ی “نوت”.
Aspose.Words الگوریتم H&J خود را پیاده سازی می کند که همان نتیجه را به عنوان Microsoft Word می دهد و شکستن خط یکسان را در سند خروجی فراهم می کند.