تكوين العارض
خيارات عنصر واجهة عرض العميل
ViewerConfig (المجال Doconut) يصف مظهر وسلوك عارض المتصفح. لا يؤثر على جودة عرض المستند؛ استخدم تكوين تنسيق لذلك. فئة C# وعنصر جافاسكريبت القديم لهما إعدادات افتراضية مختلفة، لذا يجب تعيين القيم صراحةً.
تغييران على جانب العميل في هذا الإصدار يفشلان بصمت. تُمرَّر وظائف المعالج كخيارات — لم يعد العنصر يستخرج أسماء الدوال العامة من معرف الحاوية — ويجب أن يشير
ResPathإلى بادئة الموارد بدلاً من جذر التطبيق. كلاهما يترك الخادم يعمل بشكل كامل ولا يُظهر أي شيء في وحدة تحكم المتصفح. إذا كنت تنقل صفحة من المكتبة السابقة، اقرأ النداءات الخلفية وقائمة التحقق من المسار قبل أي شيء آخر.
خصائص C#
| النوع | الخاصية | الافتراضي | الوصف |
|---|---|---|---|
bool | ShowThumbs | true | إظهار لوحة الصور المصغرة. |
bool | AutoLoad | false | تحميل تلقائي بعد التهيئة. تدفق الرموز العادي يستدعي View(token) صراحةً. |
bool | AutoFocus | true | نقل تركيز/تمرير المتصفح إلى العارض أثناء التهيئة. |
bool | AutoPageFocus | true | إبقاء الصورة المصغرة الحالية مرئية أثناء تغيير الصفحات. |
int | PageZoom | 100 | نسبة التكبير الأولية. |
int | ZoomStep | 10 | النسبة المضافة أو المزالة بأوامر التكبير. |
int | MaxZoom | 300 | الحد الأقصى لنسبة التكبير. |
bool | ShowToolTip | true | إظهار تلميح موقع الصفحة أثناء التمرير. |
string | ToolTipPageText | "Page " | البادئة المستخدمة في تلميح الصفحة. |
bool | CacheEnabled | false | الاحتفاظ بنافذة متحركة من صور الصفحات في ذاكرة المتصفح. لا يستخدم localStorage. |
bool | LargeDoc | false | إضافة عناصر الصفحات على دفعات زمنية للوثائق الكبيرة. |
bool | ShowHyperlinks | false | عرض طبقات الروابط الفوقية عندما يستخرج تكوين الخادمها. |
bool | FixedZoom | true | استخدام نسبة تكبير ثابتة بدلاً من إعادة حساب استجابية. |
int | FixedZoomPercent | 100 | تكبير ثابت لسطح المكتب. |
int | FixedZoomPercentMobile | 75 | تكبير ثابت للهواتف المحمولة. |
string | BasePath | "/" | المكان الذي يرسل فيه العارض طلبات الصفحات. "/" هو DocImage.axd في جذر الموقع؛ وإلا الفرع حيث يطابق المضيف UseDoconut()، بدون بادئة / ("doconut" يعني /doconut/DocImage.axd). |
string | ResPath | "doconut-res/images" (26.9.0; "doconut-res" before) | مجلد العنصر يحمل منه صوره الخاصة: مجلد images تحت ResourcesPath، بدون بادئة /. |
string | FitType | "width" | "width"، "height"، أو فارغ لعدم وجود ملاءمة تلقائية. "page" غير مقبول من قبل العنصر الحالي. |
bool | RetryOn409 | false | تمكين الاستطلاع عندما تستجيب إنتاج الصفحات غير المتزامنة/الموزعة 202 Accepted؛ 409 مقبول أيضاً للتوافق مع الخوادم القديمة. غير مطلوب من قبل العارض المتزامن العادي. |
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# | جافاسكريبت |
|---|---|
ShowThumbs | showThumbs |
AutoLoad | autoLoad |
AutoFocus | autoFocus |
AutoPageFocus | autoPageFocus |
PageZoom | pageZoom |
ZoomStep | zoomStep |
MaxZoom | maxZoom |
ShowToolTip | showToolTip |
ToolTipPageText | toolTipPageText |
CacheEnabled | cacheEnabled |
LargeDoc | largeDoc |
ShowHyperlinks | showHyperlinks |
FixedZoom | fixedZoom |
FixedZoomPercent | fixedZoomPercent |
FixedZoomPercentMobile | fixedZoomPercentMobile |
BasePath | BasePath |
ResPath | ResPath |
FitType | FitType |
RetryOn409 | retryOn409 |
الإعدادات الافتراضية لجافاسكريبت
الودجت يحتوي على إعدادات افتراضية أقدم تختلف عن فئة C#. القيم التالية تأتي من تنفيذ docViewer.js الحالي.
| الخيار | الافتراضي | ملاحظات |
|---|---|---|
leftMinWidth / leftMaxWidth | 220 / 800 | حدود عرض لوحة المصغرات. |
showThumbs | true | رؤية المصغرات الأولية. |
autoFocus / autoPageFocus | true / false | autoPageFocus يختلف عن الإعداد الافتراضي لـ C#. |
thumbWidth / thumbHeight / thumbPadding | 150 / 200 / 10 | هندسة المصغرات بالبكسل. |
pageZoom / zoomStep / maxZoom | 100 / 10 / 200 | JavaScript maxZoom يختلف عن C# (300). |
showToolTip / toolTipPageText | true / "Page " | تلميح موضع الصفحة. |
format / doc / AccessToken | "" / 0 / "" | قيم التهيئة الداخلية؛ عادةً ما يتم ملؤها بواسطة View(token). |
debugMode | false | تشخيصات إضافية للعميل. |
FitType | "" | لا يوجد تعديل تلقائي ما لم يتم توفيره. |
BasePath | "DocImage.axd" | الإعداد الافتراضي التاريخي للعميل محفوظ للتوافق. يجب على مضيفي ASP.NET Core الحاليين تعيينه صراحةً إلى فرع middleware المرتبط. |
ResPath | "" | تعيين صراحةً إلى مسار الصور المدمجة. |
cacheEnabled / cacheCount / cacheDelay | false / 3 / 3 | نافذة تحميل الصفحات مسبقًا في الذاكرة والتأخير. |
autoLoad | false | يُنصح بتدفق الرموز الصريح. |
largeDoc | true | يختلف عن الإعداد الافتراضي لـ C#. |
fixedZoom | false | يختلف عن الإعداد الافتراضي لـ C#. |
fixedZoomPercent / fixedZoomPercentMobile | 100 / 50 | القيمة للهواتف المحمولة تختلف عن C# (75). |
showHyperlinks | true | يتطلب استخراجًا من جانب الخادم لإنتاج الطبقات الفوقية. |
قم بتعيين جميع القيم المهمة سلوكيًا بدلاً من الاعتماد على أي مجموعة من الإعدادات الافتراضية:
<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>ردود النداء
| رد النداء | الوسائط | الغرض |
|---|---|---|
onPageLoading | pageNum | بدء طلب صفحة. |
onPageLoaded | pageNum | انتهى تحميل صورة الصفحة. |
onThumbnailClicked | pageNum | اختار المستخدم مصغرة. |
onPageClicked | pageNum | اختار المستخدم صفحة. |
onDoubleClick | none | استقبل العارض نقرة مزدوجة. |
onViewerBusy | none | دخل العارض حالة مشغولة. |
onViewerReady | none | اكتملت التهيئة. |
onViewerError | none | دخل العارض حالة الخطأ. |
onError | message | أرجعت عملية رسالة خطأ. |
onCopy | data | بيانات نسخ النص متاحة. |
onAutoLoadStatus | pageNum | تقدم التحميل التلقائي إلى صفحة. |
onThumbsShown | none | أصبح لوحة المصغرات مرئية. |
onAnnLoaded | none | تم تحميل بيانات التعليقات التوضيحية. |
onAnnSaved | none | تم حفظ بيانات التعليقات التوضيحية. |
onAnnSaveError | none | فشل حفظ التعليقات التوضيحية. |
onAnnClosed | none | تم إغلاق واجهة التعليقات التوضيحية. |
حافظ على ردود النداء سريعة؛ أرسل بيانات القياس بشكل غير متزامن ولا تحجب عرض الصفحة.
كل واحدة من هذه هي خيار في كائن التهيئة. كان العارض السابق يبحث عن الدوال العامة التي استمد أسماءها من معرف الحاوية — صفحة تحتوي على <div id="div_ctlDoc"> كان عليها فقط إعلان function ctlDoc_OnViewerReady(). تم حذف هذا البحث. مرّر الدالة صراحةً:
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 القديمة. عند التفعيل، يقوم الودجت بالاستطلاع باستخدام هذه القيم الافتراضية لجافاسكريبت:
| الخيار | الافتراضي |
|---|---|
retryInitialDelayMs | 250 |
retryBackoffFactor | 1.6 |
retryMaxDelayMs | 2500 |
retryMaxAttempts | 60 |
retryMaxTotalMs | 120000 |
اتركه معطلاً للعارض العادي أحادي العقدة. تمكينه لا يمكن أن يجعل عرضًا متزامنًا غير مدعوم يتحول إلى غير متزامن.
فعّله عندما تُقدم الصفحات من تخزين مشترك باستخدام FirstPagePriority، حيث تُجيب الصفحات اللاحقة بصورة شرعية على 202 Accepted حتى تُكتب. العميل الذي لا يعيد المحاولة يُظهر بلاطات مكسورة للصفحات التي لا تزال تُعرض — راجع التوزيعات الموزعة.
قائمة التحقق من المسار
DoconutOptions.MiddlewarePathيجب أن يصف الفرع الذي تقوم بربطه فعليًا.BasePathيجب أن يستهدف ذلك الفرع، مكتوبًا بدون/الأولي ('doconut'، وليس'/doconut': يضيف العارض الشرطة المائلة، و//doconut/...هو طلب إلى مضيف آخر). التطبيق المرجعي يحتفظ بشكل طلبDocImage.axdالتاريخي على فرعMapWhenوبالتالي يضبطBasePath: '/'.DoconutOptions.ResourcesPathهو مسار المورد المضمن.ResPathعادةً ما يستهدف المجلد الفرعيimagesالخاص به، بدون/أولي —'doconut-res/images'مع البادئة الافتراضية. كانResPathالفارغ صحيحًا في المكتبة السابقة، حيث كانت الموارد تأتي من جذر التطبيق؛ لكنه غير صحيح هنا، ويتسبب في فشل دون ظهور خطأ.ExtractHyperlinksيجب أن يكون مفعلاً في إعداد تنسيق الخادم قبل أن يتمكنshowHyperlinksمن عرض أي شيء.
هل كانت هذه الصفحة مفيدة؟