ComposeNextLayout

Διάταξη σελίδας, σελιδοποίηση, Form XObjects

Περιγραφή

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

Σύνταξη

Function TPDFlibDynamicComponentSession.ComposeNextLayout(
  Page: Integer; SlotLeft, SlotTop, SlotWidth, SlotHeight: Double;
  Const Options: TPDFlibDynamicLayoutOptions;
  Out Placement: TPDFlibDynamicPagePlacement): Integer;

Παράμετροι

PageΥπάρχων αριθμός σελίδας προορισμού με βάση τη μονάδα
SlotLeft, SlotTopΘέση πάνω αριστερά της υποδοχής προορισμού στις τρέχουσες μονάδες εγγράφου
SlotWidth, SlotHeightΠεπερασμένο θετικό μέγεθος υποδοχής προορισμού
Options.ContentWidth, Options.ContentHeightΠεπερασμένος θετικός φυσικός καμβάς που μεταβιβάζεται στο στοιχείο μέσω AvailableWidth και AvailableHeight
Options.OverflowPolicydopReject, dopClip ή dopScaleDown
Options.HorizontalAlignmentdhaLeft, dhaCenter ή dhaRight
Options.VerticalAlignmentdvaTop, dvaCenter ή dvaBottom
Options.PaginationPolicyΚανονικός διαχωρισμός, εφάπαξ εφεδρεία keep-together ή αυστηρή πλήρης τοποθέτηση
Options.MinimumSlotHeightΜη αρνητικό ύψος υποδοχής που απαιτείται προτού ξεκινήσουν κλωνοποίηση και σύνθεση του στοιχείου
Options.MinimumFollowingHeightΜη αρνητικό ύψος που δεσμεύεται μετά από τελικό επιλυμένο τμήμα για το επόμενο στοιχείο

Αποτέλεσμα τοποθέτησης

PageNumber, CompositionIndexΔεσμευμένη σελίδα και αριθμός επιτυχούς σύνθεσης με βάση τη μονάδα
SourceWidth, SourceHeightΦυσικό χρησιμοποιούμενο ορθογώνιο που επέστρεψε το στοιχείο πριν την τοποθέτηση
Left, Top, Width, HeightΤελικό μετασχηματισμένο χρησιμοποιούμενο ορθογώνιο πριν την περικοπή προορισμού
SlotLeft, SlotTop, SlotWidth, SlotHeightΑρχική περιοχή προορισμού
TransformΛογικός affine πίνακας από τοπικές συντεταγμένες στοιχείου σε τελικές συντεταγμένες εγγράφου από πάνω προς τα κάτω
WasClippedTrue όταν η περικοπή κρύβει μέρος του μετασχηματισμένου χρησιμοποιούμενου ορθογωνίου
WasScaledTrue όταν η αναλογική κλιμάκωση είναι μικρότερη του 1

Παρατηρήσεις

Το dopReject διατηρεί τη σελίδα προορισμού και τη δεσμευμένη κατάσταση στοιχείου όταν το φυσικό χρησιμοποιούμενο ορθογώνιο υπερβαίνει οποιαδήποτε διάσταση της υποδοχής Το

dopClip

dopScaleDown διατηρεί τη φυσική κλίμακα και χρησιμοποιεί ισορροπημένο εύρος περικοπής κατάστασης γραφικών γύρω από την κλήση του Form XObject Το Min(1, SlotWidth / SourceWidth, SlotHeight / SourceHeight) επιλέγει

ContentWidth και διατηρεί την αναλογία διαστάσεων του στοιχείου Η κλιμάκωση δεν μεγεθύνει ποτέ περιεχόμενο που ήδη χωράει Ο καμβάς του Form XObject ακολουθεί τα ContentHeight και

MinimumSlotHeight

MinimumFollowingHeight, ενώ η στοίχιση χρησιμοποιεί το από το στοιχείο αναφερόμενο χρησιμοποιούμενο ορθογώνιο με αγκύρωση στην τοπική συντεταγμένη μηδέν Η ροή περιεχομένου της σελίδας γίνεται ιδιοκτήτρια της αναφοράς του τοποθετημένου Form XObject προτού απελευθερωθεί ο προσωρινός δείκτης καταγραφής Υποδοχή χαμηλότερη από το HasMoreContent επιστρέφει retry χωρίς κλωνοποίηση του στοιχείου, κλήση του callback του ή δημιουργία προσωρινού σελίδας Το

LastRetryReason δεν περιορίζει ενδιάμεσα τμήματα και ελέγχεται μόνο όταν το LastRequiredSlotHeight είναι false Μια επανάληψη στον χώρο ροής επιστρέφει κενή τοποθέτηση, διατηρεί όλα τα τμήματα που δεσμεύτηκαν προηγουμένως και εκθέτει την αιτία και το απαιτούμενο ύψος μέσω των

Παράδειγμα

Options := TPDFlibDynamicComponentSession.CreateLayoutOptions(
  640, 360, dopScaleDown, dhaLeft, dvaTop, dppAllowSplit, 72, 24);

Status := Session.ComposeNextLayout(
  PageNumber, 36, 72, 540, 240, Options, Placement);

if Status <> PDF_DYNAMIC_COMPONENT_ERROR then
begin
  FinalScale := Placement.Transform.M11;
  FinalLeft := Placement.Left;
  FinalTop := Placement.Top;
end;

Τιμές επιστροφής

PDF_DYNAMIC_COMPONENT_ERRORΗ επικύρωση εισόδου, callback, γεωμετρίας, υπερχείλισης ή τοποθέτησης απέτυχε χωρίς δέσμευση κατάστασης
PDF_DYNAMIC_COMPONENT_MOREΤο τμήμα δεσμεύτηκε και απομένει περισσότερο περιεχόμενο
PDF_DYNAMIC_COMPONENT_COMPLETEΤο τμήμα ολοκλήρωσε τη συνεδρία ή η συνεδρία ήταν ήδη ολοκληρωμένη
PDF_DYNAMIC_COMPONENT_RETRYΗ σελιδοποίηση ή η πολιτική χώρου ροής ανέβαλε τη μη δεσμευμένη δοκιμή σε άλλο slot

Δείτε επίσης

TPDFlibDynamicComponentSession, BeginFormXObject, ReleaseCapturedPage, DrawCapturedPage