إعدادات العارض
خيارات عنصر واجهة المستخدم للعارض العميل
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# إلى جافاسكريبت
| 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 | maxZoom في جافاسكريبت يختلف عن C# (300). |
showToolTip / toolTipPageText | true / "Page " | تلميح موضع الصفحة. |
format / doc / AccessToken | "" / 0 / "" | قيم التهيئة الداخلية؛ عادةً ما تُملأ بواسطة View(token). |
debugMode | false | تشخيصات إضافية للعميل. |
FitType | "" | لا يوجد ضبط تلقائي ما لم يتم توفيره. |
BasePath | "DocImage.axd" | الإعداد الافتراضي التاريخي للعميل محفوظ للتوافق. يجب على مضيفي ASP.NET Core الحاليين تعيينه صراحةً إلى فرع الوسيط المربوط. |
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 | لا شيء | استقبل العارض نقرة مزدوجة. |
onViewerBusy | لا شيء | دخل العارض حالة الانشغال. |
onViewerReady | لا شيء | اكتملت التهيئة. |
onViewerError | لا شيء | دخل العارض حالة الخطأ. |
onError | message | أرجعت عملية رسالة خطأ. |
onCopy | data | بيانات نسخ النص متاحة. |
onAutoLoadStatus | pageNum | تقدم التحميل التلقائي إلى صفحة. |
onThumbsShown | لا شيء | ظهرت لوحة المصغرات. |
onAnnLoaded | لا شيء | تم تحميل بيانات التعليقات التوضيحية. |
onAnnSaved | لا شيء | تم حفظ بيانات التعليقات التوضيحية. |
onAnnSaveError | لا شيء | فشل حفظ التعليقات التوضيحية. |
onAnnClosed | لا شيء | أُغلق واجهة التعليقات التوضيحية. |
احرص على أن تكون ردود النداء سريعة؛ أرسل بيانات القياس عن بعد بشكل غير متزامن ولا تحجب عملية عرض الصفحة.
كل واحدة من هذه هي خيار في كائن التهيئة. كان العارض السابق يبحث عن الدوال العامة التي اشتق أسماؤها من معرف الحاوية — صفحة تحتوي على <div id="div_ctlDoc"> كان عليها فقط إعلان function ctlDoc_OnViewerReady(). تم إلغاء هذا البحث. قم بتمرير الدالة صراحةً:
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:
| الخيار | الافتراضي |
|---|---|
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من عرض أي شيء.
هل كانت هذه الصفحة مفيدة؟