Λογική Δομή
Λογική Δομή
Τα Tagged PDFs περιλαμβάνουν ένα λογικό δέντρο δομής που ορίζει την σημασιολογική ιεραρχία του εγγράφου — παραγράφους, επικεφαλίδες, πίνακες, εικόνες και λίστες. Το Aspose.PDF FOSS για .NET παρέχει το TaggedContent API για τη δημιουργία και την επιθεώρηση αυτής της δομής, η οποία είναι ουσιώδης για τη συμμόρφωση με την προσβασιμότητα PDF/UA.
Πρόσβαση σε ετικετοποιημένο περιεχόμενο
using var doc = new Document();
var tagged = doc.TaggedContent;
tagged.SetTitle("Accessible Document");
tagged.SetLanguage("en-US");Δημιουργία στοιχείων δομής
ITaggedContent παρέχει μεθόδους κατασκευής για κάθε τυπικό τύπο στοιχείου δομής. Τα στοιχεία συναρμολογούνται σε ένα δέντρο καλώντας το AppendChild.
var root = tagged.RootElement;
var heading = tagged.CreateHeaderElement(1);
heading.SetText("Chapter 1");
root.AppendChild(heading);
var paragraph = tagged.CreateParagraphElement();
paragraph.SetText("This is the first paragraph.");
root.AppendChild(paragraph);Δομημένοι πίνακες
TableElement δημιουργεί προσβάσιμους πίνακες με ενότητες κεφαλίδας, σώματος και υποσέλιδου.
var table = tagged.CreateTableElement();
root.AppendChild(table);
var thead = table.CreateTHead();
var headerRow = thead.CreateTR();
headerRow.CreateTH().SetText("Name");
headerRow.CreateTH().SetText("Value");
var tbody = table.CreateTBody();
var dataRow = tbody.CreateTR();
dataRow.CreateTD().SetText("Width");
dataRow.CreateTD().SetText("612");Εικονογραφήσεις και σχήματα
IllustrationElement περιβάλλει τις εικόνες στο δέντρο δομής.
var figure = tagged.CreateFigureElement();
figure.SetImage("chart.png");
figure.SetAlternativeText("Sales chart for Q4");
root.AppendChild(figure);Τύποι στοιχείων δομής
Το API υποστηρίζει το πλήρες σύνολο των τύπων στοιχείων δομής PDF:
- Επίπεδο μπλοκ: Παράγραφος, Επικεφαλίδα (H1-H6), Λίστα, Στοιχείο λίστας, Πίνακας, Παράθεση, Κώδικας
- Ενσωματωμένο: Απόσπασμα, Σύνδεσμος, Σχόλιο, Σχήμα, Τύπος
- Ομαδοποίηση: Διαίρεση, Άρθρο, Ενότητα, Μέρος
Συμβουλές και βέλτιστες πρακτικές
- Πάντα ορίστε
TitleκαιLanguageστοTaggedContentγια συμμόρφωση PDF/UA. - Δημιουργήστε το δέντρο δομής από πάνω προς τα κάτω: δημιουργήστε στοιχεία, στη συνέχεια προσθέστε παιδιά.
- Χρησιμοποιήστε
SetAlternativeTextστα στοιχεία figure για προσβασιμότητα με αναγνώστη οθόνης. - Επισήμανση πινάκων με
THead,TBody,TFootγια σωστή σημασιολογία πινάκων. - Επικυρώστε τη συμμόρφωση PDF/UA με
PdfFormatConversionOptions(δείτε τον οδηγό Μετατροπής).
Κοινά προβλήματα
| Issue | Cause | Fix |
|---|---|---|
| Η επικύρωση PDF/UA αποτυγχάνει | Το δέντρο δομής λείπουν τα απαιτούμενα στοιχεία | Βεβαιωθείτε ότι όλο το περιεχόμενο έχει αντίστοιχα στοιχεία δομής |
| Η σειρά των επικεφαλίδων είναι λανθασμένη | Το H2 εμφανίζεται πριν το H1 | Ακολουθήστε τη διαδοχική ιεραρχία επικεφαλίδων |
| Η εικόνα δεν έχει κείμενο alt | SetAlternativeText δεν κλήθηκε | Πάντα παρέχετε κείμενο alt για τις εικονογραφήσεις |
| Ο πίνακας δεν αναγνωρίζεται από τον αναγνώστη οθόνης | Λείπει η δομή THead/TBody | Χρησιμοποιήστε το πλήρες API δομής πίνακα |
Συχνές ερωτήσεις
Τι είναι ένα tagged PDF;
Ένα ετικετοποιημένο PDF περιλαμβάνει ένα λογικό δέντρο δομής που αντιστοιχίζει το οπτικό περιεχόμενο σε σημασιολογικά στοιχεία (επικεφαλίδες, παραγράφους, πίνακες), επιτρέποντας στα εργαλεία προσβασιμότητας και την επαναρροή του περιεχομένου.
Είναι το επισημασμένο PDF το ίδιο με το PDF/UA;
Το PDF/UA είναι ένα πρότυπο που απαιτεί ετικετοποίηση συν πρόσθετους κανόνες προσβασιμότητας.
Τα ετικετοποιημένα PDF είναι προαπαιτούμενο για τη συμμόρφωση με το PDF/UA.
Μπορώ να προσθέσω ετικέτες σε ένα υπάρχον PDF;
Το TaggedContent API λειτουργεί καλύτερα με έγγραφα που δημιουργούνται από την αρχή. Για υπάρχοντα PDF, εξετάστε το δέντρο δομής μέσω Document.TaggedContent.
Περίληψη Αναφοράς API
| Class / Method | Description |
|---|---|
TaggedContent | Σημείο εισόδου για λειτουργίες λογικής δομής |
TaggedContent.SetTitle | Ορισμός του τίτλου του εγγράφου για προσβασιμότητα |
TaggedContent.SetLanguage | Ορισμός της γλώσσας του εγγράφου |
ITaggedContent | Διεπαφή με μεθόδους κατασκευής για όλους τους τύπους στοιχείων |
StructureElement | Βασική κλάση για όλα τα στοιχεία δομής |
StructureElement.AppendChild | Προσθήκη στοιχείου-παιδιού στο δέντρο |
StructureElement.SetText | Ορισμός του κειμενικού περιεχομένου ενός στοιχείου |
TableElement | Στοιχείο δομής πίνακα με προσβασιμότητα |
TableElement.CreateTHead | Δημιουργία της ενότητας κεφαλίδας πίνακα |
TableElement.CreateTBody | Δημιουργία της ενότητας σώματος πίνακα |
TableTRElement | Στοιχείο γραμμής πίνακα |
TableTRElement.CreateTD | Προσθήκη κελιού δεδομένων |
TableTRElement.CreateTH | Προσθήκη κελιού κεφαλίδας |
IllustrationElement | Στοιχείο δομής εικόνας/εικονογραφήματος |
IllustrationElement.SetImage | Επισύναψη εικόνας στην εικονογράφηση |