property AttachmentCount: Integer; // read only
AttachmentCount, catalog /Names /EmbeddedFiles ad ağacı
üzerinden erişilebilen gömülü dosya stream'lerini sayar (PDF 1.7 spec section 7.11).
Bunlar PDF'in içine paketlenmiş ve görüntüleyiciler tarafından “Attachments”
kenar çubuğunda sunulan rastgele dosyalardır (XML, hesap tabloları, kaynak CAD, imzalı
XML, ZIP arşivleri…). PDF/A-3, uzun vadeli yeniden üretilebilirlik için
özellikle her ilgili kaynak artefaktın bu şekilde gömülmesini zorunlu kılar
Active False olduğunda ve doküman gömülü dosya
taşımıyorsa değer 0'dır. Dosya eki annotationları
(/FileAttachment alt türü) burada sayılmaz —
onlar sayfa düzeyi annotation'lardır ve AnnotationCount üzerinden
görünür. PDFium Delphi Component, gömülü stream'leri Attachment[Index]
ile TBytes olarak sunar; okunabilir dosya adı ve MIME tarzı tür
AttachmentName[Index] ve AttachmentType[Index] üzerinden alınır
Tipik döngü for I := 0 to Pdf.AttachmentCount - 1 do biçimindedir. Her
Attachment[I] erişimi gömülü dosya stream'ini belleğe açar; dolayısıyla
diske yazacak veya bir parser'a verecekseniz TBytes'ı önbelleğe alın.
Ek ekleme veya çıkarma indeksleri geçersizleştirir — mutasyondan sonra
AttachmentCount'u yeniden okuyun
Yalnızca /EmbeddedFiles ad ağacı numaralandırılır. Yalnızca bir /AF dizisinden başvurulan (katalogda, bir sayfada, bir açıklamada ya da başka herhangi bir nesnede) ve ad ağacına da kaydedilmemiş bir PDF 2.0 ilişkili dosyası (ISO 32000-2 §7.11.4) sayılmaz ve Attachment, AttachmentName ya da AttachmentRelationship için indeksi olmaz. Buna, yalnızca /AF girdileri ekleyen SaveAsWithAssociateFiles ile yazılan dosyalar dahildir. Factur-X ve ZUGFeRD araçları dahil çoğu PDF/A-3 üreticisi her ilişkili dosyayı her iki yere de kaydeder; bu yüzden o dosyalar normal şekilde listelenir
FeatureSupported(feAttachment) to detect whether the
installed PDFium build supports modifying attachment names.
var I: Integer;
var Data: TBytes;
for I := 0 to Pdf1.AttachmentCount - 1 do
begin
Data := Pdf1.Attachment[I];
TFile.WriteAllBytes(Pdf1.AttachmentName[I], Data);
end;