- Ce sujet est vide.
-
Sujet
-
Bonjour à tous,
À mon boulot, nous voulons réaliser un petit programme qui propose la chose suivante :
nous avons reçu des pdf ne contenant qu’une seule page. Donc 1 pdf = 1 page. Partant de ces pdf, chacun d’eux est transformé en une image de 800 * 1045. Nous avons donc 1 image par pdf… les images générées sont toutes de ces dimensions, quelque-soit la taille du pdf.
Ce que je dois faire, c’est de partir de ces même pdf, de parcourir tous les mots et pour chacun de ces mots, en extraires les quatres coordonnées qui forme le quadrilatère qui l’entoure. Cela doit donc fonctionner pour n’importe quel mot, quelque soit son orientation.
Le but une fois récupéré ces coordonnées, c’est de les transformer pour qu’elles coincident avec l’emplacement du mot dans l’image. Pour dessiner un highlight donc.
Jusqu’à présent j’arrive à bien le faire fonctionner sur une partie des pdf. J’ai pour cela créé un plugin dans acrobat qui parcourt les mots de la page, j’utilise un WordFinder (ou quelque chose du genre… me rappelle plus). Pour chacun des mots, j’ai un ou plusieurs quadrilatères (par exemple pour chaque lettre si le mot est ondulé). Chaque quadrilatère est donc formé de 8 nombres, 2 nombres par points (h et v). Tout cela est enregistré dans un fichier ainsi que la crop box, la bounding box et la media box de la page.
Ces nombres, sont dans le user space coordinates… ce qui me donne des nombres dépassant les millions.
Si je ne me trompe pas, j’ai bien toutes les données nécessaires… non ?
Donc à partir de ces données, prenons par exemple le premier mot du pdf. Disons qu’il est constitué d’un seul quadrilatère. J’ai donc 8 nombres. Prenons le premier point, j’ai 2 nombres : h et v.
h représente la position X, je la transforme de la façon suivante : h / (taille du pdf en X qui est donc (CropBox->right – CropBox->left))…. et la valeur que j’obtiens je la multiplie par 800. Cette formule me semble tout à fait banale et pourtant elle me pose des problèmes.
Sur une partie des pdf, elle fonctionne superbement bien, le highlight est positionné à la bonne position et de la bonne largeur.
Sur d’autres, le highlight est décallé… mais je ne comprend pas pourquoi.
En analysant un peu les données, j’ai remarqué que sur ceux pour lesquelles ça marche, il y a une bounding box plus petite que la cropbox alors que pour les autres non… la boundingbox est identique à la cropbox… et pourtant quand je les regarde avec acrobat, rien ne semble différent, les marges sont les mêmes et tout.
La différence entre les deux, sur ceux pour lesquelles ça marche ont une cropbox un peu plus grande que la mediabox.
Bref, si quelqu’un pouvait me dire ce que j’ai oublié de faire… ce serait super.
Merci à vous tous.
@+
- Vous devez être connecté pour répondre à ce sujet.