Διαμόρφωση Προβολέα
Επιλογές widget προβολέα πελάτη
ViewerConfig (namespace Doconut) περιγράφει την εμφάνιση και τη συμπεριφορά του προβολέα του προγράμματος περιήγησης. Δεν επηρεάζει την ποιότητα απόδοσης του εγγράφου· χρησιμοποιήστε μια διαμόρφωση μορφής γι' αυτό. Η κλάση C# και το μακροχρόνιο widget JavaScript έχουν διαφορετικές προεπιλογές, επομένως αντιστοιχίστε τις τιμές ρητά.
Δύο αλλαγές στην πλευρά του πελάτη σε αυτή την έκδοση αποτυγχάνουν σιωπηρά. Οι συναρτήσεις διαχειριστή περνιούνται ως επιλογές — το widget δεν παράγει πλέον ονόματα καθολικών συναρτήσεων από το id του container — και
ResPathπρέπει να δείχνει στο πρόθεμα των πόρων αντί για τη ρίζα της εφαρμογής. Και τα δύο αφήνουν τον διακομιστή να λειτουργεί τέλεια και δεν αναφέρουν τίποτα στην κονσόλα του προγράμματος περιήγησης. Αν προωθείτε μια σελίδα από την προηγούμενη βιβλιοθήκη, διαβάστε Callbacks και Path checklist πριν οτιδήποτε άλλο.
Ιδιότητες C#
| Τύπος | Ιδιότητα | Προεπιλογή | Περιγραφή |
|---|---|---|---|
bool | ShowThumbs | true | Εμφανίζει το πάνελ μικρογραφιών. |
bool | AutoLoad | false | Φορτώνεται αυτόματα μετά την αρχικοποίηση. Η κανονική ροή token καλεί το View(token) ρητά. |
bool | AutoFocus | true | Μετακινεί την εστίαση/κύλιση του προγράμματος περιήγησης στον προβολέα κατά την αρχικοποίηση. |
bool | AutoPageFocus | true | Διατηρεί την τρέχουσα μικρογραφία ορατή ενώ αλλάζουν οι σελίδες. |
int | PageZoom | 100 | Αρχικό ποσοστό ζουμ. |
int | ZoomStep | 10 | Ποσοστό που προστίθεται ή αφαιρείται από τις εντολές ζουμ. |
int | MaxZoom | 300 | Μέγιστο ποσοστό ζουμ. |
bool | ShowToolTip | true | Εμφανίζει το tooltip θέσης σελίδας κατά την κύλιση. |
string | ToolTipPageText | "Page " | Πρόθεμα που χρησιμοποιείται στο tooltip της σελίδας. |
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) | Φάκελος από τον οποίο το widget φορτώνει τις δικές του εικόνες: ο φάκελος images κάτω από το ResourcesPath, χωρίς προπορευόμενο /. |
string | FitType | "width" | "width", "height", ή κενό για καμία αυτόματη προσαρμογή. Το "page" δεν γίνεται αποδεκτό από το τρέχον widget. |
bool | RetryOn409 | false | Ενεργοποιήστε το polling όταν η ασύγχρονη/διανεμημένη παραγωγή σελίδων ανταποκρίνεται 202 Accepted· το 409 επίσης γίνεται αποδεκτό για συμβατότητα με παλαιότερους διακομιστές. Δεν απαιτείται από τον κανονικό συγχρονισμένο προβολέα. |
var config = new ViewerConfig
{
ShowThumbs = true,
AutoLoad = false,
PageZoom = 100,
MaxZoom = 300,
FitType = "width",
BasePath = "doconut", // χωρίς αρχικό '/' : ο προβολέας το προσθέτει ("/doconut" θα γίνει //doconut, άλλο host)
ResPath = "doconut-res/images",
ShowHyperlinks = true
};Αντιστοίχιση C# σε JavaScript
Μην περάσετε ένα άμεσα σειριοποιημένο ViewerConfig στο docViewer(...). Τα περισσότερα κλειδιά του widget είναι camelCase, ενώ τρία καθιερωμένα κλειδιά διαδρομής/προσαρμογής είναι PascalCase.
| C# | JavaScript |
|---|---|
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 |
Προεπιλογές JavaScript
Το widget έχει παλαιότερες προεπιλογές που διαφέρουν από την κλάση 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 πρέπει να το ορίσουν ρητά στο αντιστοιχισμένο κλαδί μεσαίου λογισμικού. |
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 | Το UI σχολιασμού έκλεισε. |
Κρατήστε τις ανακλήσεις γρήγορες· στείλτε τηλεμετρία ασύγχρονα και μην μπλοκάρετε την απόδοση της σελίδας.
Καθένα από αυτά είναι μια επιλογή στο αντικείμενο init. Ο προηγούμενος προβολέας έψαχνε
παγκόσμιες συναρτήσεις των οποίων τα ονόματα προερχόταν από το αναγνωριστικό του container — μια σελίδα με
<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 περιέχει επίσης εσωτερικούς βοηθούς. Θεωρήστε μόνο τις μεθόδους που χρησιμοποιούνται από το αναφορά UI και τεκμηριώνονται εδώ ή στους οδηγούς χαρακτηριστικών ως σταθερά σημεία ενσωμάτωσης.
Επανάληψη ενώ μια κατανεμημένη σελίδα εξακολουθεί να αποδίδεται
retryOn409 διατηρεί το ιστορικό του όνομα. Χρησιμοποιείται για ασύγχρονη παραγωγή σελίδων και επαναπροσπαθεί την τρέχουσα απάντηση ετοιμότητας 202 Accepted καθώς και το παλαιότερο σήμα 409 Conflict. Όταν είναι ενεργοποιημένο, το widget ελέγχει με αυτές τις προεπιλογές 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μπορεί να εμφανίσει οτιδήποτε.
Ήταν αυτή η σελίδα χρήσιμη;