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

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