The official کاتالوگ ویژگیهای Doconut lists چاپ مرورگر و خروجی PDF as viewer capabilities. Controlling access to them still requires two separate decisions: whether Doconut presents the relevant action and whether the host application authorizes that operation for the current user and document.

For the exact controls supported by your installed build, start with the مستندات Doconut and the packaged samples available from the official صفحه دانلود Doconut. Do not copy configuration keys or source code from an unrelated version or an unverified article.
1. تعریف سیاست چاپ را ابتدا بنویسید
قبل از تغییر نوار ابزار، بنویسید چه کسی میتواند چاپ کند و تحت چه شرایطی. یک سیاست مفید به سوالاتی مانند موارد زیر پاسخ میدهد:
- آیا چاپ برای هر نمایشگر، فقط نقشهای خاص یا اسناد مشخص مجاز است؟
- آیا تصمیم به مستأجر، وضعیت پرونده، طبقهبندی سند یا تاریخ انقضا وابسته است؟
- آیا نیاز به واترمارک بر خروجی چاپی است؟
- آیا رویدادهای چاپ باید ثبت شوند؟
- آیا کاربر میتواند نسخه قدیمیتری از سند را چاپ کند؟
- هنگام تغییر مجوز در حالی که پیشنمایش باز است، چه باید شد؟
از یک بولین سراسری واحد خودداری کنید وقتی که قانون واقعی زمینهای است. چاپ را بهعنوان یک عملیات جداگانه مدل کنید تا بتوان آن را مستقل از مشاهده و دانلود مجوزدهی کرد.
2. جداسازی وضعیت رابط کاربری از مجوزدهی
صفحه میزبان میتواند پس از دریافت نتیجهٔ مجوز متعلق به برنامه، تصمیم بگیرد که کنترل چاپ را نشان دهد یا نه. این کار شفافیت برای کاربرانی که نمیتوانند چاپ کنند، افزایش میدهد.
با این حال، مخفی کردن یک کنترل مرز مجوزدهی نیست. کاربر همچنان میتواند بهصورت مستقیم به یک نقطهپایان شناختهشده فراخوانی کند، درخواست قبلی را دوباره بفرستد یا چاپ مرورگر را بر محتوای قابل مشاهده اجرا کند. هر مسیر سروری که خروجی چاپی تولید میکند باید همان سیاست را اعمال کند.
از وضعیتهای متمایز در رابط کاربری استفاده کنید:
| وضعیت | رفتار نمایشگر | رفتار سرور |
|---|---|---|
| چاپ مجاز | نمایش عمل چاپ پشتیبانیشده | مجوزدهی و ایجاد خروجی درخواستشده |
| چاپ ممنوع | مخفی یا غیرفعالسازی عمل با توضیح واضح | بازگرداندن پاسخ ممنوع |
| سیاست نامشخص | نگه داشتن عمل بهصورت غیرفعال تا بارگذاری مجوز | عدم ایجاد خروجی |
| جلسه منقضی شد | درخواست از کاربر برای احراز هویت مجدد | رد درخواست منقضیشده |
3. حفاظت از نقطهپایان چاپ
عملیات برنامهای که چاپ را فراخوانی میکند یا خروجی چاپی را برمیگرداند، باید محافظت شود. تصمیم مجوزدهی باید عضویت در مستأجر، مالکیت، طبقهبندی، وضعیت گردش کار و نسخهٔ سند را در نظر بگیرد. سند را در سرور حل کنید بهجای پذیرش مسیر یا URL ذخیرهسازی ارائهشده توسط کلاینت.
اگر برنامهٔ شما از طریق مسیر خاصی در نمایشگر چاپ میکند بهجای ایجاد PDF، همان مجوزدهی را قبل از فراخوانی آن مسیر اعمال کنید.
4. پیکربندی نسخهٔ نصبشدهٔ نمایشگر
پس از تعریف قانون سرور، رابط کاربری Doconut را با گزینهٔ دقیق مستند شده برای بسته و فایلهای نمونهٔ همراه نسخهٔ خود پیکربندی کنید. دموهای زندهٔ Doconut به شما امکان میدهد رفتار پشتیبانیشدهٔ نمایشگر را پیش از تعهد به یک ادغام خاص مشاهده کنید. موارد زیر را بررسی کنید:
- گزینه در کجا تنظیم شده است: پیکربندی سرور، مدل نمایشی یا مقداردهی اولیهٔ کلاینت.
- آیا یک مورد نوار ابزار را مخفی میکند، یک عمل را غیرفعال میسازد یا خروجی تولیدشده را تحت تأثیر قرار میدهد.
- آیا مقدار بهصورت هر نمونهٔ نمایشگر یا بهصورت سراسری اعمال میشود.
- آیا چاپ و خروجیگیری بهصورت عملیاتهای جداگانه هستند.
- آیا بهروزرسانی نام گزینه یا مقدار پیشفرض را تغییر داده است.
نمونهٔ رسمی را بهعنوان منبع حقیقت در نظر بگیرید. یک نام ویژگی شبیهبهواقع کافی نیست تا نشان دهد نمایشگر نصبشده آن را تشخیص میدهد.
5. مدیریت صادقانه چاپ مرورگر
یک تنظیمات نمایشگر نمیتواند تضمین کند که اطلاعات قابل مشاهده هرگز چاپ یا ضبط نشوند. مرورگر ممکن است صفحهٔ میزبان را چاپ کند و کاربران میتوانند اسکرینشات یا عکس بگیرند. رهگیری کیبورد و CSS مخصوص چاپ میتواند تجربهٔ مورد انتظار را بهبود بخشد، اما این اقدامات قابلعبور در سمت کاربر هستند.
اگر صفحهٔ میزبان نباید نسخهٔ کاغذی مفیدی تولید کند، برنامهٔ شما میتواند از ارائهٔ مخصوص چاپ خود استفاده کند تا پیشنمایش را با پیامی توضیحی جایگزین کند. این رفتار صفحهٔ میزبان را جدا از کنترلهای مستند شدهٔ نمایشگر Doconut نگه دارید.
این را به عنوان حفاظت از سند توصیف نکنید. هنگامیکه ارزیابی ریسک شما نیاز به بازدارندگی قویتری دارد، از رندرینگ سمت سرور، احراز هویت، صادرات کنترلشده و واترمارکهای قابل مشاهده استفاده کنید.
6. دانلود، صادرات و چاپ را جدا نگه دارید
کاربران و توسعهدهندگان اغلب این موارد را به عنوان یک کلید «فقط‑خواندنی» در نظر میگیرند، اما آنها جریانهای دادهٔ متفاوتی را نشان میدهند:
- نمایش محتوای رندرشده را نشان میدهد.
- دانلود منبع یا فایل ذخیرهشدهٔ دیگری را برمیگرداند.
- صادرات قالبی مشتقشده ایجاد میکند.
- چاپ نمایشی قابل چاپ تولید میکند یا چاپ مرورگر را فراخوانی میکند.
هر عملیات را بهصورت صریح مجاز کنید. کاربری که نمیتواند چاپ کند ممکن است هنوز اجازهٔ دانلود داشته باشد، یا بالعکس. نوار ابزار شما باید تصمیمات سرور را منعکس کند نه اینکه آنها را تعریف کند.
7. افزودن رویدادهای حسابرسی مفید
اگر چاپ حساس است، تصمیم را بدون ثبت لاگ سند ثبت کنید. یک رویداد میتواند شامل کاربر، مستأجر، شناسهٔ سند، نسخه، نتیجهٔ سیاست، زمانمهر و شناسهٔ همبستگی باشد.
هم تلاشهای موفق و هم ردشده را ثبت کنید. اگر سرویس چاپ فایلی موقت ایجاد میکند، همچنین ثبت کنید که آیا پاکسازی آن تکمیل شده است یا نه. مسیرهای فایل، توکنها، عناوین اسنادی که حاوی دادههای شخصی هستند و محتوای قابل چاپ را از لاگهای روتین دور نگه دارید.
8. تست فراتر از دکمهٔ گمشده
نوار ابزار تنها اولین ادعا است. برای کل عملیات تستها را اضافه کنید:
کاربر مجاز
- عملیات چاپ موردنظر قابل مشاهده است.
- درخواست چاپ برای سند مجاز موفق میشود.
- نسخهٔ صحیح استفاده میشود.
- نشانههای موردنیاز بر خروجی تولید شده ظاهر میشوند.
- رویداد حسابرسی موفقیت را ثبت میکند.
کاربر غیرمجاز
- عملیات غیبت یا غیرفعال است.
- درخواست مستقیم به مسیر چاپ پاسخ ممنوعیت میدهد.
- تغییر شناسهٔ سند قانون را دور نمیزند.
- آدرس URL کپیشده از جلسهٔ مجاز بهدرستی قابل استفاده مجدد نیست.
- رد شدن، این را فاش نمیکند که آیا مستأجر دیگری صاحب سند است یا نه.
تغییرات وضعیت
- مجوز لغوشده در طول جلسه در درخواست چاپ بعدی اعمال میشود.
- یک جلسهٔ منقضیشده نمیتواند چاپ کند.
- سند حذفشده یا جایگزینشده خطای کنترلشدهای تولید میکند.
- خروجی موقت چاپ مطابق با قانون نگهداری پیکربندیشده دنبال میشود.
اتوماتیکسازی مرورگر میتواند وضعیت قابل مشاهده و کد پاسخ را تأیید کند. تستهای یکپارچه باید ارزیابی سیاست و احراز هویت سطح سند را بهصورت مستقل تأیید کنند.
سوالات متداول
آیا مخفی کردن دکمهٔ چاپ باعث توقف میانبر چاپ مرورگر میشود؟
خیر. این فقط عمل موردنظر نمایشگر را حذف میکند، به شرطی که نمایشگر نصبشده آن رفتار را پیادهسازی کرده باشد. چاپ مرورگر و ضبط صفحه نیاز به ملاحظات جداگانه دارند و نمیتوان آنها را بهطور کامل با کد سمت کاربر جلوگیری کرد.
آیا باید مجوز چاپ در URL مشاهده گنجانده شود؟
ترجیحاً تصمیمگیری احراز هویت سمت سرور که به کاربر احرازشده، سند و عملیات مرتبط است، استفاده شود. اگر یک مرجع موقت مجوزها را حمل میکند، دامنه آن را بهطور محدود تنظیم کنید، از لاگها و ارجاعدهندگان محافظت کنید و اقدامات حساس را مجدداً اعتبارسنجی کنید.
آیا غیرفعال کردن چاپ برای اسناد محرمانه کافی است؟
خیر. این تنها یک کنترل قابلیت استفاده یا بازدارندگی است. جریانهای کاری محرمانه همچنین به حفاظت از ذخیرهسازی، احراز هویت سطح شیء، صادرات کنترلشده، قوانین نگهداری، نظارت و یک مدل ریسک باقیماندهٔ پذیرفتهشده نیاز دارند.
نتیجهگیری
یک پیادهسازی قابل اعتماد کنترل چاپ Doconut از سرور شروع میشود و در رابط کاربری پایان مییابد. سیاست را تعریف کنید، عملیات را محافظت کنید، فقط گزینهٔ مستند شده برای نمایشگر نصبشدهٔ خود را پیکربندی کنید، نتیجه را برای کاربران توضیح دهید و درخواستهای مستقیم و همچنین قابلیت مشاهده نوار ابزار را تست کنید. بهجای بازآفرینی کد محصول در مقاله، از صفحهٔ ویژگیهای رسمی، مستندات، دانلودها و دمویها بهعنوان منابع پیادهسازی استفاده کنید.