THotPDF.BuildLoadedPageSVG Method
Δημιουργεί ένα αυτόνομο (standalone) έγγραφο SVG από την επιλεγμένη φορτωμένη σελίδα PDF
Δήλωση
function BuildLoadedPageSVG(PageIndex: Integer): AnsiString; overload;
function BuildLoadedPageSVG(PageIndex: Integer;
EmbedFonts: boolean): AnsiString; overload;
Μονάδα
HPDFDoc
Παράμετροι
| Όνομα | Σκοπός |
|---|---|
PageIndex | Δείκτης της φορτωμένης σελίδας με βάση το μηδέν |
EmbedFonts | True γράφει τους γλύφους των ενσωματωμένων γραμματοσειρών στο SVG ως περιγράμματα, ώστε η σελίδα να δείχνει το ίδιο εκεί που αυτές οι γραμματοσειρές δεν είναι εγκατεστημένες. False, και το overload χωρίς αυτή την παράμετρο, αφήνει το κείμενο στις εγκατεστημένες γραμματοσειρές του viewer |
Τιμή επιστροφής
Επιστρέφει το πλήρες έγγραφο SVG, ή κενή συμβολοσειρά όταν η σελίδα δεν μπορεί να εξαχθεί
Σημειώσεις χρήσης
- Οι διαδρομές, το αποκωδικοποιημένο κείμενο, τα image XObjects, οι inline εικόνες και τα αναδρομικά Form XObjects εκπέμπονται μέσω της κοινής διεπαφής content-device interpreter· ένα Form XObject ξεκινά με τα χρώματα που ισχύουν στο σημείο όπου ζωγραφίζεται
- Ο καμβάς καλύπτει το ορατό τμήμα της σελίδας, με το
/CropBoxτου περικομμένο στο/MediaBoxτου (βλ.GetLoadedPageVisibleBox), στραμμένο κατά το/Rotate· η κάτω αριστερή γωνία του box αντιστοιχίζεται στη γωνία του καμβά ακόμα κι όταν το box δεν ξεκινά από την αρχή των αξόνων - Το κείμενο γράφεται σε UTF-8 με μία θέση
xανά χαρακτήρα καιxml:space="preserve", οπότε τα κενά διατηρούνται· τα ligature glyphs αναπτύσσονται σε όλους τους χαρακτήρες που εκπροσωπούν, και οι κωδικοί που δεν επιτρέπει το XML 1.0 γίνονται U+FFFD - Η τοποθέτηση κειμένου ακολουθεί την πλήρη μηχανή κειμένου (text matrix), συμπεριλαμβανομένων των character και word spacing, της οριζόντιας κλιμάκωσης, της ανόδου (rise) και των προσαρμογών
TJ· οι render modes 0 έως 2 γεμίζουν, περιγράφουν ή κάνουν και τα δύο, η λειτουργία 3 δεν σχεδιάζει τίποτα, και τα glyphs κειμένου σε modes 4 έως 7 γίνονται επίσης clipping path από το τέλος του αντικειμένου κειμένου (ET) έως το τέλος της κατάστασης γραφικών - Το κείμενο χρησιμοποιεί εγκατεστημένες γραμματοσειρές: οι standard 14 οικογένειες και τα TrueType αντίστοιχά τους αντιστοιχίζονται σε Helvetica ή Arial, Times New Roman και Courier New, και οι άλλες γραμματοσειρές ονομάζονται από την οικογένειά τους, επίσης με κενά μεταξύ των λέξεων (
MyriadPro, Myriad Pro), ακολουθούμενες από generic οικογένεια που προκύπτει από τα flags του font descriptor ή το όνομα. Έντονο και πλάγιο κείμενο παίρνειfont-weightκαιfont-styleαπό το τμήμα στυλ του ονόματος της γραμματοσειράς (Arial-BoldMT,Helvetica-Oblique,MinionPro-It) και από το βάρος, τα flags και την italic angle του font descriptor - Με
EmbedFontsσεTrue, κείμενο σε γραμματοσειρά της οποίας το πρόγραμμα TrueType ή CFF είναι ενσωματωμένο στο PDF ζωγραφίζεται από τα περιγράμματα γλύφων του προγράμματος. Κάθε γλύφος ορίζεται μία φορά ως<path>σε<defs>και τοποθετείται με<use>όπου εμφανίζεται, ώστε επαναλαμβανόμενοι χαρακτήρες να μην επαναλαμβάνουν τα περιγράμματά τους· οι λειτουργίες γεμίσματος και περιγράμματος, τα πλάτη γραμμών και το clipping κειμένου ακολουθούν το κείμενο όπως για SVG κείμενο. Το ίδιο το κείμενο διατηρείται ως διαφανές SVG κείμενο πάνω από τα περιγράμματα, ώστε να μπορεί ακόμα να επιλεγεί, να αναζητηθεί και να διαβαστεί από υποβοηθούμενη τεχνολογία - Γραμματοσειρές που δεν είναι ενσωματωμένες, προγράμματα γραμματοσειρών Type 1 (
/FontFile), κάθετη γραφή CJK, και runs με κωδικό που δεν έχει γλύφο στο ενσωματωμένο πρόγραμμα μένουν SVG κείμενο ακόμα και μεEmbedFontsορισμένο. Τα περιγράμματα μεγαλώνουν το αρχείο, συχνά δύο έως τρεις φορές για σελίδες με πολύ κείμενο - Χρώματα γεμίσματος και περιγράμματος σε οποιοδήποτε colour space (
DeviceGray,DeviceRGB,DeviceCMYK, ICCBased, calibrated, Lab, Indexed, Separation και DeviceN) μετατρέπονται σε sRGB όπως τα μετατρέπει και ο renderer της σελίδας - Διαδρομές γεμάτες με tiling pattern γεμίζουν με ένα SVG
<pattern>που επαναλαμβάνει το κελί του pattern κάθεXStepκαιYStep, περικομμένο στο/BBoxτου· άχρωμα patterns ζωγραφίζουν το κελί στο χρώμα που δίνεται με το pattern. Διαδρομές γεμάτες με shading pattern παίρνουν το gradient ή το mesh της σκίασής του, περικομμένο στη διαδρομή. Ο μετασχηματισμός του pattern εφαρμόζεται στον χώρο της σελίδας ή της φόρμας που χρησιμοποιεί το pattern. Περιγράμματα με pattern χρησιμοποιούν το χρώμα του, μαύρο για έγχρωμα patterns - Τα Type 2 axial και Type 3 radial shadings χρησιμοποιούν SVG gradients με οριοθετημένα δειγματοληπτικά stops· ένα άκρο που το
Extendδεν επεκτείνει μένει ασχείρωτο, όπως στο PDF - Τα mesh shadings Type 4 έως Type 7 χρησιμοποιούν οριοθετημένο διαφανές PNG data URI με το πολύ 16 εκατομμύρια pixels
- Οι inline εικόνες αποκωδικοποιούνται μέσω της ίδιας διαδρομής εικόνων φορτωμένου εγγράφου και ενσωματώνονται ως data URIs PNG
- Τα image masks, συμπεριλαμβανομένων των inline, γίνονται PNG εικόνες στο τρέχον χρώμα γεμίσματος που είναι διαφανείς όπου δεν έχει ζωγραφιστεί τίποτα· τα
/SMaskκαι/Maskstencils δίνουν στην εικόνα κανάλι alpha, στην ανάλυση της μάσκας όταν αυτή είναι λεπτότερη από την εικόνα. Οι πίνακες color-key/Maskκάνουν τα αντίστοιχα pixels διαφανή για εικόνες Flate, LZW και χωρίς φίλτρο - Τα clipping paths
WκαιW*γίνονται SVG στοιχεία<clipPath>που λήγουν με την κατάσταση γραφικών μέσα στην οποία ορίστηκαν· τα Form XObjects περικόπτονται στο/BBoxτους, και τα axial και radial shadings στο δικό τους - Κείμενο σε γραμματοσειρές Type 3 ζωγραφίζεται με τις διαδικασίες γλύφων της γραμματοσειράς, τοποθετημένο μέσω του
/FontMatrixτης, αντί ως SVG κείμενο· γλύφοι που ξεκινούν μεd1ζωγραφίζουν στο τρέχον χρώμα γεμίσματος. Οι γλύφοι Type 3 δεν προστίθενται στο clipping path των render modes 4 έως 7 - Το χρώμα
Backgroundμιας σκίασης γεμίζει την περιοχή ενός shading pattern πριν τη σκίαση, ώστε να φαίνεται όπου η σκίαση δεν ζωγραφίζει· όπως στο PDF, αγνοείται όταν η σκίαση ζωγραφίζεται μεsh - Σκιάσεις Type 1 βασισμένες σε συνάρτηση δειγματοληπτούνται πάνω στο
Domainτους σε PNG data URI έως 256 επί 256 δείγματα, τοποθετημένο μέσω τουMatrixτης σκίασης· ο viewer το εξομαλύνει όταν κλιμακώνεται