PDFium Delphi Component Docs

RenderPageBandedToStream metode

Komponent: TPdf  ·  Enhed: PDFium
Encoder den aktuelle side bånd for bånd ind i en kalder-ejet stream som PNG eller TIFF uden nogensinde at allokere en helsides-bitmap

Syntax

function RenderPageBandedToStream(Stream: TStream; Width,
  Height: Integer; const StreamOptions: TPdfBandedImageStreamOptions;
  Rotation: TRotation = ro0; Options: TRenderOptions = [];
  Color: TColor = clWhite): TPdfBandedImageReport;

StreamTStream. Kalder-ejet skrivbar output positioneret der, hvor billedet begynder
StreamOptions.FormatpbifPng for komprimeret 8-bit RGB PNG eller pbifTiff for ukomprimerede little-endian klassiske TIFF-striber
StreamOptions.BandHeightPositiv bånd- og TIFF-stribehøjde; standard er 256 rækker
StreamOptions.CompressionLevelPNG zlib-niveau fra 0 til 9; standard er 6, og TIFF ignorerer det
StreamOptions.MaxOutputBytesHårt kodet byte-loft; nul betyder ubegrænset
RotationTRotation. Visningsrotation anvendt på siden
OptionsTRenderOptions. Rendering-flag
ColorTColor. Baggrundsfyld anvendt på hvert bånd før rendering
ResultTPdfBandedImageReport. Båndantal, kodede rækker, peak båndbytes, output-bytes, fuldførelsesflag og det valgte format

Description

Metoden pakker streamen ind i den anmodede indbyggede encoder, TPdfPngBandedImageEncoder eller TPdfTiffBandedImageEncoder, og driver den fælles banded pipeline fra RenderPageBandedToEncoder. Den returnerede rapport bærer det valgte Format i stedet for pbifCustom

PNG-encoderen komprimerer hver scanline direkte til sekventielle IDAT-chunks, mens TIFF-encoderen skriver én RGB-stribe pr. render-bånd og tilføjer sin image file directory efter pixeldataene. Begge encoders skriver kun fremad og seek'er aldrig kalderens stream

Peak sidepixel-lagring er én Width x BandHeight BGRA-bitmap i stedet for Width x Height. Rapporten eksponerer de målte PeakBandBytes, så eksportører kan auditere hukommelsespolitikken, og OutputBytes afspejler, hvad der faktisk blev skrevet til streamen

Brug TPdfBandedImageStreamOptions.Default(pbifPng) eller Default(pbifTiff), før individuelle grænser tilsidesættes; standarderne er BandHeight = 256, CompressionLevel = 6 og MaxOutputBytes = 0

Remarks

En nil-stream, en ikke-positiv BandHeight eller en negativ MaxOutputBytes udløser EPdfError, og pbifCustom afvises, fordi et indbygget PNG- eller TIFF-format er påkrævet

Når det kodede billede ville overstige MaxOutputBytes, udløser skrivningen EPdfError med beskeden Encoded image exceeds the output byte budget

Brug RenderPageBandedToEncoder med en tilpasset TPdfBandedImageEncoder-nedkomst til ethvert andet containerformat eller eksterne codecs

Example

StreamOptions := TPdfBandedImageStreamOptions.Default(pbifTiff);
StreamOptions.BandHeight := 256;
StreamOptions.MaxOutputBytes := Int64(512) * 1024 * 1024;
Report := Pdf.RenderPageBandedToStream(OutputStream, 4960, 7016,
  StreamOptions);
if not Report.Completed then
  RaiseBandedExportIncomplete;

See Also

RenderPageBandedToEncoder, RenderPageBanded, RenderPage, RenderPageProgressive