PDFium Delphi Component API Reference

Ek dosya toplu çıkarma

Component: TPdf  ·  Unit: PDFium
Gömülü ekleri bir kez envanterler ve çözülmüş yüklerini açık kaynak denetimleri altında çağıranın sahipliğindeki akışlara yazar

ReadAttachmentMetadata

function ReadAttachmentMetadata(MaxAttachments: Integer = 10000): TPdfAttachmentMetadataArray;

Yöntem, belge düzeyi ekleri bir kez numaralandırır ve Index, Name, Description, MimeType, Relationship, çözülmüş Size ve Readable alanlarını taşıyan, çağıranın sahipliğindeki kayıtları döndürür

MaxAttachments, sonuç dizisi doldurulmadan önce denetlenir; böylece güvenilmeyen bir belge sınırsız bir üst veri ayrımına yol açamaz

Boyut sorgusu, yük baytlarını PDFium Delphi Component belleğine kopyalamaz; ancak PDFium, çözülmüş uzunluğu belirlemek için bir akışı dahili olarak çözümleyebilir

ExtractAttachmentsToStreams

function ExtractAttachmentsToStreams(const Destinations: array of TStream; const Options: TPdfAttachmentBatchOptions; out Report: TPdfAttachmentBatchReport; const CancellationToken: IPdfCancellationToken = nil): Boolean;

Destinations her belge eki için tam olarak bir yuva içermeli ve Attachment[Index] ile aynı sıfır tabanlı sırayı izlemelidir

nil bir hedef, o öğeyi paesSkipped olarak işaretler; böylece çağıran ikinci bir numaralandırma olmadan ek seçebilir

Boş olmayan her yük, PDFium üzerinden geçici tek bir PDFium Delphi Component tamponuna çözümlenir ve ardından o tampondan ChunkBytes parçalar halinde yazılır

Tampon, sıradaki eke geçilmeden önce serbest bırakılır; PDFium Delphi Component tüm grubu asla elinde tutmaz, ancak public PDFium ek API'si aralık okumalarını desteklemez ve kendi tam yük çözümleme belleğini dahili olarak kullanabilir

Akışların sahibi çağıran olarak kalır; yazma her akışın güncel konumundan başlar ve yöntem onları geri sarmaz ya da kırpmaz

İptal ya da bir hedef istisnası, o akışa önceden yazılmış baytlar bırakabilir; işlemisel çıktı isteyen çağıranlar geçici akışlar sağlamalı ve bunları yalnızca başarılı bir rapordan sonra yayınlamalıdır

Options

FieldDefaultMeaning
MaxAttachments10000Üst veri ve rapor girdisi sınırı
MaxFileBytes256 MiBTek bir ekin çözülmüş boyut sınırı
MaxTotalBytes1 GiBTüm hedeflere yazılan toplam bayt sınırı
ChunkBytes1 MiBTek bir akış yazımına geçirilen bayt sınırı
StopOnErrorTrueOkunamayan, bütçe aşan ya da yazımı başarısız ilk öğeden sonra durur

Report

Her TPdfAttachmentMetadata kaydı tek bir yerel eki tanımlar ve TPdfAttachmentMetadataArray üst veri anlık görüntüsünü saklar

Her TPdfAttachmentBatchItem; üst veriyi, bir TPdfAttachmentExtractionState değerini, yazılan baytları ve varsa hata metnini birleştirir; TPdfAttachmentBatchItems ise tüm öğe başına sonuçları saklar

TPdfAttachmentExtractionState değerleri şunlardır: paesNotProcessed, paesSkipped, paesExtracted, paesUnreadable, paesFileLimit, paesAggregateLimit, paesCancelled ve paesWriteFailed

TPdfAttachmentBatchReport, BytesWritten ve PeakBufferBytes ile birlikte AttachmentCount, ExtractedCount, SkippedCount ve FailedCount sayılarını tutar

Completed, her öğenin iptal olmadan bir son duruma ulaştığı anlamına gelir; işlev sonucu ayrıca FailedCount = 0 koşulunu ister

PeakBufferBytes en büyük PDFium Delphi Component yük tamponunu raporlar ve PDFium'ın çözümleme sırasında kullandığı özel belleği kapsamaz

Example

var Options: TPdfAttachmentBatchOptions;
var Report: TPdfAttachmentBatchReport;
Options := TPdfAttachmentBatchOptions.Default;
Options.MaxFileBytes := 64 * 1024 * 1024;
Options.MaxTotalBytes := 256 * 1024 * 1024;
if not Pdf1.ExtractAttachmentsToStreams(Destinations, Options, Report) then
  HandleAttachmentBatchFailure(Report);

See Also

Attachment, AttachmentCount, AttachmentDescription, AttachmentName, AttachmentType