Extrait du texte en PDF par des coordonnées
J'aimerais savoir s'il existe un PDF de la bibliothèque de Microsoft .NET d'être en mesure de l'extraction de texte en donnant les coordonnées.
Par exemple (en pseudo-code):
PdfReader reader = new PdfReader();
reader.Load("file.pdf");
//Top, bottom, left, right in pixels or any other unit
string wholeText = reader.GetText(100, 150, 20, 50);
J'ai essayé de le faire à l'aide de PDFBox pour .NET (que l'on travaille sur le dessus de IKVM) avec pas de chance, et il semble être très désuet et sans-papiers.
Peut-être quelqu'un a un bon exemple de le faire avec PDFBox, iTextSharp ou de tout autre open-source de la bibliothèque, et il/elle peut me donner un indice.
Vous en remercie d'avance.
Ne pensez-vous pas que le zoom d'un point de vue de modifier ce texte est désigné coordonnées? De l'extraction de données en fonction de leur position dans la représentation, en particulier lorsqu'il est susceptible de changer, me semble être une fonctionnalité que la lib développeurs ne serait pas juste de la peine à réaliser dans leur application.
ne sais pas du tout opensource bibliothèque capable de cela... SI une bibliothèque commerciale est une option que je pourrais donner un ou deux liens...
Vous avez raison, mais mon projet aura une taille fixe visionneuse de PDF, alors je crois que ce n'est pas la situation que vous êtes en train de parler. Par exemple, dans Adobe Reader, lorsque vous sélectionnez quelque chose comme une image et un zoom-in et zoom-out, la sélection est redimensionnée. Peut-être que cela peut être réalisé qu'avec une bibliothèque. En fait, Apache PDFBox a quelque chose comme le choix des régions offrant un rectangle, ce qui signifie que je ne suis pas aussi fou que vous avez pensé 😀
cela dépendra de prix, mais de me donner ces conseils dans les commentaires et je vais prendre un coup d'oeil.
ne sais pas du tout opensource bibliothèque capable de cela... SI une bibliothèque commerciale est une option que je pourrais donner un ou deux liens...
Vous avez raison, mais mon projet aura une taille fixe visionneuse de PDF, alors je crois que ce n'est pas la situation que vous êtes en train de parler. Par exemple, dans Adobe Reader, lorsque vous sélectionnez quelque chose comme une image et un zoom-in et zoom-out, la sélection est redimensionnée. Peut-être que cela peut être réalisé qu'avec une bibliothèque. En fait, Apache PDFBox a quelque chose comme le choix des régions offrant un rectangle, ce qui signifie que je ne suis pas aussi fou que vous avez pensé 😀
cela dépendra de prix, mais de me donner ces conseils dans les commentaires et je vais prendre un coup d'oeil.
OriginalL'auteur Matías Fidemraizer | 2011-09-13
Vous devez vous connecter pour publier un commentaire.
Bien, je vous remercie pour votre effort de quelqu'un.
Je l'ai eu à l'aide de Apache PDFBox sur le dessus de IKVM compilation, et c'est le code final:
Et il fonctionne comme un charme.
Merci en tout cas et j'espère que ma propre réponse sera aider les autres. Si vous avez besoin de plus de détails, juste un commentaire ici et je vais mettre à jour cette réponse.
Pour utiliser le code dans la réponse ci-dessus, vous devez d'installation IKVM. C'est simple, si la pris un certain temps pour moi de faire enquête. Vous devez référence bibliothèques suivantes: IKVM.OpenJDK.Core.dll, IKVM.OpenJDK.SwingAWT.dll, pdfbox-1.8.2.dll (l'obtenir par ikvmc -cible:bibliothèque pdfbox-1.8.2.jar de commande), IKVM.OpenJDK.Util.dll, IKVM.Runtime.dll
OriginalL'auteur Matías Fidemraizer
Il n'est pas open source, mais j'espère que cela vous aide à vous (et possiblement toute autre personne à l'aide de ABCPDF!)
Je l'ai fait plus tôt aujourd'hui, en faisant une boucle sur les champs disponibles dans le fichier PDF. Cela signifie que le fichier PDF que vous utilisez doit être créé correctement et vous avez besoin de connaître le nom du champ que vous voulez obtenir le texte (que vous pouvez faire ce travail par l'ajout d'un point d'arrêt et la mise en boucle à travers les champs disponibles).
Dans l'exemple, "Texte1" est le nom du champ qui est en train d'être mis à jour. Remarque, je suis également fournir un exemple pour l'enregistrement à jour de champ(s).
Espérons qu'au moins vous donne une idée de la manière d'aborder ce problème.
Le champ d'objet expose une propriété "Rect". Si vous connaissez la position qu'ils ont cliqué, vous pouvez retourner le domaine qui correspond à l'coordonnées en le regardant de haut/bas/droit/gauche de la Rect. Il pourrait y avoir une meilleure façon de le faire avec les différentes bibliothèques, mais cela pourrait fonctionner si vous êtes coincé.
Eh bien, c'est bon à savoir et à une autre ressource. J'ai été à la recherche pour certains de la bibliothèque pour faire la sélection dans un plus arbitraire, mais c'est ok.
OriginalL'auteur Ben Pearson
Cela devrait fonctionner:
OriginalL'auteur Timo Hoen
iText est
RegionTextRenderFilter
est précisément ce que vous cherchez.Donc, vous voulez quelque chose de ce genre (pardonnez mon Java, mais il doit être facile à traduire):
Hey, j'ai essayé votre solution mais il me semble que iTextSharp (.Version NET) n'a pas de stratégie...
Même problème que Marias -- comment cela peut-il être fait dans .NET?
OriginalL'auteur Mark Storer
Ce code fonctionnera dans la bibliothèque itext 7
OriginalL'auteur siva lakkakula