ComposeNextLayout
Mise en page, pagination, Form XObjects
Description
Compose un fragment dynamique à état sur une toile à taille naturelle, applique les règles de débordement, d'alignement, de pagination et d'espace de flux et signale la transformation du placement final
Syntaxe
Function TPDFlibDynamicComponentSession.ComposeNextLayout(
Page: Integer; SlotLeft, SlotTop, SlotWidth, SlotHeight: Double;
Const Options: TPDFlibDynamicLayoutOptions;
Out Placement: TPDFlibDynamicPagePlacement): Integer;
Paramètres
Page | Numéro de page de destination existant à base 1 |
|---|---|
SlotLeft, SlotTop | Position de l'emplacement de destination du coin supérieur gauche dans les unités courantes du document |
SlotWidth, SlotHeight | Taille finie et positive de l'emplacement de destination |
Options.ContentWidth, Options.ContentHeight | Toile naturelle finie et positive transmise au composant via AvailableWidth et AvailableHeight |
Options.OverflowPolicy | dopReject, dopClip ou dopScaleDown |
Options.HorizontalAlignment | dhaLeft, dhaCenter ou dhaRight |
Options.VerticalAlignment | dvaTop, dvaCenter ou dvaBottom |
Options.PaginationPolicy | Scission normale, repli unique de maintien ensemble ou placement complet strict |
Options.MinimumSlotHeight | Hauteur d'emplacement non négative requise avant le clonage du composant et le démarrage de la composition |
Options.MinimumFollowingHeight | Hauteur non négative réservée après un fragment final résolu pour le composant suivant |
Résultat du placement
PageNumber, CompositionIndex | Page validée et numéro à base 1 de la composition réussie |
|---|---|
SourceWidth, SourceHeight | Rectangle utilisé naturel renvoyé par le composant avant le placement |
Left, Top, Width, Height | Rectangle utilisé transformé final avant le rognage de destination |
SlotLeft, SlotTop, SlotWidth, SlotHeight | Région de destination d'origine |
Transform | Matrice affine logique des coordonnées locales du composant vers les coordonnées document finales orientées de haut en bas |
WasClipped | True lorsque le rognage masque une partie du rectangle utilisé transformé |
WasScaled | True lorsque l'échelle proportionnelle est inférieure à 1 |
Remarques
dopReject préserve la page de destination et l'état validé du composant lorsque le rectangle utilisé naturel excède l'une ou l'autre dimension de l'emplacement
dopClip
dopScaleDown choisit Min(1, SlotWidth / SourceWidth, SlotHeight / SourceHeight) et préserve le rapport d'aspect du composant
La mise à l'échelle n'agrandit jamais un contenu qui tient déjà
La toile du Form XObject suit ContentWidth et ContentHeight, tandis que l'alignement utilise le rectangle utilisé signalé par le composant, ancré à la coordonnée locale zéro
Le flux de contenu de page prend possession de la référence du Form XObject placé avant la libération du handle de capture temporaire
Un emplacement plus court que MinimumSlotHeight renvoie réessai sans cloner le composant, invoquer son callback ni créer une page temporaire
MinimumFollowingHeight, tandis que l'alignement utilise le rectangle utilisé signalé par le composant, ancré à la coordonnée locale zéro
Le flux de contenu de la page prend possession de la référence du Form XObject placé avant la libération du handle de capture temporaire
Un emplacement plus court que HasMoreContent renvoie une nouvelle tentative sans cloner le composant, sans invoquer son rappel ni créer de page temporaire
LastRetryReason ne contraint pas les fragments intermédiaires et n'est vérifié que lorsque LastRequiredSlotHeight vaut false
Une nouvelle tentative d'espace de flux renvoie un placement vide, conserve tous les fragments déjà validés et expose sa raison et sa hauteur requise via
Exemple
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;
Valeurs de retour
PDF_DYNAMIC_COMPONENT_ERROR | La validation de l'entrée, du callback, de la géométrie, du débordement ou du placement a échoué sans validation d'état |
|---|---|
PDF_DYNAMIC_COMPONENT_MORE | Le fragment a été validé et il reste du contenu |
PDF_DYNAMIC_COMPONENT_COMPLETE | Le fragment a achevé la session ou la session était déjà terminée |
PDF_DYNAMIC_COMPONENT_RETRY | La règle de pagination ou d'espace de flux a reporté l'essai non validé vers un autre emplacement |
Voir aussi
TPDFlibDynamicComponentSession, BeginFormXObject, ReleaseCapturedPage, DrawCapturedPage