Tata Letak dan Rendering Tabel THPDFTable

THPDFTable adalah engine tata letak dan rendering tabel ringan yang diperkenalkan di v2.429.0 dan diekspos oleh unit HPDFTable

Sebelum v2.429.0, pemanggil harus menggambar sel secara manual dengan Rectangle plus TextOut dan koordinat X kolom yang di-hardcode, sambil mengatur tinggi baris, zebra striping, dan page break sendiri; THPDFTable menggerakkan primitif gambar THPDFPage yang sudah ada sehingga tabel terrender dengan tinggi baris terukur, sel gabungan, dan kelanjutan page break otomatis

Unit

HPDFTable

Contoh penggunaan

uses
  HPDFTable;

var
  Tbl: THPDFTable;
  Row: THPDFTableRow;
begin
  Tbl:= THPDFTable.Create(HPDF);
  try
    Tbl.AddColumn(80); Tbl.AddColumn(200); Tbl.AddColumn(120);
    Tbl.SetBounds(50, 60);
    Row:= Tbl.AddRow; Row.IsHeader:= True;
    Row.Cells[0].Text:= 'No';
    Row.Cells[1].Text:= 'Description';
    Row:= Tbl.AddRow;
    Row.Cells[0].ColSpan:= 2;          // merged cell across columns 0..1
    Row.Cells[0].Text:= 'merged header';
    Tbl.Render;
  finally
    Tbl.Free;
  end;
end;

THPDFTable

THPDFTable memiliki tata letak kolom, koleksi baris, dan pass render; ia menggambar melalui komponen THotPDF yang diberikan ke THPDFTable.Create dan hanya memakai member publik THPDFPage dan THotPDF

Metode

MetodeDeskripsi
THPDFTable.Create(ADoc: THotPDF)Membuat tabel yang terikat ke dokumen yang menyuplai halaman, font, dan gambar
THPDFTable.DestroyMembebaskan tabel bersama setiap baris dan sel miliknya
THPDFTable.AddColumn(Width: Single): IntegerMenambahkan kolom dengan lebar yang diberikan dalam unit halaman saat ini dan mengembalikan indeksnya
THPDFTable.AddRow: THPDFTableRowMenambahkan baris berukuran jumlah kolom saat ini dan mengembalikannya
THPDFTable.SetBounds(AX, AY: Single)Memposisikan titik asal tabel di halaman saat ini
THPDFTable.RenderMengukur tinggi baris, menggambar latar, border, dan konten sel, lalu melanjutkan ke halaman baru selama masih ada baris tersisa

Properti

PropertiDeskripsi
THPDFTable.Doc: THotPDFDokumen terikat yang diberikan ke konstruktor
THPDFTable.ColCount: IntegerJumlah kolom yang ditambahkan dengan THPDFTable.AddColumn
THPDFTable.RowCount: IntegerJumlah baris yang ditambahkan dengan THPDFTable.AddRow
THPDFTable.Rows[Index: Integer]: THPDFTableRowMengakses baris berdasarkan indeks
THPDFTable.X: Single dan THPDFTable.Y: SingleTitik asal tabel di halaman dalam unit halaman saat ini
THPDFTable.HeaderBgColor: TColorWarna latar yang dicat di belakang baris header
THPDFTable.AlternatingBg: TColorWarna zebra yang diterapkan pada baris bukan-header yang berselang-seling
THPDFTable.BorderColor: TColor dan THPDFTable.BorderWidth: SingleWarna dan lebar garis grid untuk border sel
THPDFTable.DefaultFontName: AnsiString, THPDFTable.DefaultFontSize: Single, THPDFTable.DefaultAlign: THPDFCellAlignFont dan perataan fallback untuk sel yang tidak menimpanya
THPDFTable.Padding: SingleJarak dalam antara border sel dan kontennya
THPDFTable.BottomMargin: SingleRuang yang disiapkan di dasar halaman sebelum pass render pindah ke halaman baru
THPDFTable.RepeatHeader: BooleanBila true, pita header diterbitkan ulang di bagian atas setiap halaman kelanjutan
THPDFTable.TotalHeightRendered: SingleTotal tinggi yang dikonsumsi pass render terakhir di semua halaman

THPDFTableRow

THPDFTableRow menyimpan sel-sel satu baris tabel plus flag level baris yang dipakai saat pengukuran dan rendering

MemberDeskripsi
THPDFTableRow.Create(InitialColCount: Integer)Membuat baris yang sudah terisi sebanyak jumlah sel yang diberikan
THPDFTableRow.DestroyMembebaskan baris dan sel-selnya
THPDFTableRow.AddCell: THPDFTableCellMenambahkan satu sel dan mengembalikannya
THPDFTableRow.EnsureCells(Count: Integer): IntegerMenumbuhkan baris hingga minimal jumlah sel yang diberikan dan mengembalikan jumlah barunya
THPDFTableRow.Cells[Index: Integer]: THPDFTableCellProperti array default yang mengakses sel berdasarkan indeks
THPDFTableRow.Count: IntegerJumlah sel yang sedang dipegang baris
THPDFTableRow.IsHeader: BooleanMenandai baris sebagai baris header yang dicat dengan THPDFTable.HeaderBgColor dan diulang saat THPDFTable.RepeatHeader diaktifkan
THPDFTableRow.MinHeight: SingleBatas bawah yang diterapkan pada tinggi baris terukur

THPDFTableCell

THPDFTableCell membawa konten dan penimpaan per-sel yang diterapkan di atas default tabel

PropertiDeskripsi
THPDFTableCell.Text: WideStringTeks sel; dirender melalui THPDFPage.TextOutHTML saat THPDFTableCell.IsHTML true sehingga markup inline untuk bold, warna, link, dan sub-sup dihormati
THPDFTableCell.Align: THPDFCellAlign dan THPDFTableCell.VAlign: THPDFCellVAlignPerataan konten horizontal dan vertikal di dalam sel
THPDFTableCell.ColSpan: Integer dan THPDFTableCell.RowSpan: IntegerJumlah penggabungan horizontal dan vertikal, keduanya default 1
THPDFTableCell.BgColor: TColor dan THPDFTableCell.HasBgColor: BooleanPenimpaan warna latar per-sel dan flag keberadaannya
THPDFTableCell.TextColor: TColor dan THPDFTableCell.HasTextColor: BooleanPenimpaan warna teks per-sel dan flag keberadaannya
THPDFTableCell.FontName: AnsiString, THPDFTableCell.FontSize: Single, THPDFTableCell.FontStyle: TFontStyles, THPDFTableCell.HasFont: BooleanPenimpaan font per-sel dan flag keberadaannya
THPDFTableCell.WordWrap: BooleanMembungkus teks panjang lintas baris terukur di dalam sel, aktif secara default
THPDFTableCell.ImageIndex: IntegerSaat nol atau lebih, sel menampilkan gambar yang terdaftar dengan indeks itu melalui THotPDF.AddImage alih-alih teks, default -1
THPDFTableCell.ImageAspect: SingleRasio aspek tampilan untuk sel gambar; gambar diskalakan ke lebar sel dan tingginya diturunkan dari rasio ini, default 1.0
THPDFTableCell.IsHTML: BooleanMenjalankan THPDFTableCell.Text melalui THPDFPage.TextOutHTML agar markup inline terrender

Enum perataan

THPDFCellAlign = (caLeft, caCenter, caRight) memilih perataan horizontal sel dan THPDFCellVAlign = (cvaTop, cvaMiddle, cvaBottom) memilih perataan vertikal sel

Perilaku tata letak dan page break

Tinggi baris diukur dari konten sel dengan word wrap dan THPDFTableRow.MinHeight dihormati, sel yang menyebar ditempatkan di grid internal sehingga THPDFTableCell.ColSpan dan THPDFTableCell.RowSpan bergabung dengan benar lintas baris, dan pass render pindah ke halaman baru saat baris berikutnya tidak muat di atas THPDFTable.BottomMargin

Saat THPDFTable.RepeatHeader true, pita header diterbitkan ulang di bagian atas setiap halaman kelanjutan sebelum baris-baris berikutnya digambar

Sel gambar yang diperkenalkan di v2.432.0 mereferensikan gambar yang terdaftar melalui THotPDF.AddImage berdasarkan indeks, diskalakan ke lebar sel, dan menurunkan tingginya dari THPDFTableCell.ImageAspect sehingga gambar mempertahankan rasio aspek sumbernya

Lihat juga