הקטלוג הרשמי של קטלוג תכונות Doconut מציין הדפסת דפדפן וייצוא PDF כיכולות של המציג. שליטה בגישה אליהם עדיין דורשת שני החלטות נפרדות: האם Doconut מציג את הפעולה הרלוונטית והאם היישום המארח מאשר את הפעולה עבור המשתמש והמסמך הנוכחיים.

עבור הבקרות המדויקות הנתמכות בבנייה המותקנת שלך, התחל עם תיעוד Doconut והדגימות המארזות הזמינות ב-דף ההורדה של Doconut. אל תעתיק מפתחות תצורה או קוד מקור מגרסה שאינה קשורה או ממאמר לא מאומת.
1. הגדר תחילה את מדיניות ההדפסה
רשום מי יכול להדפיס ובאילו תנאים לפני שינוי סרגל הכלים. מדיניות שימושית עונה על שאלות כגון:
- האם ההדפסה מותרת לכל מציג, רק לתפקידים מסוימים, או למסמכים ספציפיים?
- האם ההחלטה תלויה בדייר, במצב המקרה, בסיווג המסמך, או בתוקף?
- האם נדרש סימן מים על הפלט המודפס?
- האם יש לתעד אירועי הדפסה?
- האם משתמש יכול להדפיס גרסה ישנה של המסמך?
- מה צריך לקרות כאשר ההרשאה משתנה בזמן שהתצוגה המקדימה פתוחה?
הימנע משימוש בערך בוליאני גלובלי כאשר הכלל האמיתי הוא הקשרי. מודל את ההדפסה כפעולה נפרדת כך שניתן לאשר אותה באופן עצמאי מהצפייה וההורדה.
2. הפרד מצב UI מהאישור
דף המארח יכול להחליט האם להציג בקרת הדפסה לאחר קבלת תוצאת הרשאה בבעלות היישום. זה משפר את הבהירות למשתמשים שאינם יכולים להדפיס.
עם זאת, הסתרת בקרת אינה גבול הרשאה. משתמש עדיין יכול לקרוא ישירות לנקודת קצה ידועה, לשחזר בקשה קודמת, או להפעיל הדפסת דפדפן על תוכן גלוי. כל נתיב שרת שמייצר פלט להדפסה חייב לאכוף את אותה מדיניות.
השתמש במצבים מובחנים ב‑UI:
| מצב | התנהגות מציג | התנהגות שרת |
|---|---|---|
| הדפסה מותרת | הצגת פעולה ההדפסה הנתמכת | אישור ויצירת הפלט המבוקש |
| הדפסה נדחתה | הסתרה או השבתת הפעולה עם הסבר ברור | החזרת תגובה של אסור |
| מדיניות לא ידועה | להשאיר את הפעולה בלתי זמינה בזמן טעינת ההרשאה | לא ליצור פלט |
| הפעלה פג תוקף | לבקש מהמשתמש לאמת מחדש | לדחות את הבקשה הישנה |
3. הגן על נקודת הקצה של ההדפסה
הגן על הפעולה ביישום שמפעילה הדפסה או מחזירה פלט להדפסה. החלטת ההרשאה צריכה להתחשב בחברות בדייר, בעלות, סיווג, מצב זרימת עבודה, וגרסת המסמך. פותר את המסמך בצד השרת במקום לקבל נתיב או URL אחסון שסופק על ידי הלקוח.
אם היישום שלך מדפיס דרך נתיב ייחודי למציג במקום ליצור PDF, החל את אותה הרשאה לפני קריאת הנתיב.
4. הגדר את גרסת המציג המותקנת
לאחר שהכלל בשרת קיים, הגדר את UI של Doconut באמצעות האפשרות המדויקת המתועדת עבור החבילה וקבצי הדגמה שנשלחו עם הגרסה שלך. ה-דגימות חיות של Doconut מאפשרות לך לצפות בהתנהגות המציג הנתמכת לפני שמתחייבים לאינטגרציה ספציפית. אמת:
- היכן מוגדרת האפשרות: תצורת שרת, מודל תצוגה, או אתחול לקוח.
- האם היא מסתירה פריט סרגל כלים, משבית פעולה, או משפיעה על הפלט שנוצר.
- האם הערך חל לכל מופע מציג או באופן גלובלי.
- האם הדפסה וייצוא הם פעולות נפרדות.
- האם עדכון שינה את שם האפשרות או את ברירת המחדל.
התייחס לדוגמה הרשמית כמקור האמת. שם נכס שנראה משכנע אינו ראייה מספקת שהמציג המותקן מכיר בו.
5. טיפול בכנות בהדפסת דפדפן
הגדרת מציג אינה יכולה להבטיח שמידע גלוי לעולם לא יודפס או ייתפס. הדפדפן עשוי להדפיס את דף המארח, והמשתמשים יכולים לצלם מסך או לצלם תמונה. חטיפת מקלדת ו‑CSS ייעודיים להדפסה יכולים לשפר את החוויה הצפויה, אך ניתן לעקוף אותם בצד הלקוח.
אם דף המארח לא אמור לייצר עותק נייר שימושי, היישום שלך יכול להשתמש במצגת ייעודית להדפסה כדי להחליף את התצוגה המקדימה עם הודעה מסבירה. שמור על התנהגות דף המארח נפרדת מבקרות המוצגות בתיעוד של Doconut.
אל תתאר זאת כהגנת מסמך. השתמש ברינדור צד‑שרת, הרשאה, ייצוא מבוקר, וסימני מים גלויים כאשר הערכת הסיכון שלך דורשת הרתעה חזקה יותר.
6. שמור על הפרדה בין הורדה, ייצוא והדפסה
משתמשים ומפתחים לעיתים מתייחסים אליהם כמפסק “קריאה‑בלבד” אחד, אך הם מייצגים זרמי נתונים שונים:
- תצוגה מציגה תוכן מעובד.
- הורדה מחזירה את המקור או קובץ מאוחסן אחר.
- ייצוא יוצר פורמט נגזר.
- הדפסה מייצרת ייצוג להדפסה או מפעילה הדפסת דפדפן.
אשר כל פעולה במפורש. משתמש שלא יכול להדפיס עדיין עשוי להיות מורשה להורדה, ולהפך. סרגל הכלים שלך צריך לשקף את החלטות השרת ולא להגדיר אותן.
7. הוסף אירועי ביקורת שימושיים
אם ההדפסה רגישת, רשום את ההחלטה מבלי לתעד את המסמך עצמו. אירוע יכול לכלול את המשתמש, הדייר, מזהה המסמך, גרסה, תוצאת המדיניות, חותמת זמן, ומזהה קשר.
רשום גם ניסיונות מוצלחים וגם נדחים. אם שירות ההדפסה יוצר קובץ זמני, רשום גם האם ניקויו הושלם. שמור נתיבי קבצים, אסימונים, כותרות מסמכים המכילים מידע אישי, ותוכן מודפס מחוץ ללוגים השוטפים.
8. בדוק מעבר לכפתור החסר
סרגל הכלים הוא רק האישור הראשון. הוסף בדיקות לכל הפעולה:
משתמש מורשה
- פעולה ההדפסה המתוכננת גלויה.
- בקשת ההדפסה מצליחה עבור מסמך מורשה.
- נעשה שימוש בגרסה הנכונה.
- סימוני חובה מופיעים בפלט שנוצר.
- אירוע הביקורת מתעד הצלחה.
משתמש לא מורשה
- הפעולה חסרה או מושבתת.
- בקשה ישירה לנתיב ההדפסה מחזירה תגובה של אסור.
- שינוי מזהה המסמך אינו עוקף את הכלל.
- URL שהועתק משיחה מורשית אינו ניתן לשימוש לא נכון.
- הדחייה אינה מגלה האם דייר אחר הוא בעל המסמך.
שינויי מצב
- שלילה של הרשאה במהלך סשן נאכפת בבקשת ההדפסה הבאה.
- סשן שפג תוקף אינו יכול להדפיס.
- מסמך שנמחק או הוחלף מייצר שגיאה מבוקרת.
- פלט הדפסה זמני עומד בכללי השמירה שהוגדרו.
אוטומציה של דפדפן יכולה לאמת את המצב הוויזואלי וקוד התגובה. בדיקות אינטגרציה צריכות לאמת את הערכת המדיניות וההרשאה ברמת המסמך באופן עצמאי.
שאלות נפוצות
האם הסתרת כפתור ההדפסה עוצרת את קיצור הדרך של הדפסת הדפדפן?
לא. היא מסירה פעולה מכוונת של המציג רק אם המציג המותקן מיישם את ההתנהגות הזאת. הדפסת דפדפן ולכידת מסך דורשות התחשבות נפרדת ולא ניתן למנוע אותן לחלוטין בקוד צד‑לקוח.
האם יש לכלול הרשאת הדפסה ב‑URL הצפייה?
העדף החלטת הרשאה בצד השרת הקשורה למשתמש המאומת, למסמך ולפעולה. אם הפנייה הזמנית נושאת הרשאות, הגבל אותה במידה הצרה, הגן עליה מלוגים ומפניות, ובצע אימות מחדש של פעולות רגישות.
האם השבתת הדפסה מספיקה למסמכים סודיים?
לא. זו רק שליטה של נוחות או הרתעה. זרימות עבודה סודיות דורשות גם הגנה על אחסון, הרשאה ברמת האובייקט, ייצוא מבוקר, כללי שמירה, ניטור, ומודל סיכון משוער מקובל.
סיכום
יישום אמין של שליטה בהדפסה ב‑Doconut מתחיל בשרת ומסתיים בממשק. הגדר את המדיניות, הגן על הפעולה, הגדר רק את האפשרות המתועדת עבור המציג המותקן שלך, הסבר את התוצאה למשתמשים, ובדוק בקשות ישירות וכן את נראות סרגל הכלים. השתמש בדף התכונות הרשמי, בתיעוד, בהורדות ובדגימות כחומרי היישום במקום לשחזר קוד מוצר במאמר.