Yerleşim Ağaçlarından Otomatik PDF/UA Yapısı
THPDFDOMRenderer, görsel yerleşim ağacını manuel MCID tahsisi olmadan eşleşen bir mantıksal yapı ağacına dönüştürebilir
THPDFDOMDocument.GenerateStructure varsayılan olarak True değerini alır, etiketli PDF çıktısını etkinleştirir, bölüm başına bir Document kökü ve bir Sect oluşturur ve hedefin belge dili yokken THPDFDOMDocument.Language değerini kullanır
Semantik varsayılanlar ve geçersiz kılmalar
| Yerleşim içeriği | Üretilen yapı |
|---|---|
THPDFDOMText | HeadingLevel atandığında P veya H1'den H6'ya |
THPDFDOMStack ve THPDFDOMContainer | Div |
THPDFDOMList | LI, Lbl ve LBody altöğeleri ile L artı ListNumbering |
THPDFDOMTable | Üst bilgi hücrelerinde sütun kapsamıyla Table, TR, TH ve TD |
THPDFDOMImage | Alternatif metinle Figure |
| Başlıklar, altbilgiler, yinelenen tablo başlıkları, ayırıcılar ve dekoratif kutular | Artifact işaretli içerik |
Ayrıca her bileşen açık kontrol için SemanticRole, SemanticLanguage, AlternativeText, ActualText, ExpansionText ve Artifact öğelerini açığa çıkarır
Erişilebilir belge örneği
Document.Language := 'en-US';
Section := Document.AddSection;
Section.Header := THPDFDOMText.Create('Quarterly report');
Section.Body.AddHeading('Results', 1, 'Title');
List := THPDFDOMList.Create('Decimal', 'Steps');
List.AddItem('1.', 'Review the totals');
Section.Body.Add(List);
Table := THPDFDOMTable.Create('Summary');
Table.AddColumn;
Table.AddColumn;
Header := Table.AddRow(18, True);
Header[0].Text := 'Name';
Header[1].Text := 'Value';
Row := Table.AddRow(18);
Row[0].Text := 'Alpha';
Row[1].Text := '42';
Section.Body.Add(Table);
Section.Body.Add(THPDFDOMImage.Create(Bitmap, 120, 80,
'Revenue chart by quarter', 'Chart'));
PDF.PDFUACompliance := True;
PDF.PDFUAPart := 2;
Statistics := Renderer.Render(Document, PDF);
Renderleyici, geçersiz yapı yazmadan önce H1'in üzerindeki ilk başlığı, atlanan başlık düzeylerini, yetim liste veya tablo rollerini ve alternatif metriği olmayan bir PDF/UA şeklini reddeder
Sayfalar arası kimlik ve okuma sırası
Mantıksal bir bileşen sayfalar arasında bölündüğünde tek yapı öğesi tutar
Her görünür devam, sayfa-yerel bir MCID ve mevcut yapı öğesinden doğru sayfaya işaret eden bir MCR sözlüğü alır
Sayfa ParentTree her MCID'yi ayın yapı öğesine geri eşlerken, devam kopyaları kaynak metni veya tablo satırlarını kopyalamadan mantıksal kimliği korur
Devam sayfalarındaki yinelenen tablo başlıkları yapay öğedir; böylece görsel tekrarları mantıksal tablo başlığını daha önceki gövde satırlarının önüne taşımaz
Devam güvenli doğrudan yazma API'leri
BeginTaggedContentForStructure bir MCID tahsis eder ve zaten var olan bir yapı öğesi için işaretli içeriği açar
AppendStructureMarkedContent açık bir sayfa ve MCID'yi MCR olarak ekler ve sayfa ParentTree değerini günceller
Özel bir yerleşim renderleyicisi HPDFLayoutDOM dışında devam mantığına sahip olduğunda bu daha düşük seviyeli yöntemleri kullanın
İstatistikler ve uyumluluk
THPDFDOMRenderStatistics; sayfalar, yerleştirmeler, bölmeler ve devam derinliğinin yanında yapı öğesi, işaretli içerik ve yapay öğe sayılarını raporlar
Bayt uyumlu etiketsiz çıktı gerektiğinde oluşturmadan önce GenerateStructure değerini False olarak ayarlayın