PDFium Delphi Component Docs

TPdfStreamInspector sınıfı

Unit: FPdfStreamInspect
Rastgele fiziksel PDF akış nesnelerinin salt okunur, sınırlı envanteri ve ayıklanması

Syntax

type TPdfStreamInspector = class ... end;

Constructors

ConstructorDescription
Create(Source: TStream)Konumlanabilir bir PDF kaynağını varsayılan bütçelerle okur ve özgün konumunu geri yükler
Create(Source: TStream; const Options: TPdfStreamInspectOptions)Konumlanabilir bir PDF kaynağını çağıranın seçtiği bütçelerle okur
Create(const Data: TBytes)Mevcut bir PDF bayt dizisini varsayılan bütçelerle inceler
Create(const Data: TBytes; const Options: TPdfStreamInspectOptions)Mevcut bir PDF bayt dizisini çağıranın seçtiği bütçelerle inceler

Methods

MethodDescription
CopyRawData(Index, Destination, out Report)Tek bir akış nesnesinin kodlanmış yükünün tamamını kopyalar
CopyRawData(Index, Destination, Offset, Count, out Report)Filtre zincirini çözmeden doğrulanmış bir bayt penceresini kopyalar
DecodeData(Index, Destination, Level, out Report)Ham veri döndürür ya da desteklenen genel filtreleri bildirim sırasına göre uygular
PdfStreamFilterKindFromName(Name)Tam ya da kısaltılmış bir PDF filtre adını TPdfStreamFilterKind tipine eşler

Default limits

ConstantValuePurpose
PdfStreamInspectDefaultSourceLimit512 MiBTutulabilecek en büyük kaynak boyutu
PdfStreamInspectDefaultRawLimit256 MiBTek bir işlemin kopyalayabileceği en büyük ham yük
PdfStreamInspectDefaultDecodedLimit256 MiBTek bir işlemin üretebileceği en büyük çözülmüş yük
PdfStreamInspectDefaultExpansionRatio100En büyük çözülmüş/kodlanmış genişleme oranı
PdfStreamInspectDefaultMaxStreams1,000,000Envantere alınabilecek en fazla akış nesnesi
PdfStreamInspectDefaultDictionaryLimit1 MiBTek bir akış için incelenebilecek en fazla sözlük baytı

Public types

TypeDescription
TPdfStreamFilterKindFiltreleri psfkUnknown, psfkASCIIHex, psfkASCII85, psfkLZW, psfkFlate, psfkRunLength, psfkCCITTFax, psfkJBIG2, psfkDCT, psfkJPX, psfkCrypt veya psfkBrotli olarak sınıflandırır
TPdfStreamNativeAccessYerel yol olmamasını, image-object erişimini veya embedded-file erişimini seçer
TPdfStreamDecodeLevelHam, desteklenen genel filtre ya da zorunlu tam zincir çözümünü seçer
TPdfStreamReadStatuspsrsCompleted, psrsPartiallyDecoded, psrsInvalidIndex, psrsInvalidRange, psrsSourceLimitExceeded, psrsRawLimitExceeded, psrsDecodedLimitExceeded, psrsExpansionRatioExceeded, psrsUnsupportedFilter, psrsUnsupportedDecodeParameters, psrsEncrypted, psrsExternalData, psrsMalformed veya psrsWriteError raporlar
TPdfStreamFilterInfoFiltre adı, Kind, HasDecodeParameters DecodeParms varlığı, Predictor, Colors, BitsPerComponent, Columns ve LZW EarlyChange değeri
TPdfStreamFilterInfosTPdfStreamFilterInfo kayıtlarının dinamik dizisi
TPdfStreamInfoNesne kimliği (ObjectNumber, Generation, TypeName), ofsetler ve uzunluklar (ObjectOffset, DictionaryOffset, DictionaryLength, RawOffset, RawLength, DecodedLengthHint), düzen bayrakları (LengthIsIndirect, UsedEndStreamFallback), şifreleme ve harici dosya bayrakları (HasExternalFile, IsEncryptedDocument), tür adları (SubtypeName), yerel sınır (psnaNone, psnaImageObject veya psnaEmbeddedFile değerlerinden NativeAccess) ve bildirilen Filters zinciri
TPdfStreamInfosTPdfStreamInfo kayıtlarının dinamik dizisi
TPdfStreamInspectOptionsStatik bir Default başlatıcısıyla çağıranın seçtiği kaynak, yük (MaxRawBytes, MaxDecodedBytes), genişleme (MaxExpansionRatio), nesne sayısı (MaxStreams), sözlük (MaxDictionaryBytes), dizgecik (MaxTokens), ayırma (MaxAllocationBytes) ve DeadlineMilliseconds son teslim bütçeleri
TPdfStreamReadReportTek bir okuma için durum, bayt sayaçları (InputByteCount, OutputByteCount), uygulanan ve kalan filtre sayıları (AppliedFilterCount, RemainingFilterCount), başarısız filtre indeksi (FailedFilterIndex) ve ErrorMessage metni

Properties

MemberTypeDescription
CountIntegerKaynakta bulunan fiziksel akış nesnesi ya da revizyon sayısı
Infos[Index]TPdfStreamInfoNesne numarası, nesil, ofsetler, uzunluklar, filtreler, DecodeParms ve yerel erişim sınıflandırması
EncryptedBooleanTrailer'ın belge şifrelemesi bildirip bildirmediğini belirtir
OptionsTPdfStreamInspectOptionsİnceleyicinin kullandığı normalleştirilmiş kaynak bütçeleri
SourceByteCountInt64İnceleme için tutulan girdi baytı sayısı

Decode levels and native boundaries

Budgets and reports

TPdfStreamInspectOptions.Default, kendi kaynak, yük, genişleme, sözlük ve akış üst sınırlarını geçerli TPdfParserResourceBudget dizgecik, nesne, çözülmüş bayt, genişleme oranı, ayırma ve son teslim ilkesiyle birleştirir

TPdfStreamReadReport, durumu, girdi ve çıktı bayt sayılarını, uygulanan ve kalan filtreleri, başarısız filtre indeksini ve hedef yazma hatalarını kaydeder

Güncel uygulama, güvenilir dolaylı uzunluk çözümünü ve tekrarlanabilir rastgele akış okumalarını desteklemek için sınırlı tek bir kaynak kopyası tutar; daha sıkı bir bellek bütçesi altında güvenilmeyen yüklemeleri işlerken daha düşük bir MaxSourceBytes kullanın

Example

var
  Inspector: TPdfStreamInspector;
  Output: TMemoryStream;
  Report: TPdfStreamReadReport;
begin
  Inspector := TPdfStreamInspector.Create(PdfBytes);
  Output := TMemoryStream.Create;
  try
    if Inspector.Count > 0 then
      Inspector.DecodeData(0, Output, psdlGeneral, Report);
  finally
    Output.Free;
    Inspector.Free;
  end;
end;