Maison >développement back-end >C++ >Comment puis-je récupérer le formatage du texte (police, taille, style) à partir d'un PDF à l'aide d'iTextSharp ?

Comment puis-je récupérer le formatage du texte (police, taille, style) à partir d'un PDF à l'aide d'iTextSharp ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-11 10:56:42513parcourir

How Can I Retrieve Text Formatting (Font, Size, Style) from a PDF Using iTextSharp?

Comment extraire le format de texte à l'aide d'iTextSharp

Bien qu'iTextSharp fournisse une méthode d'extraction de texte efficace, elle peut présenter des lacunes dans la conservation des détails de formatage tels que les polices, les couleurs et les tailles. Pour surmonter cette limitation, nous avons exploré une approche alternative.

Stratégie d'extraction de texte personnalisée

La classe TextWithFontExtractionStategy personnalisée étend l'interface ITextExtractionStrategy pour capturer les informations de format. Dans la méthode RenderText :

  • Il surveille les noms de polices, l'utilisation du pseudo-gras, les modifications de base et les modifications de taille de police.
  • Si l'un de ces attributs change, il fermera la balise span HTML actuelle et en créera une nouvelle avec les styles correspondants.

Exemple de sortie

Le code C# suivant montre comment extraire le formatage du texte et des polices d'un PDF :

<code class="language-csharp">StringBuilder result = new StringBuilder();
PdfReader reader = new PdfReader(System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "Document.pdf"));
TextWithFontExtractionStategy S = new TextWithFontExtractionStategy();
string F = iTextSharp.text.pdf.parser.PdfTextExtractor.GetTextFromPage(reader, 1, S);
Console.WriteLine(F);</code>

La sortie HTML générée contient des balises pour la famille de polices, la taille de police et le style de police.

Autres considérations

  • PostscriptFontName peut contenir des caractères supplémentaires, qui peuvent être liés au sous-ensemble de polices.
  • L'exemple de code suppose que les modifications apportées à la ligne de base représentent des nouvelles lignes en HTML.
  • Le processus d'extraction ne capture actuellement pas d'informations sur les couleurs, mais certains éléments indiquent que cela peut être réalisé manuellement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn