PDFium Delphi Component Docs

RenderPageBandedToStream متد

کامپوننت: TPdf  ·  واحد: PDFium
صفحهٔ فعلی را باند به باند در یک استریم متعلق به فراخوان با قالب PNG یا TIFF رمزگذاری می‌کند بدون آنکه هرگز بیت‌مپ تمام-صفحه تخصیص دهد

Syntax

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

StreamTStream. خروجی نوشتنی متعلق به فراخوان که در جایی که تصویر آغاز می‌شود قرار گرفته
StreamOptions.FormatpbifPng برای PNG فشردهٔ ۸-بیتی RGB یا pbifTiff برای نوارهای TIFF کلاسیک رمزگذاری‌نشدهٔ کم‌چندگانگی
StreamOptions.BandHeightارتفاع مثبت باند و نوار TIFF؛ پیش‌فرض ۲۵۶ سطر است
StreamOptions.CompressionLevelسطح zlib برای PNG از ۰ تا ۹؛ پیش‌فرض ۶ است و TIFF نادیده‌اش می‌گیرد
StreamOptions.MaxOutputBytesسقف سخت بایتی خروجی رمزگذاری‌شده؛ صفر یعنی بدون کران
RotationTRotation. چرخش نمایشی اعمال‌شده روی صفحه
OptionsTRenderOptions. پرچم‌های رندر
ColorTColor. پرکنندهٔ پس‌زمینه‌ای که پیش از رندر روی هر باند اعمال می‌شود
ResultTPdfBandedImageReport. شمار باندها، سطرهای رمزگذاری‌شده، بیشینهٔ بایت باند، بایت‌های خروجی، پرچم تکمیل و قالب منتخب

Description

این متد استریم را در رمزگذار درون‌ساخت درخواستی می‌پیچد — TPdfPngBandedImageEncoder یا TPdfTiffBandedImageEncoder — و خط-لولهٔ باندی مشترک RenderPageBandedToEncoder را به حرکت درمی‌آورد. گزارش بازگردانده‌شده به‌جای pbifCustom حامل Format منتخب است

رمزگذار PNG هر خط اسکن را مستقیماً به چانک‌های متوالی IDAT فشرده می‌کند، در حالی که رمزگذار TIFF به‌ازای هر باند رندر یک نوار RGB می‌نویسد و فهرست فایل تصویرش را بعد از دادهٔ پیکسلی ضمیمه می‌کند. هر دو رمزگذار فقط رو به جلو می‌نویسند و هرگز استریم فراخوان را seek نمی‌کنند

بیشینهٔ ذخیرهٔ پیکسلی صفحه یک بیت‌مپ BGRA با ابعاد Width ضرب‌در BandHeight است، نه Width ضرب‌در Height. گزارش PeakBandBytes اندازه‌گیری‌شده را افشا می‌کند تا ابزارهای برون‌بری سیاست حافظه را بازرسی کنند و OutputBytes نشان می‌دهد واقعاً چه چیزی در استریم نوشته شده

پیش از بازنویسی تک‌تک کران‌ها از TPdfBandedImageStreamOptions.Default(pbifPng) یا Default(pbifTiff) استفاده کنید؛ پیش‌فرض‌ها BandHeight = 256، CompressionLevel = 6 و MaxOutputBytes = 0 هستند

Remarks

استریم nil، BandHeight نامثبت یا MaxOutputBytes منفی EPdfError برپا می‌کنند و pbifCustom رد می‌شود چون به یک قالب درون‌ساخت PNG یا TIFF نیاز است

وقتی تصویر رمزگذاری‌شده از MaxOutputBytes عبور کند، نوشتن EPdfError با پیام Encoded image exceeds the output byte budget برمی‌انگیزد

برای هر قالب ظرف دیگری یا کُدک‌های بیرونی از RenderPageBandedToEncoder با یک زیرکلاس سفارشی 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