Cấu hình Viewer

Tùy chọn widget trình xem phía máy khách

ViewerConfig (namespace Doconut) mô tả giao diện và hành vi của trình xem trong trình duyệt. Nó không ảnh hưởng đến chất lượng hiển thị tài liệu; hãy sử dụng cấu hình định dạng cho việc đó. Lớp C# và widget JavaScript lâu đời có các mặc định khác nhau, vì vậy hãy ánh xạ các giá trị một cách rõ ràng.

Hai thay đổi phía máy khách trong bản phát hành này bị lỗi im lặng. Các hàm xử lý được truyền dưới dạng tùy chọn — widget không còn suy ra tên hàm toàn cục từ id của container — và ResPath phải trỏ tới tiền tố tài nguyên thay vì gốc ứng dụng. Cả hai đều để máy chủ hoạt động hoàn hảo và không báo gì trong console của trình duyệt. Nếu bạn đang chuyển một trang từ thư viện trước, hãy đọc Callbacks và Path checklist trước bất kỳ thứ gì khác.

Thuộc tính C#

KiểuThuộc tínhMặc địnhMô tả
boolShowThumbstrueHiển thị bảng điều khiển hình thu nhỏ.
boolAutoLoadfalseTự động tải sau khi khởi tạo. Luồng token thông thường gọi View(token) một cách rõ ràng.
boolAutoFocustrueDi chuyển tiêu điểm/cuộn của trình duyệt tới trình xem trong quá trình khởi tạo.
boolAutoPageFocustrueGiữ hình thu nhỏ hiện tại hiển thị khi các trang thay đổi.
intPageZoom100Phần trăm thu phóng ban đầu.
intZoomStep10Phần trăm được thêm hoặc bớt bởi các lệnh thu phóng.
intMaxZoom300Phần trăm thu phóng tối đa.
boolShowToolTiptrueHiển thị tooltip vị trí trang khi cuộn.
stringToolTipPageText"Page "Tiền tố được sử dụng trong tooltip trang.
boolCacheEnabledfalseGiữ một cửa sổ di động của các hình ảnh trang trong bộ nhớ trình duyệt. Nó không sử dụng localStorage.
boolLargeDocfalseThêm các phần tử trang theo các lô thời gian cho tài liệu lớn.
boolShowHyperlinksfalseHiển thị lớp phủ siêu liên kết khi cấu hình máy chủ đã trích xuất chúng.
boolFixedZoomtrueSử dụng phần trăm thu phóng cố định thay vì tính toán đáp ứng.
intFixedZoomPercent100Thu phóng cố định trên máy tính để bàn.
intFixedZoomPercentMobile75Thu phóng cố định trên thiết bị di động.
stringBasePath"/"Nơi trình xem gửi yêu cầu trang. "/" là DocImage.axd ở gốc site; nếu không, là nhánh nơi host ánh xạ UseDoconut(), không có dấu / đầu ("doconut" có nghĩa là /doconut/DocImage.axd).
stringResPath"doconut-res/images" (26.9.0; "doconut-res" before)Thư mục mà widget tải các hình ảnh của mình từ: thư mục images dưới ResourcesPath, không có dấu / đầu.
stringFitType"width""width", "height", hoặc rỗng để không tự động vừa. "page" không được widget hiện tại chấp nhận.
boolRetryOn409falseBật polling khi quá trình tạo trang bất đồng bộ/phân tán trả về 202 Accepted; 409 cũng được chấp nhận để tương thích với các máy chủ cũ. Không cần thiết cho trình xem đồng bộ thông thường.
csharp
var config = new ViewerConfig
{
    ShowThumbs = true,
    AutoLoad = false,
    PageZoom = 100,
    MaxZoom = 300,
    FitType = "width",
    BasePath = "doconut",           // không có dấu '/' đầu: trình xem sẽ thêm nó ("/doconut" sẽ trở thành //doconut, một host khác)
    ResPath = "doconut-res/images",
    ShowHyperlinks = true
};

Ánh xạ C# sang JavaScript

Không truyền một ViewerConfig đã được tuần tự hoá trực tiếp vào docViewer(...). Hầu hết các khóa của widget sử dụng camelCase, trong khi ba khóa đường dẫn/điều chỉnh đã được thiết lập sử dụng PascalCase.

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

Mặc định JavaScript

Widget này có các mặc định cũ hơn so với lớp C#. Các giá trị sau được lấy từ triển khai hiện tại của docViewer.js.

Tùy chọnMặc địnhGhi chú
leftMinWidth / leftMaxWidth220 / 800Giới hạn chiều rộng của khung thu nhỏ.
showThumbstrueHiển thị thu nhỏ ban đầu.
autoFocus / autoPageFocustrue / falseautoPageFocus khác với mặc định của C#.
thumbWidth / thumbHeight / thumbPadding150 / 200 / 10Hình học thu nhỏ tính bằng pixel.
pageZoom / zoomStep / maxZoom100 / 10 / 200maxZoom của JavaScript khác với C# (300).
showToolTip / toolTipPageTexttrue / "Page "Tooltip vị trí trang.
format / doc / AccessToken"" / 0 / ""Giá trị khởi tạo nội bộ; thường được điền bởi View(token).
debugModefalseChẩn đoán khách hàng bổ sung.
FitType""Không tự động vừa nếu không được cung cấp.
BasePath"DocImage.axd"Mặc định khách hàng lịch sử được giữ lại để tương thích. Các máy chủ ASP.NET Core hiện tại phải đặt nó một cách rõ ràng tới nhánh middleware đã ánh xạ.
ResPath""Đặt một cách rõ ràng tới đường dẫn hình ảnh nhúng.
cacheEnabled / cacheCount / cacheDelayfalse / 3 / 3Cửa sổ và độ trễ tải trước trang trong bộ nhớ.
autoLoadfalseKhuyến nghị sử dụng luồng token rõ ràng.
largeDoctrueKhác với mặc định của C#.
fixedZoomfalseKhác với mặc định của C#.
fixedZoomPercent / fixedZoomPercentMobile100 / 50Giá trị di động khác với C# (75).
showHyperlinkstrueYêu cầu trích xuất phía máy chủ để tạo lớp phủ.

Đặt tất cả các giá trị quan trọng về hành vi thay vì dựa vào bất kỳ bộ mặc định nào:

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>

Các callback

CallbackĐối sốMục đích
onPageLoadingpageNumYêu cầu tải trang đang bắt đầu.
onPageLoadedpageNumHình ảnh trang đã tải xong.
onThumbnailClickedpageNumNgười dùng đã chọn một ảnh thu nhỏ.
onPageClickedpageNumNgười dùng đã chọn một trang.
onDoubleClicknoneTrình xem nhận được một cú nhấp đôi.
onViewerBusynoneTrình xem chuyển sang trạng thái bận.
onViewerReadynoneKhởi tạo hoàn tất.
onViewerErrornoneTrình xem chuyển sang trạng thái lỗi.
onErrormessageMột thao tác trả về thông báo lỗi.
onCopydataDữ liệu sao chép văn bản có sẵn.
onAutoLoadStatuspageNumTự động tải tiến tới một trang.
onThumbsShownnoneBảng thu nhỏ trở nên hiển thị.
onAnnLoadednoneDữ liệu chú thích đã tải.
onAnnSavednoneDữ liệu chú thích đã được lưu.
onAnnSaveErrornoneLưu chú thích thất bại.
onAnnClosednoneGiao diện chú thích đã đóng.

Giữ các callback nhanh; gửi dữ liệu telemetry một cách bất đồng bộ và không chặn việc render trang.

Mỗi mục trong số này là một tùy chọn trong đối tượng khởi tạo. Trình xem trước đây tìm kiếm các hàm toàn cục dựa trên tên được suy ra từ id của container — một trang có <div id="div_ctlDoc"> chỉ cần khai báo function ctlDoc_OnViewerReady(). Việc tìm kiếm này đã bị loại bỏ. Hãy truyền hàm một cách rõ ràng:

javascript
objctlDoc = $('#div_ctlDoc').docViewer({
    // ... các tùy chọn hiện có của bạn ...
    onViewerBusy:     ctlDoc_OnViewerBusy,      // đã được tìm bằng tên
    onViewerReady:    ctlDoc_OnViewerReady,     // đã được tìm bằng tên
    onCopy:           ctlDoc_Copy,              // đã là ctlDoc_Copy(text)
    onAutoLoadStatus: ctlDoc_AutoLoadStatus     // đã là ctlDoc_AutoLoadStatus(page)
});

Việc tìm kiếm cũ được bao bọc trong một catch rỗng, vì vậy không có gì được báo cáo. Trong phiên bản này các hàm đơn giản không bao giờ chạy: triệu chứng thường gặp là biểu tượng quay đang bận không bao giờ dừng, vì trình xử lý ẩn nó là onViewerReady. Tài liệu phía sau đang được render đúng cách.

Không có callback khi nhấp liên kết — việc xử lý siêu liên kết đã được tích hợp sẵn và được điều khiển bởi showHyperlinks.

Nhóm phương thức công cộng

NhómCác phương thức chung
Vòng đờiView(token, accessToken?), Close(server?), Token(), Init(), IsLoaded()
Điều hướngGotoPage(page), ShowPage(page, focus?), Next(next), CurrentPage(), TotalPages()
Thu phóng và vừa khítZoom(zoomIn), CurrentZoom(), FitType(value), Refit()
HướngRotate(page, angle), Flip(page, flipType)
Hình thu nhỏHideThumbs(hide), ThumbSize(size), ReloadThumbs(width), ScrollToThumb(thumb)
Tìm kiếmCanSearch(), Search(...), SearchMatchCount(), SearchSummary(...), GotoSearchMatch(...)
Ghi chúSaveAnnotations(), GetAnnotations(), PushAnnotations(...), CloseAnnotations(...), ShowAnnotations(...)
Sao chépCopy(...), CopyPage(pageNumber), CopyMode(enabled)

Tệp JavaScript cũng chứa các trợ giúp nội bộ. Chỉ xem các phương thức được UI tham chiếu sử dụng và được tài liệu ở đây hoặc trong các hướng dẫn tính năng là các điểm tích hợp ổn định.

Thử lại khi một trang phân tán vẫn đang render

retryOn409 giữ nguyên tên lịch sử của nó. Nó dùng cho việc tạo trang bất đồng bộ và
thử lại phản hồi sẵn sàng 202 Accepted cũng như tín hiệu cũ 409 Conflict.
Khi được bật, widget sẽ thăm dò với các giá trị mặc định JavaScript sau:

Tùy chọnMặc định
retryInitialDelayMs250
retryBackoffFactor1.6
retryMaxDelayMs2500
retryMaxAttempts60
retryMaxTotalMs120000

Để nó tắt cho viewer đơn node bình thường. Bật nó không thể làm cho một render đồng bộ không được hỗ trợ trở thành bất đồng bộ.

Bật nó khi các trang được phục vụ từ lưu trữ chung với FirstPagePriority, nơi các trang sau hợp pháp trả về 202 Accepted cho đến khi chúng được ghi. Một client không
thử lại sẽ hiển thị các ô gạch vỡ cho các trang vẫn đang render — xem
Triển khai Phân tán.

Danh sách kiểm tra đường dẫn

  • DoconutOptions.MiddlewarePath phải mô tả nhánh bạn thực sự ánh xạ.
  • BasePath phải nhắm tới nhánh đó, viết mà không có dấu / đầu ('doconut', không phải '/doconut': viewer sẽ thêm dấu gạch chéo, và //doconut/... là một yêu cầu tới máy chủ khác). Ứng dụng tham chiếu giữ dạng yêu cầu lịch sử
    DocImage.axd trên một nhánh MapWhen và do đó đặt BasePath: '/'.
  • DoconutOptions.ResourcesPath là tuyến đường tài nguyên nhúng.
  • ResPath thường nhắm tới thư mục con images của nó, không có dấu / đầu — 'doconut-res/images' với
    tiền tố mặc định. Một ResPath rỗng đã đúng trong thư viện trước, nơi tài nguyên
    đến từ gốc ứng dụng; nó không đúng ở đây, và sẽ thất bại mà không có lỗi.
  • ExtractHyperlinks phải được bật trong cấu hình định dạng máy chủ trước khi showHyperlinks có thể hiển thị bất cứ thứ gì.

Trang này có hữu ích không?