PDFium Delphi Component Docs

RenderPageBandedToStream Metodo

Componente: TPdf  ·  Unità: PDFium
Codifica la pagina corrente banda per banda in uno stream di proprietà del chiamante come PNG o TIFF senza mai allocare una bitmap a pagina intera

Syntax

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

StreamTStream. Output scrivibile di proprietà del chiamante posizionato dove inizia l'immagine
StreamOptions.FormatpbifPng per PNG RGB a 8 bit compresso oppure pbifTiff per strip TIFF classici little-endian non compressi
StreamOptions.BandHeightAltezza positiva di banda e strip TIFF; il valore predefinito è 256 righe
StreamOptions.CompressionLevelLivello zlib PNG da 0 a 9; il valore predefinito è 6 e TIFF lo ignora
StreamOptions.MaxOutputBytesSoffitto rigido di byte codificati; zero significa illimitato
RotationTRotation. Rotazione di visualizzazione applicata alla pagina
OptionsTRenderOptions. Flag di rendering
ColorTColor. Riempimento di sfondo applicato a ogni banda prima del rendering
ResultTPdfBandedImageReport. Conteggi delle bande, righe codificate, byte di banda di picco, byte di output, flag di completamento e formato selezionato

Description

Il metodo avvolge lo stream nell'encoder integrato richiesto, TPdfPngBandedImageEncoder o TPdfTiffBandedImageEncoder, e guida la pipeline condivisa a bande di RenderPageBandedToEncoder. Il report restituito contiene il Format selezionato invece di pbifCustom

L'encoder PNG comprime ogni scanline direttamente in chunk IDAT sequenziali, mentre l'encoder TIFF scrive uno strip RGB per banda di render e aggiunge la sua image file directory dopo i dati dei pixel. Entrambi gli encoder scrivono solo in avanti e non effettuano mai seek sullo stream del chiamante

L'archiviazione di pixel di picco della pagina è una bitmap BGRA Width x BandHeight anziché Width x Height. Il report espone i PeakBandBytes misurati così gli exporter possono verificare la politica di memoria, e OutputBytes riflette ciò che è stato effettivamente scritto nello stream

Usare TPdfBandedImageStreamOptions.Default(pbifPng) o Default(pbifTiff) prima di ignorare i singoli limiti; i valori predefiniti sono BandHeight = 256, CompressionLevel = 6 e MaxOutputBytes = 0

Remarks

Uno stream nil, un BandHeight non positivo o un MaxOutputBytes negativo generano EPdfError, e pbifCustom viene rifiutato perché è richiesto un formato integrato PNG o TIFF

Quando l'immagine codificata supererebbe MaxOutputBytes, la scrittura genera EPdfError con il messaggio Encoded image exceeds the output byte budget

Usare RenderPageBandedToEncoder con un discendente personalizzato di TPdfBandedImageEncoder per qualsiasi altro formato di contenitore o per codec esterni

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