function RenderPageBandedToEncoder(Width, Height, BandHeight: Integer;
Encoder: TPdfBandedImageEncoder; Rotation: TRotation = ro0;
Options: TRenderOptions = []; Color: TColor = clWhite): TPdfBandedImageReport;
| Width, Height | Integer. Velikost slike cele strani v pikslih, kot da bi bila izrisana na en kos |
| BandHeight | Integer. Višina vsakega pasu v pikslih. Zadnji pas je krajši, kadar Height ni njegov večkratnik |
| Encoder | TPdfBandedImageEncoder. Primerek kodirnika v lasti klicatelja, ki prejema tok pasov |
| Rotation | TRotation. Zasuk zaslona, uporabljen na strani: ro0, ro90, ro180 ali ro270 |
| Options | TRenderOptions. Zastavice izrisovanja |
| Color | TColor. Polnilo ozadja, nanešeno na vsak pas pred izrisovanjem |
| Result | TPdfBandedImageReport. Števila pasov, kodirane vrstice, vrhunske bajte pasu, izhodne bajte in zastavico zaključka |
Metoda poganja isto zanko pasov kot RenderPageBanded, namesto aplikacijskega povratnega klica pa vsako sveže izrisano bitno sliko Width x višina pasu potisne prek notranjega mostu v tri virtualne metode kodirnika, ki ga poda klicatelj: BeginImage(Width, Height) se izvede prva, WriteBand(BandIndex, BandTopY, Bitmap) prejme en klic na pas od zgoraj navzdol, EndImage(Completed) pa zapre sliko
BandIndex je številčen od 0, BandTopY pa je odmik y vrha pasu v pikslih cele strani, kar pisec stripov potrebuje, da vrstice umesti v izhodno datoteko. Bitna slika pripada zanki izrisa in se sprosti takoj po vrnitvi WriteBand, zato jo mora kodirnik, ki želi obdržati piksle, prekopirati
WriteBand vrne True za nadaljevanje ali False za čist preklic preostalih pasov. EndImage(True) se pokliče samo, kadar je bila kodirana vsaka zahtevana vrstica; preklican ali spodletel tek prejme EndImage(False), izjeme s te poti napake pa so utišane
Vrnjeno poročilo nosi Format = pbifCustom, število izrisanih in sprejetih pasov v BandsRendered in BandsEncoded, sprejete vrstice v RowsEncoded, največjo bitno sliko pasu kot Width x višina pasu x 4 bajte v PeakBandBytes, vrednost Encoder.GetBytesWritten v OutputBytes ter Completed = True točno takrat, kadar je RowsEncoded = Height
Vrhunec shranjevanja pikslov strani ostane pri eni bitni sliki pasu, tako da so plakati in tehnične risbe izvozljivi pri tiskalni ločljivosti brez kdajkolišnje dodelitve slike celotnega cilja
Podajanje kodirnika nil, nepozitivnih mer ali nepozitivne višine pasu sproži EPdfError
Proizvod Width in Min(BandHeight, Height) mora ostati znotraj četrtine naslovljivega obsega Integer, sicer EPdfError poroča, da pasovni medpomnilnik presega naslovljivo velikost
GetBytesWritten preglasite v nasledniku kodirnika, da poročate telemetrijo izhoda, specifično za kodirnik, v OutputBytes; osnovna implementacija vrne 0
type
TRawStripEncoder = class(TPdfBandedImageEncoder)
public
procedure BeginImage(Width, Height: Integer); override;
function WriteBand(BandIndex, BandTopY: Integer;
Bitmap: TBitmap): Boolean; override;
procedure EndImage(Completed: Boolean); override;
end;
Encoder := TRawStripEncoder.Create;
try
Report := Pdf.RenderPageBandedToEncoder(4960, 7016, 512, Encoder);
LogBandedExport(Report.BandsEncoded, Report.PeakBandBytes);
finally
Encoder.Free;
end;