
یکپارچهسازی SDKهای نمایشگر سند با ذخیرهسازی ابری و پلتفرمهای همکاری

چرا نمایش سند بومی ابری برای برنامههای مدرن .NET مهم است
سازگاری چندپلتفرمی با یک هسته .NET واحد
شرکتها از ابزارهای سندی فقط دسکتاپی دور میشوند و به تجربههای وب‑اولویتدار که روی ویندوز اجرا میشوند، روی میآورند. موتور رندر سمت سرور Doconut بر روی .NET 6 و بالاتر اجرا میشود و خروجی پیکسل‑پرفکتی را صرفنظر از سیستمعامل زیرین تضمین میکند. چون نمایشگر با جریانها کار میکند، میتوانید فایلی را از هر bucket ابری بگیرید، مستقیماً به کامپوننت Doconut بدهید و صفحات یا تصویرهای کوچک رندر شده را بدون نوشتن فایل روی دیسک به کلاینت بازگردانید.
کاهش تأخیر و پهنای باند
هنگامی که سندی در Azure Blob Storage قرار دارد، دانلود کل فایل به کلاینت فقط برای مشاهدهٔ صفحهٔ اول تأخیر غیرضروری ایجاد میکند. Doconut از تولید تصویر کوچک بر‑تقاضا پشتیبانی میکند و به شما اجازه میدهد ابتدا پیشنمایش با وضوح پایین درخواست کنید و رندر صفحهٔ کامل را فقط زمانی که کاربر اسکرول میکند، دریافت کنید. این الگو بهویژه برای نقشههای CAD بزرگ (DWG، DXF) که میتوانند صدها مگابایت باشند، ارزشمند است.
پردازش با اولویت امنیت
تمام کارهای سنگین بر روی سرور میمانند. با استفاده از قابلیتهای پردازش سمت سرور Doconut، PDFهای محرمانه، قراردادهای قانونی یا سوابق پزشکی را داخل VNet خصوصی یا پشت فایروال شرکتی نگه میدارید. هیچ سرویس SaaS شخص ثالثی فراخوانی نمیشود و نمایشگر هرگز بایتهای خام را به موتور سمت مرورگر نمیفرستد—فقط کاشیهای تصویر یا قطعههای HTML که پشت صحنه تولید میکنید.
اتصال Doconut به سرویسهای محبوب ذخیرهسازی ابری
رویکرد کلی یکپارچهسازی
- دریافت جریان سند — از SDK ارائهدهنده ابری انتخابی خود (Azure Blob، Amazon S3، Google Cloud Storage) برای دانلود فایل به یک شیء
Streamاستفاده کنید. - ارسال جریان به Doconut — نمایشگر Doconut یک جریان را به همراه گزینههای رندر اختیاری میپذیرد. این کار نیاز به فایلهای موقت بر روی سرور وب را از بین میبرد.
- تولید توکن نمایشگر — Doconut توکنی برمیگرداند که بهطور یکتا سند باز شده را برای جلسه جاری شناسایی میکند. این توکن میتواند بهصورت JSON به فرانتاند بازگردانده شود و برای درخواستهای رندر صفحه یا حاشیهنویسی بعدی استفاده شود.
- رندر صفحات بهصورت درخواستشده — فرانتاند با توکن و شماره صفحه موردنظر به نقطه انتهایی Doconut فراخوانی میکند؛ Doconut یک تصویر یا قطعه HTML را بهصورت جریان باز میگرداند.
از آنجا که جریان کار فقط بر روی جریانها وابسته است، تعویض کد Azure با Amazon S3 یا Google Cloud Storage تنها نیاز به تغییر فراخوانی cloud‑SDK دارد که جریان را ایجاد میکند؛ بقیهٔ مسیر Doconut همانگونه باقی میماند.
مدیریت ذخیرهسازی چندمستاجری
در یک DMS SaaS، هر مستاجر ممکن است یک bucket یا پیشوند جداگانه داشته باشد. از آنجا که Doconut با جریانها کار میکند، میتوانید bucket صحیح را در زمان اجرا شناسایی کنید، سند را باز کنید و توکن را به ادعای کاربر فعلی محدود کنید. کش داخلی Doconut (IDistributedCache) میتواند بهگونهای پیکربندی شود که از Redis یا Azure Cache for Redis استفاده کند، بهطوری که درخواستهای مکرر برای همان صفحه از حافظه سرویسگیری کنند نه اینکه دوباره رندر شوند.
فعالسازی حاشیهنویسی زمان واقعی و OCR در جریانهای کاری همکاریمحور
افزونه حاشیهنویسی: تبدیل یک نمایشگر ثابت به یک مرکز بازبینی
Doconut همراه با Annotation Plugin میآید که به کاربران اجازه میدهد متن را برجسته کنند، یادداشتهای چسبان اضافه کنند یا اشکال آزاد رسم کنند. پس از باز شدن سند، یک مدیر حاشیهنویسی را از نمایشگر دریافت میکنید، اشیای حاشیهنویسی را اضافه یا اصلاح میکنید و وضعیت حاشیهنویسی را بهصورت XML ذخیره مینمایید. ذخیرهٔ XML همراه با رکورد سند، تاریخچههای بازبینی نسخهبندیشده را امکانپذیر میکند و بارگذاری XML در بازگشاییهای بعدی، وضعیت بصری دقیق را بازمیگرداند.
جستجوی مبتنی بر OCR برای PDFهای اسکنشده
قراردادها، رسیدها یا تصاویر پزشکی اسکنشده اغلب بهصورت PDFهای فقط‑تصویری میآیند. Search Plugin Doconut بهصورت خودکار OCR را بر روی سرور اجرا میکند وقتی آن را در پیکربندی نمایشگر فعال کنید. موتور OCR درون استک سمت سرور قرار دارد، بنابراین متن استخراجشده هرگز از محیط محافظتشده شما خارج نمیشود. پس از اتمام OCR، میتوانید API جستجو را فراخوانی کنید تا شماره صفحات مطابقتدار و مستطیلهای محدودکننده را دریافت کنید، که UI میتواند آنها را برجسته کند. از آنجا که OCR بر روی سرور اجرا میشود، میتوانید متن استخراجشده را در Azure Cognitive Search، Elasticsearch یا هر سرویس جستجوی دیگری ایندکس کنید تا جستجوی کامل متن بهصورت آنی در تمام مخزن شما فراهم شود.
همکاری از طریق توکنهای اشتراکی
در ادغامهای Teams یا SharePoint، معمولاً یک توکن کوتاهمدت تولید میکنید که شناسه سند، مجوزهای کاربر و یک زمانمهر را رمزگذاری میکند. رشتهٔ توکن Doconut که از فراخوانی OpenDocument برمیگردد میتواند در یک JWT بستهبندی شود یا در یک ورودی کش ذخیره شود. وقتی کاربر دیگری بر لینک اشتراکی کلیک میکند، همان توکن برای بازسازی نمایشگر استفاده میشود و حاشیهنویسیها و لایههای OCR را برای همهٔ افراد حفظ میکند.
تبدیل امن سمت سرور و چاپ کنترلشده با Doconut
بسیاری از شرکتها نیاز دارند فایلهای Word، Excel یا CAD ورودی را به PDF برای بایگانی تبدیل کنند یا سیاست «چاپ فقط در صورت تأیید» را اعمال کنند. Converter Plugin Doconut این سناریوها را بدون نیاز به Microsoft Office یا سرویسهای شخص ثالث مدیریت میکند. شما API تبدیل را بر روی سرور فراخوانی میکنید و مسیر فایل منبع (یا جریان) و قالب خروجی موردنظر را میگذارید. تبدیل بهصورت کامل در بکاند اجرا میشود و PDF تولید میکند که میتواند در مخزن سند شما ذخیره شود.
پس از وجود PDF، میتوانید Controlled Printing را مستقیماً در UI نمایشگر فعال کنید. Doconut یک متد برای تنظیم مجوزهای چاپ برای توکن سند خاصی ارائه میدهد. وقتی کاربر دکمه چاپ را میکشد، Doconut پرچم را بررسی میکند و یا یک جریان تصویر قابل چاپ رندر میکند یا پیام دوستانه «چاپ غیرفعال است» را برمیگرداند. این رویکرد نیاز به JavaScript سفارشی برای مسدود کردن دیالوگ چاپ مرورگر را از بین میبرد.
حسابرسی فعالیت چاپ
از آنجا که درخواست چاپ از طریق میدلویر Doconut عبور میکند، میتوانید به خط لولهٔ لاگگیری ASP.NET Core متصل شوید تا ثبت کنید چه کسی چه چیزی و چه زمانی چاپ کرده است. ورودی حسابرسی را در یک جدول SQL ذخیره کنید یا به یک سیستم SIEM برای گزارشگیری انطباقی ارسال کنید — که برای فناوری حقوقی یا راهحلهای بهداشتی که هر دسترسی به سند باید قابل ردیابی باشد، حیاتی است.
بهترین شیوهها برای مقیاسپذیری و عملکرد در محیطهای چندپلتفرمی
- استفاده از کش توزیعشده — کش داخلی صفحه‑Tile Doconut میتواند توسط Redis، Azure Cache یا هر پیادهسازی
IDistributedCacheپشتیبانی شود. هش نسخه سند را در کلیدهای کش بگنجانید تا از ارائه تصاویر منقضی پس از تبدیل جلوگیری شود. - استفاده از کارهای پسزمینه برای تبدیل دستهای — هنگام وارد کردن یک آرشیو بزرگ، وظایف تبدیل را با Hangfire یا Azure Functions در صف قرار دهید. کلاس نمایشگر Doconut با کارگران
IHostedServiceکار میکند زیرا جریانها را میپذیرد و توکنها را برمیگرداند بدون نیاز به زمینهٔ HTTP. - تنظیم وضوح تصویر بر حسب دستگاه — دستگاههای موبایل از
ImageResolutionپایینتر (150‑200 DPI) بهره میبرند، در حالی که ایستگاههای کاری دسکتاپ میتوانند 300 DPI برای جزئیات CAD درخواست کنند. وضوح را بر اساس رشتهٔ user‑agent یا تنظیمات سمت کلاینت تنظیم کنید. - فعالسازی بارگذاری تنبل حاشیهنویسیها — XML حاشیهنویسی را در جدول جداگانهای ذخیره کنید و فقط زمانی که کاربر پنل حاشیهنویسی را باز میکند، بارگذاری کنید. این کار بار اولیه را کاهش داده و رندر صفحهٔ اول را سرعت میبخشد.
- نظارت بر مصرف حافظه — رندر صفحات CAD با وضوح بالا میتواند حافظهبر باشد. GC .NET را برای استفاده از حالت سرور در محیط تولید پیکربندی کنید (
<gcServer enabled="true"/>) و زمانپایان معقولی تنظیم کنید تا از کارهای رندر بیپایان جلوگیری شود. - استفاده از CDN برای داراییهای استاتیک — بستههای JavaScript و CSS نمایشگر استاتیک هستند. آنها را از Azure CDN، CloudFront یا Cloudflare سرو کنید تا چند میلیثانیه از زمان بارگذاری صفحهٔ اولیه کم شود، بهویژه برای تیمهای توزیعشده جهانی.
با پیروی از این راهنماها، میتوانید هزاران کاربر همزمان در سراسر قارهها را پشتیبانی کنید در حالی که تأخیر صفحهٔ اول زیر ۲۰۰ ms باقی میماند — معیاری که بسیاری از پورتالهای سازمانی هدفگذاری میکنند.
شروع سریع با دوره آزمایشی رایگان Doconut
سریعترین راه برای ارزیابی Doconut این است که دوره آزمایشی رایگان را از سایت رسمی دانلود کنید، بسته NuGet را به یک پروژهٔ جدید ASP.NET Core اضافه کنید و راهنمای شروع سریع را دنبال کنید. در عرض چند دقیقه یک نمایشگر کاربردی خواهید داشت که میتواند اسناد را از Azure Blob دریافت کند، حاشیهنویسی را فعال کند، جستجوی مبتنی بر OCR را اجرا کند و تبدیل امن سمت سرور را انجام دهد. برای دستورالعملهای گامبهگام، به مستندات Doconut مراجعه کنید و امروز تجربه سند بومی ابری خود را بسازید.
آیا آمادهاید تا گردش کارهای سندی خود را تحول بخشید؟
همین حالا برای دوره آزمایشی رایگان Doconut ثبتنام کنید و ببینید چقدر آسان است که تجربههای سندی ایمن، قابل جستجو و همکاریپذیر را در هر برنامهٔ .NET ارائه دهید.