2010-10-28 9 views
1

Sur mon site Web, j'affiche des fichiers PDF téléchargés dans un lecteur Flash que mes utilisateurs peuvent lire.Calculez les coordonnées x & y, la largeur et la hauteur d'un texte spécifique dans un document PDF

J'utilise déjà divers outils pour extraire le texte et produire des images sérieuses de haute qualité à partir du fichier et le système fonctionne bien.

La dernière pièce du puzzle est de pouvoir mettre en évidence des parties spécifiques du document pour aider les utilisateurs ayant des problèmes d'accessibilité.

Cependant, je ne peux pas comprendre comment calculer où le texte spécifique est positionné sur la page?

Notes:

  • Les documents téléchargés sur le système sont de 3e parties, si les polices peuvent être incorporées. Ce qui signifie que je ne peux pas être sûr de la largeur des lettres spécifiques.
  • Le texte à mettre en avant ne peut pas être unique, le même texte peut être répété

Comment puis-je calculer les coordonnées, la hauteur et la largeur d'un morceau de texte spécifique sur un PDF, afin que je puisse puis dessinez une boîte autour d'elle?

Répondre

1

J'ai utilisé un SDK appelé QuickPDF sur www.quickpdf.com pour un projet récent.

Ils ont une fonction appelée ExtractFilePageText() qui peut renvoyer le texte, la police, les coordonnées de la boîte englobante.

Les options d'extraction comprennent: -

0 = texte extrait en format lisible par l'homme 2 = Retourne une chaîne CSV y compris la police, la couleur, la taille et la position de chaque morceau de texte sur la page En utilisant plus Algorithme d'extraction de texte précis: 3 = Renvoie une chaîne CSV pour chaque morceau de texte sur la page avec le format suivant: Nom de la police, Couleur du texte, Taille du texte, X1, Y1, X2, Y2, X3, Y3, X4, Y4, Texte Les coordonnées sont les quatre points délimitant le texte, mesurés en points (1/72 pouces) avec le coin inférieur gauche de la page comme origine 4 = Semblable à l'option 3, mais des mots individuels sont retournés, rendant la recherche de mots plus facile.

Il existe une licence de développeur requise mais aucune redevance d'exécution. Il a beaucoup d'autres fonctionnalités utiles et fonctionne avec de nombreuses langues. Le documentation est plutôt bon.

+0

Ça a l'air génial. Merci Andrew. –