Extraire le contenu étiqueté d'un PDF 
Dans cet article, vous apprendrez comment extraire le contenu étiqueté d’un document PDF en utilisant C#.
Le code suivant fonctionne également avec la bibliothèque Aspose.PDF.Drawing .
Obtenir le contenu PDF étiqueté 
Pour obtenir le contenu d’un document PDF avec du texte étiqueté, Aspose.PDF propose la propriété TaggedContent  de la classe Document .
Le code suivant montre comment obtenir le contenu d’un document PDF avec du texte étiqueté :
  
 
Obtenir la structure racine 
Pour obtenir la structure racine d’un document PDF étiqueté, Aspose.PDF propose la propriété StructTreeRootElement  de l’interface ITaggedContent  et StructureElement . Le code suivant montre comment obtenir la structure racine d’un document PDF étiqueté :
  
 
Accéder aux éléments enfants 
Pour accéder aux éléments enfants d’un document PDF étiqueté, Aspose.PDF propose la classe ElementList . Le code suivant montre comment accéder aux éléments enfants d’un document PDF étiqueté :
  
 
Étiquetage des images dans un PDF existant 
Pour étiqueter des images dans un document PDF existant, Aspose.PDF propose la méthode FindElements  de la classe StructureElement . Vous pouvez ajouter un texte alternatif pour les figures en utilisant la propriété AlternativeText  de la classe FigureElement .
Le code suivant montre comment étiqueter des images dans un document PDF existant :
  
       
      .NET Core 3.1 
      // For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET 
private  static  void  TagImages () 
{ 
    // The path to the documents directory 
     var  dataDir  =  RunExamples . GetDataDir_AsposePdf_WorkingDocuments (); 
 
     // Open PDF document 
     using  ( var  document1  =  new  Aspose . Pdf . Document ( dataDir  +  "TH.pdf" )) 
     { 
         // Gets tagged content and root structure element 
         Aspose . Pdf . Tagged . ITaggedContent  taggedContent  =  document1 . TaggedContent ; 
         Aspose . Pdf . LogicalStructure . StructureElement  rootElement  =  taggedContent . RootElement ; 
 
         // Set title for tagged PDF document 
         taggedContent . SetTitle ( "Document with images" ); 
 
         foreach  ( Aspose . Pdf . LogicalStructure . FigureElement  figureElement  in  rootElement . FindElements < Aspose . Pdf . LogicalStructure . FigureElement >( true )) 
         { 
             // Set AlternativeText for Figure 
             figureElement . AlternativeText  =  "Figure alternative text (technique 2)" ; 
 
             // Create and Set BBox Attribute 
             var  bboxAttribute  =  new  Aspose . Pdf . LogicalStructure . StructureAttribute ( Aspose . Pdf . LogicalStructure . AttributeKey . BBox ); 
             bboxAttribute . SetRectangleValue ( new  Aspose . Pdf . Rectangle ( 0.0 ,  0.0 ,  100.0 ,  100.0 )); 
 
             Aspose . Pdf . LogicalStructure . StructureAttributes  figureLayoutAttributes  =  figureElement . Attributes . GetAttributes ( Aspose . Pdf . LogicalStructure . AttributeOwnerStandard . Layout ); 
             figureLayoutAttributes . SetAttribute ( bboxAttribute ); 
         } 
 
         // Move Span Element into Paragraph (find wrong span and paragraph in first TD) 
         Aspose . Pdf . LogicalStructure . TableElement  tableElement  =  rootElement . FindElements < Aspose . Pdf . LogicalStructure . TableElement >( true )[ 0 ]; 
         Aspose . Pdf . LogicalStructure . SpanElement  spanElement  =  tableElement . FindElements < Aspose . Pdf . LogicalStructure . SpanElement >( true )[ 0 ]; 
         Aspose . Pdf . LogicalStructure . TableTDElement  firstTdElement  =  tableElement . FindElements < Aspose . Pdf . LogicalStructure . TableTDElement >( true )[ 0 ]; 
         Aspose . Pdf . LogicalStructure . ParagraphElement  paragraph  =  firstTdElement . FindElements < Aspose . Pdf . LogicalStructure . ParagraphElement >( true )[ 0 ]; 
 
         // Move Span Element into Paragraph 
         spanElement . ChangeParentElement ( paragraph ); 
 
         // Save PDF document 
         document1 . Save ( dataDir  +  "TH_out.pdf" ); 
     } 
 
     // Check PDF/UA Compliance for out document 
     using  ( var  document2  =  new  Aspose . Pdf . Document ( dataDir  +  "TH_out.pdf" )) 
     { 
         bool  isPdfUaCompliance  =  document2 . Validate ( dataDir  +  "TH_out.xml" ,  Aspose . Pdf . PdfFormat . PDF_UA_1 ); 
         Console . WriteLine ( String . Format ( "PDF/UA compliance: {0}" ,  isPdfUaCompliance )); 
     } 
 } 
 
       
      .NET 8 
      // For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET 
private  static  void  TagImages () 
{ 
    // The path to the documents directory 
     var  dataDir  =  RunExamples . GetDataDir_AsposePdf_WorkingDocuments (); 
 
     // Open PDF document 
     using  var  document1  =  new  Aspose . Pdf . Document ( dataDir  +  "TH.pdf" ); 
 
     // Gets tagged content and root structure element 
     Aspose . Pdf . Tagged . ITaggedContent  taggedContent  =  document1 . TaggedContent ; 
     Aspose . Pdf . LogicalStructure . StructureElement  rootElement  =  taggedContent . RootElement ; 
 
     // Set title for tagged PDF document 
     taggedContent . SetTitle ( "Document with images" ); 
 
     foreach  ( Aspose . Pdf . LogicalStructure . FigureElement  figureElement  in  rootElement . FindElements < Aspose . Pdf . LogicalStructure . FigureElement >( true )) 
     { 
         // Set AlternativeText for Figure 
         figureElement . AlternativeText  =  "Figure alternative text (technique 2)" ; 
 
         // Create and Set BBox Attribute 
         var  bboxAttribute  =  new  Aspose . Pdf . LogicalStructure . StructureAttribute ( Aspose . Pdf . LogicalStructure . AttributeKey . BBox ); 
         bboxAttribute . SetRectangleValue ( new  Aspose . Pdf . Rectangle ( 0.0 ,  0.0 ,  100.0 ,  100.0 )); 
 
         Aspose . Pdf . LogicalStructure . StructureAttributes  figureLayoutAttributes  =  figureElement . Attributes . GetAttributes ( Aspose . Pdf . LogicalStructure . AttributeOwnerStandard . Layout ); 
         figureLayoutAttributes . SetAttribute ( bboxAttribute ); 
     } 
 
     // Move Span Element into Paragraph (find wrong span and paragraph in first TD) 
     Aspose . Pdf . LogicalStructure . TableElement  tableElement  =  rootElement . FindElements < Aspose . Pdf . LogicalStructure . TableElement >( true )[ 0 ]; 
     Aspose . Pdf . LogicalStructure . SpanElement  spanElement  =  tableElement . FindElements < Aspose . Pdf . LogicalStructure . SpanElement >( true )[ 0 ]; 
     Aspose . Pdf . LogicalStructure . TableTDElement  firstTdElement  =  tableElement . FindElements < Aspose . Pdf . LogicalStructure . TableTDElement >( true )[ 0 ]; 
     Aspose . Pdf . LogicalStructure . ParagraphElement  paragraph  =  firstTdElement . FindElements < Aspose . Pdf . LogicalStructure . ParagraphElement >( true )[ 0 ]; 
 
     // Move Span Element into Paragraph 
     spanElement . ChangeParentElement ( paragraph ); 
 
     // Save PDF document 
     document1 . Save ( dataDir  +  "TH_out.pdf" ); 
 
     // Check PDF/UA Compliance for out document 
     using  var  document2  =  new  Aspose . Pdf . Document ( dataDir  +  "TH_out.pdf" ); 
 
     bool  isPdfUaCompliance  =  document2 . Validate ( dataDir  +  "TH_out.pdf" ,  Aspose . Pdf . PdfFormat . PDF_UA_1 ); 
     Console . WriteLine ( String . Format ( "PDF/UA compliance: {0}" ,  isPdfUaCompliance )); 
 }