Διαδικασία Απόδοσης
Από το έγγραφο στις εικόνες σελίδας
Μεταξύ του OpenDocumentAsync και του PNG που φθάνει στον περιηγητή υπάρχουν δύο ξεχωριστά στάδια: ανάλυση προβολέα (ποιος κινητήρας φορτώνει το έγγραφο, αποφασίζεται μία φορά ανά άνοιγμα) και επεξεργασία σελίδας (τι συμβαίνει σε κάθε εικόνα σελίδας σε κάθε αίτηση). Η γνώση και των δύο εξηγεί γιατί ένα μορφότυπο αποδίδει όπως αποδίδει — και τι αλλάζει πραγματικά το DefaultRender.
Στάδιο 1 — Ανάλυση του προβολέα μορφότυπου
Η εργοστασιακή μονάδα αντιστοιχίζει την επέκταση αρχείου σε έναν προβολέα μέσω του καταλόγου μορφότυπων, με τρία επίπεδα προτεραιότητας:
- Προσαρμοσμένοι προβολείς πρώτα. Οτιδήποτε καταχωρίσατε με
DoconutOptions.RegisterViewer(extension, factory, defaultConfig?)υπερισχύει όλων των ενσωματωμένων. - Ενσωματωμένοι προβολείς οικογένειας. Ο κατάλογος αντιστοιχίζει κάθε επεκτάσιμη επέκταση σε μια οικογένεια προβολέα — Word, Excel, PowerPoint, Pdf, Cad, Dgn, Image, Tiff, Psd, Email, Visio, Project, Xps, Epub, Txt, Html, Mht, Dcn — καθένας με τον δικό του προσαρμογέα κινητήρα. Εάν ένα αδειοδοτημένο πρόσθετο προσφέρει έναν προβολέα για την ίδια επέκταση, ο προβολέας του πρόσθετου αντικαθιστά τον ενσωματωμένο. Το
AddDoconut()επικυρώνει τα δικαιώματα των καταχωρημένων πρόσθετων κατά την εκκίνηση· η εναλλακτική λύση της εργοστασιακής μονάδας προς τον ενσωματωμένο προβολέα είναι ένας αμυντικός κανόνας χρόνου εκτέλεσης. - Μορφότυποι μόνο με πρόσθετο. Ορισμένες επεκτάσεις δεν έχουν καθόλου ενσωματωμένο προβολέα — το DICOM (
.dcm) υπάρχει μόνο μέσω του πρόσθετου DICOM. Το άνοιγμα ενός τέτοιου χωρίς την απαιτούμενη δυνατότητα προκαλεί:
LicenseException: This document type requires the 'Dicom' plugin license.Μια επέκταση χωρίς προβολέα προκαλεί:
FormatNotSupportedException: Document format '<extension>' is not supported.Μετά την ανάλυση, η διαμόρφωση καθορίζεται: το ρητό αντικείμενο διαμόρφωσης αν το περάσατε, αλλιώς η προεπιλεγμένη διαμόρφωση του μορφότυπου από τον κατάλογο. Το DocOptions.Password αντιγράφεται στη διαμόρφωση για προστατευμένα έγγραφα.
Στάδιο 1β — Λειτουργία ανακατεύθυνσης (DefaultRender = false)
Οι περισσότερες διαμορφώσεις ανά μορφότυπο εκθέτουν μια σημαία DefaultRender. Επιλέγει μεταξύ δύο θεμελιωδώς διαφορετικών διαδρομών:
DefaultRender = true— το έγγραφο αποδίδει εγγενώς, απευθείας σε εικόνες σελίδας.DefaultRender = false— το έγγραφο πρώτα μετατρέπεται σε PDF στη μνήμη, ο κινητήρας προέλευσης απελευθερώνεται, και ένας προβολέας PDF αναλαμβάνει. Το παραγόμενο PDF ενσωματώνει πραγματικό κείμενο, ώστε η πλήρης αναζήτηση κειμένου να λαμβάνει εικονοστοιχικές ακριβείς εγγενείς επισημάνσεις· η διαδικασία επιβάλλειAllowSearchκαιAllowCopyγια το ανακατευθυνόμενο PDF επειδή η μετατροπή είναι αόρατη στον χρήστη.
Τα XPS και η προεπιλογή του καταλόγου για MHT χρησιμοποιούν τη διαδρομή ανακατεύθυνσης. Μια προβολή PDF μπορεί να παρέχει εγγενή αναζήτηση για μορφότυπους όπως HTML και Microsoft Project. Εάν το παραγόμενο PDF περιέχει εικόνες χωρίς στρώση κειμένου, ο τυπικός προβολέας δεν μπορεί να αναζητήσει αυτά τα εικονοστοιχεία.
Χρησιμοποιήστε τη λειτουργία ανακατεύθυνσης όταν χρειάζεστε μια προβολή PDF με κείμενο — με κόστος μια προκαταρκτική μετατροπή όταν ανοίγει το έγγραφο.
Στάδιο 2 — Η διαδικασία εικόνας σελίδας
Οι αποδοθείσες σελίδες επεξεργάζονται ανά αίτηση μέσω μιας σταθερής ακολουθίας:
raw page PNG → watermark → rotate/flip → scale → annotation burn → PNG to the response- Υδατογράφημα — εφαρμόζεται από την κατάσταση της άδειας (έλλειψη άδειας, ληγμένη προσωρινή ή συνδρομητική, μη έγκυρος τομέας, λανθασμένη έκδοση) και από το
DocOptions.Watermarkγια το δικό σας προσαρμοσμένο κείμενο. Μια σωστά αδειοδοτημένη εφαρμογή — ή ενεργή προσωρινή άδεια — χωρίς προσαρμοσμένο υδατογράφημα παραλείπει αυτό το βήμα. - Περιστροφή/αναστροφή — η κατάσταση ανά σελίδα που ο χρήστης ορίζει στο widget (90°/180°/270°, οριζόντιες/κατακόρυφες αναστροφές) αποθηκεύεται στη συνεδρία και εφαρμόζεται σε κάθε επόμενη απόδοση εκείνης της σελίδας.
- Κλίμακα — οι μικρογραφίες και τα επίπεδα ζουμ παράγονται κλιμακώνοντας την αποδοθείσα σελίδα στο ζητούμενο μέγεθος στόχου·
0σημαίνει εξυπηρέτηση στο αρχικό μέγεθος. - Καψίματος σχολίων — τα αποθηκευμένα σχόλια σχεδιάζονται πάνω στο bitmap ώστε οι εξαγωγές και οι εικόνες σελίδας να τα εμφανίζουν.
- Κωδικοποίηση — το αποτέλεσμα κωδικοποιείται σε PNG χρησιμοποιώντας δεσμευμένες ροές μνήμης και γράφεται απευθείας στην απάντηση HTTP.
Τα σφάλματα μέσα στο middleware επιστρέφονται ως εικόνες σφάλματος PNG (κόκκινο κείμενο σε λευκό) αντί για σελίδες σφάλματος HTTP, ώστε το widget να μπορεί να τις εμφανίσει στην περιοχή της σελίδας.
Κρυφή μνήμη σελίδων
BaseConfig.CachePages (προεπιλογή true) διατηρεί τις αποδοθείσες εικόνες σελίδας στη μνήμη για τη διάρκεια της συνεδρίας εγγράφου, ώστε η επανεπίσκεψη μιας σελίδας να μην την αποδίδει ξανά. Το BaseConfig.ImageResolution (25–300 DPI, 0 = προεπιλογή μορφότυπου) είναι ο κύριος ρυθμιστής ποιότητας/μνήμης· η προεπιλογή κάθε μορφότυπου τεκμηριώνεται στη σελίδα διαμόρφωσής του.
Πού να ρυθμίσετε τι
| Τι θέλετε | Ρύθμιση |
|---|---|
| Πιο καθαρές σελίδες | ImageResolution on the format config |
| Ακριβής αναζήτηση κειμένου σε HTML/EPUB/email/MHT/MPP | DefaultRender = false on the format config |
| Μικρότερη μνήμη σε τεράστια έγγραφα | CachePages = false, close sessions explicitly |
| Το δικό σας στίγμα σε κάθε σελίδα | DocOptions.Watermark |
Ήταν αυτή η σελίδα χρήσιμη;