PDFium Component Docs

RenderPageBandedToStream Metoda

Component: TPdf  ·  Unit: PDFium
Koduje bieżącą stronę pasmo po paśmie do strumienia należącego do wywołującego jako PNG lub TIFF, bez nigdy alokowania pełnostronicowej bitmapy

Syntax

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

StreamTStream. Należące do wywołującego zapisywalne wyjście ustawione tam, gdzie zaczyna się obraz
StreamOptions.FormatpbifPng dla skompresowanego 8-bitowego RGB PNG albo pbifTiff dla nieskompresowanych klasycznych pasków TIFF little-endian
StreamOptions.BandHeightDodatnia wysokość pasma i paska TIFF; domyślnie 256 wierszy
StreamOptions.CompressionLevelPoziom zlib PNG od 0 do 9; domyślnie 6, a TIFF go ignoruje
StreamOptions.MaxOutputBytesTwardy limit bajtów zakodowanych; zero oznacza brak limitu
RotationTRotation. Rotacja wyświetlania nakładana na stronę
OptionsTRenderOptions. Flagi renderowania
ColorTColor. Wypełnienie tła nakładane na każde pasmo przed renderowaniem
ResultTPdfBandedImageReport. Liczby pasm, zakodowane wiersze, szczytowe bajty pasma, bajty wyjścia, flaga ukończenia i wybrany format

Description

Metoda owija strumień w żądany wbudowany enkoder, TPdfPngBandedImageEncoder albo TPdfTiffBandedImageEncoder, i napędza współdzielony potok pasmowy RenderPageBandedToEncoder. Zwracany raport niesie wybrany Format zamiast pbifCustom

Enkoder PNG kompresuje każdą linię skanowania bezpośrednio do kolejnych chunków IDAT, a enkoder TIFF zapisuje jeden pasek RGB na pasmo renderowania i dopisuje swój katalog pliku obrazu po danych pikselowych. Oba enkodery zapisują tylko do przodu i nigdy nie wykonują seek na strumieniu wywołującego

Szczytowy magazyn pikseli strony to jedna bitmapa BGRA Width x BandHeight, a nie Width x Height. Raport udostępnia zmierzone PeakBandBytes, więc eksporterzy mogą audytować politykę pamięci, a OutputBytes odzwierciedla to, co faktycznie zapisano do strumienia

Użyj TPdfBandedImageStreamOptions.Default(pbifPng) lub Default(pbifTiff) przed nadpisaniem poszczególnych limitów; wartościami domyślnymi są BandHeight = 256, CompressionLevel = 6 i MaxOutputBytes = 0

Remarks

Strumień nil, niedodatnie BandHeight albo ujemne MaxOutputBytes zgłasza EPdfError, a pbifCustom jest odrzucany, ponieważ wymagany jest wbudowany format PNG lub TIFF

Gdy zakodowany obraz przekroczyłby MaxOutputBytes, zapis zgłasza EPdfError z komunikatem Encoded image exceeds the output byte budget

Dla każdego innego formatu kontenera lub zewnętrznych kodeków użyj RenderPageBandedToEncoder z własnym potomkiem TPdfBandedImageEncoder

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