تكوين العارض

خيارات عنصر واجهة عرض العميل

ViewerConfig (المجال Doconut) يصف مظهر وسلوك عارض المتصفح. لا يؤثر على جودة عرض المستند؛ استخدم تكوين تنسيق لذلك. فئة C# وعنصر جافاسكريبت القديم لهما إعدادات افتراضية مختلفة، لذا يجب تعيين القيم صراحةً.

تغييران على جانب العميل في هذا الإصدار يفشلان بصمت. تُمرَّر وظائف المعالج كخيارات — لم يعد العنصر يستخرج أسماء الدوال العامة من معرف الحاوية — ويجب أن يشير ResPath إلى بادئة الموارد بدلاً من جذر التطبيق. كلاهما يترك الخادم يعمل بشكل كامل ولا يُظهر أي شيء في وحدة تحكم المتصفح. إذا كنت تنقل صفحة من المكتبة السابقة، اقرأ النداءات الخلفية وقائمة التحقق من المسار قبل أي شيء آخر.

خصائص C#

النوعالخاصيةالافتراضيالوصف
boolShowThumbstrueإظهار لوحة الصور المصغرة.
boolAutoLoadfalseتحميل تلقائي بعد التهيئة. تدفق الرموز العادي يستدعي View(token) صراحةً.
boolAutoFocustrueنقل تركيز/تمرير المتصفح إلى العارض أثناء التهيئة.
boolAutoPageFocustrueإبقاء الصورة المصغرة الحالية مرئية أثناء تغيير الصفحات.
intPageZoom100نسبة التكبير الأولية.
intZoomStep10النسبة المضافة أو المزالة بأوامر التكبير.
intMaxZoom300الحد الأقصى لنسبة التكبير.
boolShowToolTiptrueإظهار تلميح موقع الصفحة أثناء التمرير.
stringToolTipPageText"Page "البادئة المستخدمة في تلميح الصفحة.
boolCacheEnabledfalseالاحتفاظ بنافذة متحركة من صور الصفحات في ذاكرة المتصفح. لا يستخدم localStorage.
boolLargeDocfalseإضافة عناصر الصفحات على دفعات زمنية للوثائق الكبيرة.
boolShowHyperlinksfalseعرض طبقات الروابط الفوقية عندما يستخرج تكوين الخادمها.
boolFixedZoomtrueاستخدام نسبة تكبير ثابتة بدلاً من إعادة حساب استجابية.
intFixedZoomPercent100تكبير ثابت لسطح المكتب.
intFixedZoomPercentMobile75تكبير ثابت للهواتف المحمولة.
stringBasePath"/"المكان الذي يرسل فيه العارض طلبات الصفحات. "/" هو DocImage.axd في جذر الموقع؛ وإلا الفرع حيث يطابق المضيف UseDoconut()، بدون بادئة / ("doconut" يعني /doconut/DocImage.axd).
stringResPath"doconut-res/images" (26.9.0; "doconut-res" before)مجلد العنصر يحمل منه صوره الخاصة: مجلد images تحت ResourcesPath، بدون بادئة /.
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",           // لا يوجد '/' في البداية: العارض يضيفه ("/doconut" سيصبح //doconut، مضيف آخر)
    ResPath = "doconut-res/images",
    ShowHyperlinks = true
};

تعيين C# إلى جافاسكريبت

لا تمرر ViewerConfig المتسلسل مباشرةً إلى docViewer(...). معظم مفاتيح العنصر هي camelCase، بينما ثلاثة مفاتيح مسار/ملاءمة معروفة هي PascalCase.

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 / 200JavaScript maxZoom يختلف عن C# (300).
showToolTip / toolTipPageTexttrue / "Page "تلميح موضع الصفحة.
format / doc / AccessToken"" / 0 / ""قيم التهيئة الداخلية؛ عادةً ما يتم ملؤها بواسطة View(token).
debugModefalseتشخيصات إضافية للعميل.
FitType""لا يوجد تعديل تلقائي ما لم يتم توفيره.
BasePath"DocImage.axd"الإعداد الافتراضي التاريخي للعميل محفوظ للتوافق. يجب على مضيفي ASP.NET Core الحاليين تعيينه صراحةً إلى فرع middleware المرتبط.
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({
    // ... خياراتك الحالية ...
    onViewerBusy:     ctlDoc_OnViewerBusy,      // تم العثور عليه بالاسم
    onViewerReady:    ctlDoc_OnViewerReady,     // تم العثور عليه بالاسم
    onCopy:           ctlDoc_Copy,              // كان ctlDoc_Copy(text)
    onAutoLoadStatus: ctlDoc_AutoLoadStatus     // كان 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 القديمة. عند التفعيل، يقوم الودجت بالاستطلاع باستخدام هذه القيم الافتراضية لجافاسكريبت:

الخيارالافتراضي
retryInitialDelayMs250
retryBackoffFactor1.6
retryMaxDelayMs2500
retryMaxAttempts60
retryMaxTotalMs120000

اتركه معطلاً للعارض العادي أحادي العقدة. تمكينه لا يمكن أن يجعل عرضًا متزامنًا غير مدعوم يتحول إلى غير متزامن.

فعّله عندما تُقدم الصفحات من تخزين مشترك باستخدام FirstPagePriority، حيث تُجيب الصفحات اللاحقة بصورة شرعية على 202 Accepted حتى تُكتب. العميل الذي لا يعيد المحاولة يُظهر بلاطات مكسورة للصفحات التي لا تزال تُعرض — راجع التوزيعات الموزعة.

قائمة التحقق من المسار

  • DoconutOptions.MiddlewarePath يجب أن يصف الفرع الذي تقوم بربطه فعليًا.
  • BasePath يجب أن يستهدف ذلك الفرع، مكتوبًا بدون / الأولي ('doconut'، وليس '/doconut': يضيف العارض الشرطة المائلة، و//doconut/... هو طلب إلى مضيف آخر). التطبيق المرجعي يحتفظ بشكل طلب DocImage.axd التاريخي على فرع MapWhen وبالتالي يضبط BasePath: '/'.
  • DoconutOptions.ResourcesPath هو مسار المورد المضمن.
  • ResPath عادةً ما يستهدف المجلد الفرعي images الخاص به، بدون / أولي — 'doconut-res/images' مع البادئة الافتراضية. كان ResPath الفارغ صحيحًا في المكتبة السابقة، حيث كانت الموارد تأتي من جذر التطبيق؛ لكنه غير صحيح هنا، ويتسبب في فشل دون ظهور خطأ.
  • ExtractHyperlinks يجب أن يكون مفعلاً في إعداد تنسيق الخادم قبل أن يتمكن showHyperlinks من عرض أي شيء.

هل كانت هذه الصفحة مفيدة؟