ComposeNextLayout

Tata letak halaman, paginasi, Form XObject

Deskripsi

Mengomposisikan satu fragmen dinamis berstatus pada kanvas berukuran natural, menerapkan kebijakan overflow, perataan, paginasi, dan flow-space, serta melaporkan transformasi penempatan akhir

Sintaks

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

Parameter

PageNomor halaman tujuan berbasis satu yang sudah ada
SlotLeft, SlotTopPosisi slot tujuan kiri atas dalam unit dokumen saat ini
SlotWidth, SlotHeightUkuran slot tujuan berhingga positif
Options.ContentWidth, Options.ContentHeightKanvas natural berhingga positif yang diberikan ke komponen melalui AvailableWidth dan AvailableHeight
Options.OverflowPolicydopReject, dopClip, atau dopScaleDown
Options.HorizontalAlignmentdhaLeft, dhaCenter, atau dhaRight
Options.VerticalAlignmentdvaTop, dvaCenter, atau dvaBottom
Options.PaginationPolicyPemecahan normal, fallback keep-together sekali jalan, atau penempatan lengkap yang ketat
Options.MinimumSlotHeightTinggi slot non-negatif yang disyaratkan sebelum kloning komponen dan komposisi dimulai
Options.MinimumFollowingHeightTinggi non-negatif yang dicadangkan setelah fragmen terakhir yang terurai untuk komponen berikutnya

Hasil penempatan

PageNumber, CompositionIndexHalaman yang di-commit dan nomor komposisi sukses berbasis satu
SourceWidth, SourceHeightPersegi terpakai natural yang dikembalikan komponen sebelum penempatan
Left, Top, Width, HeightPersegi terpakai yang ditransformasi final sebelum kliping tujuan
SlotLeft, SlotTop, SlotWidth, SlotHeightWilayah tujuan asli
TransformMatriks affine logis dari koordinat lokal komponen ke koordinat dokumen atas-ke-bawah final
WasClippedTrue saat kliping menyembunyikan bagian dari persegi terpakai yang ditransformasi
WasScaledTrue saat skala proporsional kurang dari 1

Keterangan

dopReject mempertahankan halaman tujuan dan status komponen yang di-commit ketika persegi terpakai natural melebihi salah satu dimensi slot

dopClip

dopScaleDown mempertahankan skala natural dan memakai cakupan kliping graphics-state yang seimbang di sekeliling pemanggilan Form XObject Min(1, SlotWidth / SourceWidth, SlotHeight / SourceHeight) memilih

ContentWidth dan mempertahankan rasio aspek komponen Penykalaan tidak pernah memperbesar konten yang sudah muat Kanvas Form XObject mengikuti ContentHeight dan

MinimumSlotHeight

MinimumFollowingHeight, sementara perataan memakai persegi terpakai yang dilaporkan komponen dengan jangkar di koordinat lokal nol Content stream halaman memiliki referensi Form XObject yang ditempatkan sebelum handle rekam sementara dilepaskan Slot yang lebih pendek dari HasMoreContent mengembalikan retry tanpa mengklon komponen, memanggil callback-nya, atau membuat halaman sementara

LastRetryReason tidak membatasi fragmen antara dan hanya diperiksa ketika LastRequiredSlotHeight bernilai false Coba ulang ruang aliran mengembalikan penempatan kosong, mempertahankan semua fragmen yang sudah di-commit sebelumnya, dan mengekspos alasannya serta tinggi yang disyaratkan melalui

Contoh

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;

Nilai yang dikembalikan

PDF_DYNAMIC_COMPONENT_ERRORValidasi input, callback, geometri, overflow, atau penempatan gagal tanpa meng-commit status
PDF_DYNAMIC_COMPONENT_MOREFragmen telah di-commit dan masih ada konten lainnya
PDF_DYNAMIC_COMPONENT_COMPLETEFragmen menyelesaikan session, atau session sudah selesai
PDF_DYNAMIC_COMPONENT_RETRYKebijakan paginasi atau ruang aliran menunda uji coba yang belum di-commit ke slot lain

Lihat juga

TPDFlibDynamicComponentSession, BeginFormXObject, ReleaseCapturedPage, DrawCapturedPage