Διαδικασία Απόδοσης

Από το έγγραφο στις εικόνες σελίδας

Μεταξύ του OpenDocumentAsync και του PNG που φθάνει στον περιηγητή υπάρχουν δύο ξεχωριστά στάδια: επίλυση προβολέα (ποιος κινητήρας φορτώνει το έγγραφο, αποφασίζεται μία φορά ανά άνοιγμα) και επεξεργασία σελίδας (τι συμβαίνει σε κάθε εικόνα σελίδας σε κάθε αίτημα). Η γνώση και των δύο εξηγεί γιατί μια μορφή αποδίδει όπως αποδίδει — και τι αλλάζει πραγματικά το DefaultRender.

Στάδιο 1 — Επίλυση του προβολέα μορφής

Η εργοστασιακή μονάδα αντιστοιχίζει την επέκταση αρχείου σε έναν προβολέα μέσω του καταλόγου μορφών, με τρία επίπεδα προτεραιότητας:

  1. Πρώτα οι προσαρμοσμένοι προβολείς. Οτιδήποτε καταγράψατε με DoconutOptions.RegisterViewer(extension, factory, defaultConfig?) υπερισχύει όλων των ενσωματωμένων.
  2. Ενσωματωμένοι προβολείς οικογένειας. Ο κατάλογος αντιστοιχίζει κάθε επεκτάσιμη επέκταση σε μια οικογένεια προβολέα — Word, Excel, PowerPoint, Pdf, Cad, Dgn, Image, Tiff, Psd, Email, Visio, Project, Xps, Epub, Txt, Html, Mht, Dcn — καθένας με τον δικό του προσαρμογέα κινητήρα. Εάν ένα αδειοδοτημένο πρόσθετο προσφέρει προβολέα για την ίδια επέκταση, ο προβολέας του πρόσθετου αντικαθιστά τον ενσωματωμένο. Το AddDoconut() επικυρώνει τα δικαιώματα των καταχωρημένων πρόσθετων κατά την εκκίνηση· η εναλλακτική λύση του εργοστασίου προς τον ενσωματωμένο προβολέα είναι ένας αμυντικός κανόνας χρόνου εκτέλεσης.
  3. Μορφές μόνο με πρόσθετο. Ορισμένες επεκτάσεις δεν έχουν καθόλου ενσωματωμένο προβολέα — το DICOM (.dcm) υπάρχει μόνο μέσω του πρόσθετου DICOM. Το άνοιγμα ενός τέτοιου χωρίς την απαιτούμενη δυνατότητα προκαλεί εξαίρεση:
text
LicenseException: This document type requires the 'Dicom' plugin license.

Μια επέκταση χωρίς προβολέα προκαλεί:

text
FormatNotSupportedException: Document format '<extension>' is not supported.

Μετά την επίλυση, η διαμόρφωση καθορίζεται: το ρητό αντικείμενο διαμόρφωσης εάν το περάσατε, διαφορετικά η προεπιλεγμένη διαμόρφωση της μορφής από τον κατάλογο. Το DocOptions.Password αντιγράφεται στη διαμόρφωση για προστατευμένα έγγραφα.

Στάδιο 1b — Λειτουργία ανακατεύθυνσης (DefaultRender = false)

Οι περισσότερες διαμορφώσεις ανά μορφή εκθέτουν μια σημαία DefaultRender. Επιλέγει μεταξύ δύο θεμελιωδώς διαφορετικών διαδρομών:

  • DefaultRender = true — το έγγραφο αποδίδεται εγγενώς, απευθείας σε εικόνες σελίδας.
  • DefaultRender = false — το έγγραφο πρώτα μετατρέπεται σε PDF στη μνήμη, ο κινητήρας προέλευσης απελευθερώνεται, και ένας προβολέας PDF αναλαμβάνει. Το παραγόμενο PDF ενσωματώνει πραγματικό κείμενο, ώστε η πλήρης αναζήτηση κειμένου να λαμβάνει εικονοστοιχικές ακριβείς εγγενείς επισημάνσεις· η pipeline εξαναγκάζει τα AllowSearch και AllowCopy να είναι ενεργά για το ανακατευθυνόμενο PDF, καθώς η μετατροπή είναι αόρατη στον χρήστη.

Τα XPS και η προεπιλογή του καταλόγου για MHT χρησιμοποιούν τη διαδρομή ανακατεύθυνσης. Μια προβολή PDF μπορεί να παρέχει εγγενή αναζήτηση για μορφές όπως HTML και Microsoft Project. Εάν το παραγόμενο PDF περιέχει εικόνες χωρίς στρώση κειμένου, ο τυπικός προβολέας δεν μπορεί να αναζητήσει αυτά τα pixel.

Χρησιμοποιήστε τη λειτουργία ανακατεύθυνσης όταν χρειάζεστε μια προβολή PDF με κείμενο — με κόστος αρχικής μετατροπής όταν το έγγραφο ανοίγει.

Στάδιο 2 — Η pipeline εικόνας σελίδας

Οι αποδοθείσες σελίδες επεξεργάζονται ανά αίτημα μέσω μίας σταθερής ακολουθίας:

text
raw page PNG → watermark → rotate/flip → scale → annotation burn → PNG to the response
  • Υδατογράφημα — εφαρμόζεται από την κατάσταση της άδειας (έλλειψη άδειας, λήξη προσωρινής ή συνδρομής, μη έγκυρος τομέας, λάθος έκδοση) και από το DocOptions.Watermark για το δικό σας προσαρμοσμένο κείμενο. Μια σωστά αδειοδοτημένη εφαρμογή — ή ενεργή προσωρινή άδεια — χωρίς προσαρμοσμένο υδατογράφημα παραλείπει αυτό το βήμα.
  • Περιστροφή/αναστροφή — η κατάσταση ανά σελίδα που ο χρήστης ορίζει στο widget (90°/180°/270°, οριζόντιες/κατακόρυφες αναστροφές) αποθηκεύεται στη συνεδρία και εφαρμόζεται σε κάθε επόμενη απόδοση αυτής της σελίδας.
  • Κλίμακα — οι μικρογραφίες και τα επίπεδα ζουμ παράγονται με κλιμάκωση της αποδοθείσας σελίδας στο ζητούμενο μέγεθος στόχου· το 0 σημαίνει εξυπηρέτηση στο αρχικό μέγεθος.
  • Καψίματα σημειώσεων — οι αποθηκευμένες σημειώσεις σχεδιάζονται πάνω στο bitmap ώστε οι εξαγωγές και οι εικόνες σελίδας να τις εμφανίζουν.
  • Κωδικοποίηση — το αποτέλεσμα κωδικοποιείται σε PNG χρησιμοποιώντας pooled memory streams και γράφεται απευθείας στην HTTP απόκριση.

Τα σφάλματα μέσα στο middleware επιστρέφονται ως εικόνες σφάλματος PNG (κόκκινο κείμενο σε λευκό) αντί για σελίδες σφάλματος HTTP, ώστε το widget να μπορεί να τις εμφανίσει στην περιοχή της σελίδας.

Caching σελίδων

BaseConfig.CachePages (προεπιλογή true) διατηρεί τις αποδοθείσες εικόνες σελίδας στη μνήμη για τη διάρκεια της συνεδρίας του εγγράφου, ώστε η επανεπίσκεψη μιας σελίδας να μην την αποδίδει ξανά. Το BaseConfig.ImageResolution (25–300 DPI, 0 = προεπιλογή μορφής) είναι ο κύριος ρυθμιστής ποιότητας/μνήμης· η προεπιλογή κάθε μορφής τεκμηριώνεται στη σελίδα διαμόρφωσής της.

Πού να ρυθμίσετε τι

ΘέλετεΡύθμιση
Πιο καθαρές σελίδεςImageResolution on the format config
Ακριβής αναζήτηση κειμένου σε HTML/EPUB/email/MHT/MPPDefaultRender = false on the format config
Μικρότερη μνήμη σε τεράστια έγγραφαCachePages = false, close sessions explicitly
Το δικό σας στίγμα σε κάθε σελίδαDocOptions.Watermark

Ήταν αυτή η σελίδα χρήσιμη;