THPDFTable Table Layout and Rendering

THPDFTable on v2.429.0-versiossa esitelty kevyt taulukkoasettelu- ja renderöintimoottori, jonka HPDFTable-yksikkö tarjoaa käyttöön

Ennen v2.429.0-versiota tuottajien oli piirrettävä solut käsin Rectangle- ja TextOut-kutsuilla kiinteillä sarakkeiden X-koordinaateilla ja hallittava rivikorkeudet, seepraraitaus ja sivunvaihdot itse; THPDFTable ajaa olemassa olevia THPDFPage-piirtoprimitiivejä, joten taulukot renderöityvät mitatuilla rivikorkeuksilla, yhdistetyillä soluilla ja automaattisella sivunvaihdon jatkuvuudella

Unit

HPDFTable

Käyttöesimerkki

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 omistaa sarakkeiden asettelun, rivikokoelman ja renderöintikierroksen; se piirtää THotPDF-komponentin kautta, joka annetaan THPDFTable.Create-kutsulle, ja käyttää vain julkisia THPDFPage- ja THotPDF-jäseniä

Methods

MethodDescription
THPDFTable.Create(ADoc: THotPDF)Luo taulukon, joka on sidottu sivut, fontit ja kuvat toimittavaan asiakirjaan
THPDFTable.DestroyVapauttaa taulukon yhdessä kaikkien sen omistamien rivien ja solujen kanssa
THPDFTable.AddColumn(Width: Single): IntegerLisää annetun levyisen sarakkeen nykyisissä sivuyksiköissä ja palauttaa sen indeksin
THPDFTable.AddRow: THPDFTableRowLisää rivin, jonka koko sopii nykyiseen sarakemäärään, ja palauttaa sen
THPDFTable.SetBounds(AX, AY: Single)Sijoittaa taulukon alkupisteen nykyiselle sivulle
THPDFTable.RenderMittaa rivikorkeudet, piirtää taustat, reunukset ja solujen sisällöt ja jatkaa uusille sivuille niin kauan kuin rivejä on jäljellä

Properties

PropertyDescription
THPDFTable.Doc: THotPDFSidottu asiakirja, joka annettiin konstruktorille
THPDFTable.ColCount: IntegerTHPDFTable.AddColumn-kutsuilla lisättyjen sarakkeiden määrä
THPDFTable.RowCount: IntegerTHPDFTable.AddRow-kutsuilla lisättyjen rivien määrä
THPDFTable.Rows[Index: Integer]: THPDFTableRowPääsy riviin indeksin perusteella
THPDFTable.X: Single ja THPDFTable.Y: SingleTaulukon alkupiste sivulla nykyisissä sivuyksiköissä
THPDFTable.HeaderBgColor: TColorOtsikkorivien taakse maalattava taustaväri
THPDFTable.AlternatingBg: TColorSeepraraitausta antava taustaväri vuorotteleville ei-otsikkoriveille
THPDFTable.BorderColor: TColor ja THPDFTable.BorderWidth: SingleSolujen reunojen viivan väri ja leveys
THPDFTable.DefaultFontName: AnsiString, THPDFTable.DefaultFontSize: Single, THPDFTable.DefaultAlign: THPDFCellAlignVarafontti ja tasaus soluille, jotka eivät ylikirjoita niitä
THPDFTable.Padding: SingleSisäinen väli solun reunuksen ja sen sisällön välillä
THPDFTable.BottomMargin: SingleSivun alareunaan varattu tila ennen kuin renderöintikierros vaihtaa uudelle sivulle
THPDFTable.RepeatHeader: BooleanKun tosi, otsikkopalkki toistetaan jokaisen jatkosivun yläreunassa
THPDFTable.TotalHeightRendered: SingleViimeisen renderöintikierroksen kuluttama kokonaiskorkeus kaikilla sivuilla

THPDFTableRow

THPDFTableRow kantaa yhden taulukkorivin solut sekä rivitason liput, joita käytetään mittauksen ja renderöinnin yhteydessä

MemberDescription
THPDFTableRow.Create(InitialColCount: Integer)Luo rivin esitäytettynä annetulla solumäärällä
THPDFTableRow.DestroyVapauttaa rivin ja sen solut
THPDFTableRow.AddCell: THPDFTableCellLisää yhden solun ja palauttaa sen
THPDFTableRow.EnsureCells(Count: Integer): IntegerKasvattaa rivin vähintään annettuun solumäärään ja palauttaa uuden määrän
THPDFTableRow.Cells[Index: Integer]: THPDFTableCellOletustaulukko-ominaisuus, joka avaa solun indeksin perusteella
THPDFTableRow.Count: IntegerRivin tällä hetkellä sisältämien solujen määrä
THPDFTableRow.IsHeader: BooleanMerkitsee rivin otsikkoriviksi, joka maalataan THPDFTable.HeaderBgColor-värillä ja toistetaan, kun THPDFTable.RepeatHeader on käytössä
THPDFTableRow.MinHeight: SingleMitattuun rivikorkeuteen sovellettava alaraja

THPDFTableCell

THPDFTableCell kantaa solun sisällön ja solukohtaiset ylikirjoitukset taulukon oletusarvojen päälle

PropertyDescription
THPDFTableCell.Text: WideStringSolun teksti; renderöidään THPDFPage.TextOutHTML-kutsun kautta, kun THPDFTableCell.IsHTML on tosi, jolloin lihavoinnin, värin, linkkien ja ala-/yläindeksin sisäinen merkintäkieli huomioidaan
THPDFTableCell.Align: THPDFCellAlign ja THPDFTableCell.VAlign: THPDFCellVAlignSisällön vaaka- ja pystytasaus solun sisällä
THPDFTableCell.ColSpan: Integer ja THPDFTableCell.RowSpan: IntegerVaaka- ja pystysuuntainen yhdistysmäärä, kumpikin oletuksena 1
THPDFTableCell.BgColor: TColor ja THPDFTableCell.HasBgColor: BooleanSolukohtainen taustavärin ylikirjoitus ja sen olemassaololippu
THPDFTableCell.TextColor: TColor ja THPDFTableCell.HasTextColor: BooleanSolukohtainen tekstivärin ylikirjoitus ja sen olemassaololippu
THPDFTableCell.FontName: AnsiString, THPDFTableCell.FontSize: Single, THPDFTableCell.FontStyle: TFontStyles, THPDFTableCell.HasFont: BooleanSolukohtainen fontin ylikirjoitus ja sen olemassaololippu
THPDFTableCell.WordWrap: BooleanRivittää pitkän tekstin mitatuille riveille solun sisällä, käytössä oletuksena
THPDFTableCell.ImageIndex: IntegerKun arvo on nolla tai suurempi, solu näyttää tekstin sijaan kyseisellä indeksillä THotPDF.AddImage-kutsulla rekisteröidyn kuvan, oletus -1
THPDFTableCell.ImageAspect: SingleKuvasolun näyttökuvasuhde; kuva skaalataan solun leveyteen ja sen korkeus johdetaan tästä suhteesta, oletus 1.0
THPDFTableCell.IsHTML: BooleanOhjaa THPDFTableCell.Text-tekstin THPDFPage.TextOutHTML-kutsun kautta, jolloin sisäinen merkintäkieli renderöidään

Tasausenumit

THPDFCellAlign = (caLeft, caCenter, caRight) valitsee solun vaakatasauksen ja THPDFCellVAlign = (cvaTop, cvaMiddle, cvaBottom) solun pystytasauksen

Asettelu ja sivunvaihtokäyttäytyminen

Rivikorkeudet mitataan solujen sisällöstä huomioiden rivitys ja THPDFTableRow.MinHeight, yhdistävät solut sijoitetaan sisäiselle hilalle, joten THPDFTableCell.ColSpan ja THPDFTableCell.RowSpan yhdistävät oikein rivien yli, ja renderöintikierros vaihtaa uudelle sivulle, kun seuraava rivi ei mahdu THPDFTable.BottomMargin-rajan yläpuolelle

Kun THPDFTable.RepeatHeader on tosi, otsikkopalkki toistetaan jokaisen jatkosivun yläreunassa ennen lisärivien piirtämistä

v2.432.0-versiossa esitellyt kuvasolut viittaavat indeksillä THotPDF.AddImage-kutsulla rekisteröityyn kuvaan, skaalautuvat solun leveyteen ja johtavat korkeutensa THPDFTableCell.ImageAspect-arvosta, joten kuva säilyttää lähteen kuvasuhteensa

Katso myös