ViewerConfig

אפשרויות וידג'ט מציג לקוח

ViewerConfig (namespace Doconut) מתאר את המראה וההתנהגות של מציג הדפדפן. הוא אינו משפיע על איכות רינדור המסמך; השתמשו בתצורת פורמט עבור זאת. מחלקת C# והווידג'ט הישן של JavaScript כוללים ערכי ברירת מחדל שונים, ולכן יש למפות ערכים במפורש.

שתי שינויים בצד הלקוח במוצא זה נכשלות בשקט. פונקציות מנהל נמסרות כאפשרויות — הווידג'ט כבר לא יוצר שמות פונקציות גלובליות ממזהה המכולה — ו‑ResPath חייב להצביע על קידומת המשאבים במקום על שורש היישום. שני אלה משאירים את השרת פועל בצורה מושלמת ולא מדווחים דבר בקונסול הדפדפן. אם אתם מעבירים דף מהספרייה הקודמת, קראו קריאות חוזרות ו‑רשימת בדיקת נתיבים לפני כל דבר אחר.

מאפייני C#

סוגמאפייןברירת מחדלתיאור
boolShowThumbstrueהצגת לוח התמונות הממוזערות.
boolAutoLoadfalseטעינה אוטומטית לאחר האתחול. זרימת הטוקן הרגילה קוראת ל‑View(token) במפורש.
boolAutoFocustrueהזזת מיקוד/גלילת הדפדפן אל המציג במהלך האתחול.
boolAutoPageFocustrueשמירת התמונה הממוזערת הנוכחית גלויה בזמן שהדפים משתנים.
intPageZoom100אחוז זום ראשוני.
intZoomStep10אחוז שנוסף או מוסר על ידי פקודות זום.
intMaxZoom300אחוז זום מרבי.
boolShowToolTiptrueהצגת תיאור מיקום העמוד בעת גלילה.
stringToolTipPageText"Page "קידומת המשמשת בתיאור המיקום של העמוד.
boolCacheEnabledfalseשמירת חלון נע של תמונות דפים בזיכרון הדפדפן. אינו משתמש ב‑localStorage.
boolLargeDocfalseהוספת אלמנטים של דפים במנות מתוזמנות למסמכים גדולים.
boolShowHyperlinksfalseהצגת שכבות קישורים כאשר תצורת השרת חילצה אותם.
boolFixedZoomtrueשימוש באחוז זום קבוע במקום חישוב רספונסיבי.
intFixedZoomPercent100זום קבוע למחשב שולחני.
intFixedZoomPercentMobile75זום קבוע למכשיר נייד.
stringBasePath"/"הענף שבו המארח ממפה UseDoconut().
stringResPath"doconut-res"בסיס המשאבים בו משתמש הווידג'ט. בהגדרה רגילה הפנו אותו אל <ResourcesPath>/images.
stringFitType"width"\"width\", \"height\", או ריק ללא התאמה אוטומטית. \"page\" אינו מתקבל על ידי הווידג'ט הנוכחי.
boolRetryOn409falseהפעלת חיפוש חוזר כאשר ייצור דפים אסינכרוני/מבוזר מחזיר 202 Accepted; 409 גם מתקבל לתאימות עם שרתים ישנים. אינו נדרש במציג הסינכרוני הרגיל.
csharp
var config = new ViewerConfig
{
    ShowThumbs = true,
    AutoLoad = false,
    PageZoom = 100,
    MaxZoom = 300,
    FitType = "width",
    BasePath = "/doconut",
    ResPath = "/doconut-res/images",
    ShowHyperlinks = true
};

מיפוי C# ל‑JavaScript

C#JavaScript
ShowThumbsshowThumbs
AutoLoadautoLoad
AutoFocusautoFocus
AutoPageFocusautoPageFocus
PageZoompageZoom
ZoomStepzoomStep
MaxZoommaxZoom
ShowToolTipshowToolTip
ToolTipPageTexttoolTipPageText
CacheEnabledcacheEnabled
LargeDoclargeDoc
ShowHyperlinksshowHyperlinks
FixedZoomfixedZoom
FixedZoomPercentfixedZoomPercent
FixedZoomPercentMobilefixedZoomPercentMobile
BasePathBasePath
ResPathResPath
FitTypeFitType
RetryOn409retryOn409

ברירות מחדל של JavaScript

אפשרותברירת מחדלהערות
leftMinWidth / leftMaxWidth220 / 800גבולות רוחב לוח התמונות הממוזערות.
showThumbstrueנראות ראשונית של התמונות הממוזערות.
autoFocus / autoPageFocustrue / falseautoPageFocus שונה מברירת המחדל של C#.
thumbWidth / thumbHeight / thumbPadding150 / 200 / 10גיאומטריית תמונות ממוזערות בפיקסלים.
pageZoom / zoomStep / maxZoom100 / 10 / 200maxZoom של JavaScript שונה מ‑C# (300).
showToolTip / toolTipPageTexttrue / "Page "תיאור מיקום העמוד.
format / doc / AccessToken"" / 0 / ""ערכי אתחול פנימיים; בדרך כלל מתמלאים על ידי View(token).
debugModefalseאבחון לקוח נוסף.
FitType""אין התאמה אוטומטית אלא אם כן מסופקת.
BasePath"DocImage.axd"ברירת מחדל היסטורית של לקוח שנשמרה לתאימות. מארחי ASP.NET Core נוכחיים חייבים להגדיר זאת במפורש לענף המידלוור הממופה.
ResPath""הגדרה מפורשת לנתיב התמונות המוטמעים.
cacheEnabled / cacheCount / cacheDelayfalse / 3 / 3חלון טעינה מראש של דפים בזיכרון ועיכוב.
autoLoadfalseמומלץ להשתמש בזרימת טוקן מפורשת.
largeDoctrueשונה מברירת המחדל של C#.
fixedZoomfalseשונה מברירת המחדל של C#.
fixedZoomPercent / fixedZoomPercentMobile100 / 50הערך במובייל שונה מ‑C# (75).
showHyperlinkstrueדורש חילוץ בצד השרת כדי לייצר שכבות.
html
<div id="divDocViewer"><div id="div_ctlDoc"></div></div>

<script>
const objViewer = $('#div_ctlDoc').docViewer({
    showThumbs: true,
    autoLoad: false,
    autoFocus: true,
    autoPageFocus: true,
    pageZoom: 100,
    zoomStep: 10,
    maxZoom: 300,
    FitType: 'width',
    cacheEnabled: false,
    largeDoc: false,
    showHyperlinks: true,
    fixedZoom: true,
    fixedZoomPercent: 100,
    fixedZoomPercentMobile: 75,
    BasePath: '/doconut',
    ResPath: '/doconut-res/images',
    onViewerReady: function () {},
    onError: function (message) { console.error('DocViewer:', message); }
});
</script>

קריאות חוזרות

קריאה חוזרתארגומנטיםמטרה
onPageLoadingpageNumבקשת דף מתחילה.
onPageLoadedpageNumתמונת דף הסתיימה בטעינה.
onThumbnailClickedpageNumהמשתמש בחר בתמונה ממוזערת.
onPageClickedpageNumהמשתמש בחר בדף.
onDoubleClicknoneהמציג קיבל לחיצה כפולה.
onViewerBusynoneהמציג נכנס למצב עסוק.
onViewerReadynoneהאתחול הושלם.
onViewerErrornoneהמציג נכנס למצב שגיאה.
onErrormessageפעולה החזירה הודעת שגיאה.
onCopydataנתוני העתקת טקסט זמינים.
onAutoLoadStatuspageNumטעינה אוטומטית התקדמה לדף.
onThumbsShownnoneלוח התמונות הממוזערות הפך גלוי.
onAnnLoadednoneנתוני ההערות נטענו.
onAnnSavednoneנתוני ההערות נשמרו.
onAnnSaveErrornoneשמירת ההערות נכשלה.
onAnnClosednoneממשק ההערות נסגר.

שמרו על קריאות חוזרות מהירות; שלחו טלמטריה באופן אסינכרוני ואל תחסמו את רינדור העמוד.

כל אחת מהן היא אפשרות באובייקט האתחול. המציג הקודם חיפש פונקציות גלובליות שהשמות שלהן נגזרו ממזהה המכולה — דף עם <div id="div_ctlDoc"> היה צריך רק להגדיר function ctlDoc_OnViewerReady(). החיפוש הזה נעלם. העבירו את הפונקציה במפורש:

javascript
objctlDoc = $('#div_ctlDoc').docViewer({
    // ... your existing options ...
    onViewerBusy:     ctlDoc_OnViewerBusy,      // was found by name
    onViewerReady:    ctlDoc_OnViewerReady,     // was found by name
    onCopy:           ctlDoc_Copy,              // was ctlDoc_Copy(text)
    onAutoLoadStatus: ctlDoc_AutoLoadStatus     // was ctlDoc_AutoLoadStatus(page)
});

החיפוש הישן היה עטוף ב‑catch ריק, ולכן שום דבר לא דווח. במוצא זה הפונקציות פשוט אינן רצות: התסמין הרגיל הוא סמן עסוק שלא מפסיק, מכיוון שהמתאם שהסתיר אותו היה onViewerReady. המסמך מאחוריו מתורגם כראוי.

אין קריאת חוזרת ללחיצה על קישור — טיפול בקישורים מובנה ומנוהל על ידי showHyperlinks.

קבוצות שיטות ציבוריות

קבוצהשיטות נפוצות
מחזור חייםView(token, accessToken?), Close(server?), Token(), Init(), IsLoaded()
ניווטGotoPage(page), ShowPage(page, focus?), Next(next), CurrentPage(), TotalPages()
זום והתאמהZoom(zoomIn), CurrentZoom(), FitType(value), Refit()
כיווןRotate(page, angle), Flip(page, flipType)
תמונות ממוזערותHideThumbs(hide), ThumbSize(size), ReloadThumbs(width), ScrollToThumb(thumb)
חיפושCanSearch(), Search(...), SearchMatchCount(), SearchSummary(...), GotoSearchMatch(...)
הערותSaveAnnotations(), GetAnnotations(), PushAnnotations(...), CloseAnnotations(...), ShowAnnotations(...)
העתקהCopy(...), CopyPage(pageNumber), CopyMode(enabled)

קובץ ה‑JavaScript מכיל גם עוזרים פנימיים. התייחסו רק לשיטות המשמשות את ממשק המשתמש הרפרנסי ומתועדות כאן או במדריכי הפיצ'רים כנקודות אינטגרציה יציבות.

ניסיון חוזר בזמן שדף מבוזר עדיין מתורגם

retryOn409 שומר על שמו ההיסטורי. הוא מיועד לייצור דפים אסינכרוני ומנסה מחדש את תגובת המוכנות 202 Accepted וכן את האות 409 Conflict הישנה. כאשר מופעל, הווידג'ט מבצע חיפוש חוזר עם ברירות המחדל של JavaScript הבאות:

אפשרותברירת מחדל
retryInitialDelayMs250
retryBackoffFactor1.6
retryMaxDelayMs2500
retryMaxAttempts60
retryMaxTotalMs120000

השאירו אותו מושבת עבור מציג יחיד רגיל. הפעלתו אינה יכולה להפוך רינדור סינכרוני שאינו נתמך לאסינכרוני.

הפעילו אותו כאשר דפים מוגשים מאחסון משותף עם FirstPagePriority, שבו דפים מאוחרים יותר משיבים באופן חוקי 202 Accepted עד שהם נכתבים. לקוח שלא מנסה מחדש מציג אריחים שבורים לדפים שעדיין מתורגמים — ראו פריסות מבוזרות.

רשימת בדיקת נתיבים

  • DoconutOptions.MiddlewarePath חייב לתאר את הענף שאתה בפועל ממפה.
  • BasePath חייב למקד את הענף הזה. יישום הרפרנס שומר על צורת הבקשה ההיסטורית DocImage.axd על ענף MapWhen ולכן מגדיר BasePath: '/'.
  • DoconutOptions.ResourcesPath הוא נתיב המשאב המוטמע.
  • ResPath בדרך כלל מצביע לתיקיית המשנה /images'doconut-res/images' עם הקידומת ברירת המחדל. ResPath ריק היה נכון בספרייה הקודמת, שבה המשאבים הגיעו משורש היישום; הוא אינו נכון כאן, והוא נכשל ללא הודעת שגיאה.
  • ExtractHyperlinks חייב להיות מופעל בתצורת הפורמט של השרת לפני ש‑showHyperlinks יכול להציג משהו.

האם דף זה היה מועיל?