Extraction de texte Itextsharp
Je suis en utilisant itextsharp sur vb.net pour obtenir le contenu du texte à partir d'un fichier pdf. La solution fonctionne très bien pour certains fichiers, mais pas pour les autres, même très simple. Le problème est que le jeton stringvalue est définie sur null (un ensemble de vide carrés)
token = New iTextSharp.text.pdf.PRTokeniser(pageBytes)
While token.NextToken()
tknType = token.TokenType()
tknValue = token.StringValue
Je peux meassure la longueur du contenu, mais je ne peux pas obtenir de la chaîne de contenu.
J'ai réalisé que ce qui se passe en fonction de la police de la pdf. Si je créer un fichier pdf avec Acrobat ou PdfCreator avec Messagerie (c'est la police par défaut dans mon éditeur de visual studio) je peux obtenir tout le contenu du texte. Si le même fichier pdf est construit en utilisant une police de caractères différente, j'ai obtenu le vide de carrés.
Maintenant la question est, Comment puis-je extraire le texte indépendamment de la police?
Grâce
source d'informationauteur Pakhu
Vous devez vous connecter pour publier un commentaire.
complémentaires pour Marquer la réponse qui m'aide beaucoup .iTextSharp la mise en œuvre des espaces de noms et les classes sont un peu différent de la version java
Découvrez PdfTextExtractor.
ou
Les deux nécessitent assez récentes versions de la bibliothèque iText[Forte]. En fait l'analyse du flux de contenu vous-même est tout simplement de réinventer la roue à ce point. Epargnez-vous un peu de douleur et de laisser iText le faire pour vous.
PdfTextExtractor se charge de toutes les différentes polices/problèmes d'encodage pour vous... et de tous ceux qui peuvent être traitées de toute façon. Si vous ne pouvez pas copier/coller à partir du Lecteur avec précision, alors il n'y a pas assez d'informations présentes dans le fichier PDF pour obtenir des renseignements sur les caractères du flux de contenu.
Voici une variante avec iTextSharp.texte.pdf.PdfName.ANNOTS et iTextSharp.texte.pdf.PdfName.CONTENU si quelqu'un en a besoin.