کتابخونهی docx نسخهی 9.9.0: صفحهبندی دقیقاً مثل Word
خلاصهٔ کاملتر
کتابخونهی docx (یعنی ابزار محبوب جاوااسکریپت برای ساختن فایل Word با کد) نسخهی 9.9.0 رو منتشر کرده. خبر اصلیش یه entry point جدید به اسم docx/layout هست که به گفتهی سازنده، دقیقاً مثل Word حساب میکنه هر چیزی کجای صفحه قرار میگیره.
چرا این مهمه؟ تا الان شماره صفحهی فهرست مطالب، ارجاع به صفحه، فیلدهای PAGE و SECTION و شمارهی کپشنها (SEQ) رو فقط خود Word میتونست حساب کنه. برای همین Word موقع باز کردن فایل میپرسید فیلدها آپدیت بشن یا نه. حالا این مقادیر از همون اول درست نوشته میشن. docx/layout میتونه یه فایل .docx موجود رو هم بخونه، مثلاً برای پر کردن شماره صفحههای یه قالب، و لیست صفحهها و محتوای هر صفحه رو برمیگردونه. هر جا به چیزی برسه که هنوز پشتیبانی نمیکنه، یا متوقف میشه و میگه، یا اگه بخوای بهترین حدسش رو میزنه.
دامنهش خیلی گستردهست. اندازهگیری متن با کتابخونهی Pretext و جدولهای عرض فونت Word انجام میشه و متن عربی و راستبهچپ، چینی، ژاپنی، کرهای و تایلندی رو هم پوشش میده. اندازهی جدولها با autofit حساب میشه، ردیفها بین صفحهها میشکنن و هدر جدول تکرار میشه. ستونبندی، پانویس و پینویس، پیچیدن متن دور عکس، معادلات ریاضی و حالتهای سازگاری 11، 12 و 14 هم جزوشه.
برای اطمینان، تیم یه سری فایل آزمایشی همراه با PDFی که خود Word ازشون ساخته تو scripts/layout-probes نگه داشته و هر خط از هر دمو با خروجی Word مقایسه میشه.
جدا از این، کلی اصلاح دیگه هم اومده. patchDocument حالا از پانویس و پینویس پشتیبانی میکنه و با PatchType.TABLE_ROWS میشه ردیفهای یه جدول قالب رو برای هر ردیف داده تکرار کرد. SimpleField گزینهی locked گرفته و تنظیمات پانویس به section اضافه شده. یه باگ هم درست شده که LEFT و RIGHT رو تو پاراگراف راستبهچپ جابهجا میکرد، که برای فارسیزبانها خبر خوبیه.
نکات کلیدی:
- docx/layout شماره صفحهی فهرست مطالب، ارجاعها و فیلدهای PAGE، SECTION و SEQ رو مثل Word حساب میکنه.
- Word دیگه موقع باز کردن فایل درخواست آپدیت فیلدها رو نشون نمیده.
- متن راستبهچپ، عربی و زبانهای شرق آسیا پشتیبانی میشه.
- خروجی با PDFهای خود Word تو scripts/layout-probes خطبهخط مقایسه میشه.
- PatchType.TABLE_ROWS برای تکرار ردیف جدول قالب اضافه شده.




