ViewerConfig

گزینه‌های ویجت نمایشگر سمت‌کلاینت

ViewerConfig (namespace Doconut) توصیف‌کنندهٔ ظاهر و رفتار نمایشگر مرورگر است. این تنظیم بر کیفیت رندر سند تأثیری ندارد؛ برای آن از پیکربندی فرمت استفاده کنید. کلاس C# و ویجت جاوااسکریپت که مدت طولانی وجود دارد، پیش‌فرض‌های متفاوتی دارند، بنابراین مقادیر را به‌صورت صریح نگاشت کنید.

دو تغییر سمت‌کلاینت در این نسخه به‌صورت ساکن شکست می‌خورند. توابع هندلر به‌عنوان گزینه‌ها پاس داده می‌شوند — ویجت دیگر نام توابع سراسری را از شناسهٔ کانتینر استخراج نمی‌کند — و ResPath باید به پیشوند منابع اشاره کند نه به ریشهٔ برنامه. هر دو باعث می‌شوند سرور به‌درستی کار کند و هیچ‌چیزی در کنسول مرورگر گزارش نشود. اگر صفحه‌ای را از کتابخانهٔ قبلی منتقل می‌کنید، پیش از هر چیز دیگری به Callbacks و Path checklist مراجعه کنید.

ویژگی‌های 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# به جاوااسکریپت

C#جاوااسکریپت
ShowThumbsshowThumbs
AutoLoadautoLoad
AutoFocusautoFocus
AutoPageFocusautoPageFocus
PageZoompageZoom
ZoomStepzoomStep
MaxZoommaxZoom
ShowToolTipshowToolTip
ToolTipPageTexttoolTipPageText
CacheEnabledcacheEnabled
LargeDoclargeDoc
ShowHyperlinksshowHyperlinks
FixedZoomfixedZoom
FixedZoomPercentfixedZoomPercent
FixedZoomPercentMobilefixedZoomPercentMobile
BasePathBasePath
ResPathResPath
FitTypeFitType
RetryOn409retryOn409

پیش‌فرض‌های جاوااسکریپت

ویجت پیش‌فرض‌های قدیمی دارد که با کلاس C# متفاوت هستند. مقادیر زیر از پیاده‌سازی فعلی docViewer.js می‌آیند.

گزینهپیش‌فرضیادداشت‌ها
leftMinWidth / leftMaxWidth220 / 800حدود عرض پنل تصویر بندانگشتی.
showThumbstrueقابلیت مشاهده اولیهٔ تصویر بندانگشتی.
autoFocus / autoPageFocustrue / falseautoPageFocus با پیش‌فرض C# متفاوت است.
thumbWidth / thumbHeight / thumbPadding150 / 200 / 10هندسهٔ تصویر بندانگشتی بر حسب پیکسل.
pageZoom / zoomStep / maxZoom100 / 10 / 200جاوااسکریپت maxZoom با 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رابط کاربری حاشیه‌نویسی بسته شد.

توابع بازگشتی را سریع نگه دارید؛ تلمتری را به‌صورت ناهمزمان بفرستید و از مسدود کردن رندر صفحه خودداری کنید.

هر یک از این‌ها یک گزینه در شیء init هستند. نمایشگر قبلی توابع سراسری را که نامشان از شناسهٔ کانتینر استخراج می‌شد جستجو می‌کرد — صفحه‌ای با <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)

فایل جاوااسکریپت همچنین شامل کمک‌کننده‌های داخلی است. فقط متدهایی که توسط رابط کاربری مرجع استفاده می‌شوند و در اینجا یا در راهنمای ویژگی‌ها مستند شده‌اند، به‌عنوان نقاط یکپارچه‌سازی پایدار در نظر بگیرید.

تلاش مجدد در حالی که صفحهٔ توزیع‌شده هنوز در حال رندر است

retryOn409 نام تاریخی خود را حفظ کرده است. این گزینه برای تولید صفحهٔ ناهمزمان است و پاسخ آماده‌سازی 202 Accepted فعلی را به‌همراه سیگنال قدیمی 409 Conflict دوباره تلاش می‌کند. وقتی فعال باشد، ویجت با این پیش‌فرض‌های جاوااسکریپت نظرسنجی می‌کند:

گزینهپیش‌فرض
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 بتواند چیزی نمایش دهد.

آیا این صفحه مفید بود؟