function RenderPageBandedToEncoder(Width, Height, BandHeight: Integer;
Encoder: TPdfBandedImageEncoder; Rotation: TRotation = ro0;
Options: TRenderOptions = []; Color: TColor = clWhite): TPdfBandedImageReport;
| Width, Height | Integer. Størrelsen på hele sidebildet i piksler, som om det ble rendret i én del |
| BandHeight | Integer. Høyden på hvert band i piksler. Det siste bandet er kortere når Height ikke er et multiplum av det |
| Encoder | TPdfBandedImageEncoder. Kodekinstans som eies av kalleren og mottar bandstrømmen |
| Rotation | TRotation. Visningsrotasjon anvendt på siden: ro0, ro90, ro180 eller ro270 |
| Options | TRenderOptions. Renderingsflagg |
| Color | TColor. Bakgrunnsfyll som legges på hvert band før rendering |
| Result | TPdfBandedImageReport. Bandtellere, kodede rader, topp-bandbytes, utdatabytes og fullføringsflagg |
Metoden driver samme bandsløyfe som RenderPageBanded, men i stedet for en applikasjons-callback presser den hver ferskt rendret Width x bandhøyde-bitmap gjennom en intern bro og inn i de tre virtuelle metodene til kodeken som er levert av kalleren: BeginImage(Width, Height) kjører først, WriteBand(BandIndex, BandTopY, Bitmap) mottar ett kall per band ovenfra og ned, og EndImage(Completed) lukker bildet
BandIndex er nullbasert, og BandTopY er y-forskyvningen til bandets topp i fullsidepiksler, som er det en stripeskriver trenger for å plassere radene i en utdatafil. Bitmapen tilhører renderingsløkken og frigjøres rett etter at WriteBand returnerer, så en kodek som trenger å beholde pikslene må kopiere dem
WriteBand returnerer True for å fortsette eller False for å avbryte de gjenværende bandene rent. EndImage(True) kalles bare når hver forespurt rad ble kodet; en avbrutt eller mislykket kjøring mottar EndImage(False), med unntak fra denne sviktsstien undertrykt
Den returnerte rapporten bærer Format = pbifCustom, antall band rendret og akseptert i BandsRendered og BandsEncoded, aksepterte rader i RowsEncoded, den største band-bitmapen som Width x bandhøyde x 4 bytes i PeakBandBytes, verdien av Encoder.GetBytesWritten i OutputBytes, og Completed = True nøyaktig når RowsEncoded = Height
Topp lagring av sidepiksler forblir ved én band-bitmap, så plakater og tekniske tegninger kan eksporteres i utskriftsoppløsning uten noen gang å allokere hele målbildet
En nil-kodek, ikke-positive dimensjoner eller en ikke-positiv bandhøyde utløser EPdfError
Produktet av Width og Min(BandHeight, Height) må holdes innenfor en fjerdedel av den adresserbare Integer-rekkevidden, ellers rapporterer EPdfError at bandbufferen overskrider den adresserbare størrelsen
Overstyr GetBytesWritten i kodekens etterkommerklasse for å rapportere kodekspesifikk utdatatelemetri inn i OutputBytes; basisimplementasjonen returnerer 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;