دقت چیدمان
صفحهبندی، سرصفحه و پاورقی، ستونها، جداول و تصاویر جاسازیشده همانگونه که Word انجام میدهد چیدمان میشوند، زیرا خروجی یک تصویر صفحه است نه یک تقریب HTML.
استفاده از interop آفیس بر روی یک سرور وب تصمیمی است که تیمها بهسرعت متأسف میشوند: نیاز به لایسنس دسکتاپ دارد، پردازشها را نشت میدهد، تحت همزمانی قفل میشود و مایکروسافت سالها گفته است که این کار انجام نشود. Doconut فایلهای DOC، DOCX، RTF و ODT را بهصورت بومی رندر میکند — بدون Office، بدون COM، بدون WINWORD.EXE تنها در ساعت ۴ صبح.
مشکل
خودکارسازی Office برای یک دسکتاپ با کاربر وارد شده طراحی شده بود، نه برای سرویسی که بیست درخواست همزمان را مدیریت میکند. تحت بار، قفل میشود، دیالوگها ظاهر میشوند که هیچکس نمیتواند آنها را ببندد، و پردازشها تا زمانی که سرور حافظهاش تمام شود، درخواستها را ادامه میدهند.
مسئله لایسنسها هم بهتر نیست: سروری که اسناد را برای کاربران متعدد رندر میکند به لایسنسهای دسکتاپ نیاز دارد که هرگز منظورشان نبوده است.
رندر بومی از تمام این موارد عبور میکند. Doconut فایل را باز میکند، چیدمان میکند و تصاویر صفحه را درونفرآیند تولید میکند. هیچ برنامه دوم برای نصب، نظارت یا لایسنسگذاری وجود ندارد.
قابلیتها
صفحهبندی، سرصفحه و پاورقی، ستونها، جداول و تصاویر جاسازیشده همانگونه که Word انجام میدهد چیدمان میشوند، زیرا خروجی یک تصویر صفحه است نه یک تقریب HTML.
.doc، .docx، .docm، .dot، .dotx، .dotm، .rtf، .odt، .ott و .xml همگی از طریق همان فراخوانی باز میشوند.
رندر از قلمهای نصبشده بر روی سرور شما استفاده میکند، بنابراین ظاهر سند بهویژه به استقرار شما وابسته است نه به ماشینی که خواننده استفاده میکند.
یک تصویر صفحه تغییرات ردیابیشده، متن حذفشده، نظرات یا متادیتای نویسنده را حمل نمیکند. ارسال تصاویر بهجای DOCX کاهش معناداری در نشت اطلاعات است.
با افزونه AdvancedSearch، جستجو بر روی متن سند انجام میشود، نه بر روی تصویر آن.
با افزونه Converter، متد DocumentConverter.ConvertAsync() PDF یا سایر هدفها را در همان فرآیند تولید میکند — مفید زمانی که نیاز به بایگانی است نه فقط نمایش.
ادغام
توجه داشته باشید که .xml توسط رندر Word و WordConfig پردازش میشود. این یک نمایشگر عمومی XML نیست — وجود آن به این دلیل است که فرمت XML خود Word در آن مسیر قرار میگیرد.
پسوندهای پشتیبانیشده
// Identical to every other format — the family is detected from the document
string token = await viewer.OpenDocumentAsync("wwwroot/files/Agreement.docx");
// With the Converter plugin, when the requirement is a PDF for the archive
await DocumentConverter.ConvertAsync(
"wwwroot/files/Agreement.docx",
"wwwroot/archive/Agreement.pdf");جزئیات
خیر. رندر بومی است. هیچ نصب Office، هیچ اسمبلی interop و هیچ فرآیند خودکارسازی برای نظارت وجود ندارد.
صفحهبندی و چیدمان در سمت سرور بازتولید میشوند، بنابراین نتیجه بهدقت مطابقت دارد به شرطی که قلمهای ارجاعشده توسط سند بر روی میزبان رندر نصب شده باشند. قلمهای گمشده جایگزین میشوند و این جایگزینی است که باعث تغییر چیدمان میشود.
صفحه رندر شده سند را همانگونه که چیدمان شده است نشان میدهد، نه متادیتای بازنگری پشت آن. در واقع این یک ویژگی است — بازبینها بهطور معمول فایلهای DOCX حاوی متن حذفشده که فکر میکردند از بین رفته است را ارسال میکنند.
یک مجوز موقت چند دقیقه زمان میبرد تا درخواست شود و بهصورت کامل بر روی دستگاه شما اجرا میشود. فایلهایی که مهم هستند، همان فایلهایی هستند که در حال حاضر نمایشگر فعلی شما را خراب میکنند.