2010-09-18 15 views
0

J'essaye de décoder un fichier PDF en données utiles mais j'ai quelques problèmes de système de coordonnées.PDF décoder et trouver des données utiles

D'abord, les données que je utilise: http://pastebin.com/h4MFiSbd (je l'ai déjà décodées il)
et l'image qui correspond: http://yfrog.com/mycapturejvp

Je suis en train d'obtenir les coordonnées des carrés gris.

Mon problème est que j'ai trouvé les coordonnées du texte:

0 1.00057 -1 0 65.1595 353.15 Tm 
[(2)5.81146(.)2.90771(4)5.81146()2.90771(t)2.90771(i)222]TJ 

65.1595 = y 
353.15 = x 

Mais le problème est la coordonnée des carrés. J'ai trouvé la couleur des carrés ainsi que les coordonnées:

0.753906 0.753906 0.753906 rg 
3039 200.914 817.996 1329 re 

Dans le PDF font référence dit re utilise x,y,width,height, mais comme vous pouvez le voir, est 3039 beaucoup plus grand que 353,15. J'ai également vu Tm utilise une chose de la matrice [[a, b, 0], [c, d, 0], [e, f, 1]]

L'autre problème est que ces rectangles sont erronés en quelque sorte:

470.996 2934.91 1674 1329 re ---> beveilig.tech.pr 
1327 1567.91 2102 1329 re ---> beveilig.tech.th 
1327 4301.91 817.996 1329 re ---> bbc ti 
2183 4301.91 817.996 1329 re ---> b&o practicum 
3039 200.914 817.996 1329 re ---> b&o theorie 

J'ai rassemblé toutes les coordonnées des 0.753906 0,753906 0,753906 carrés de couleur, avec le nom du texte au-dessous. Comme vous pouvez voir ces coordonnées suggèrent que tous les blocs ont une hauteur égale.

Quelqu'un peut-il m'aider s'il vous plaît?

Répondre

2

La raison est dans la première ligne - "0,12 0 0 0,12 0 0 cm". Cette opération définit la matrice de transformation et les coordonnées (simplifiées) des coordonnées x, y dans toutes les opérations suivantes de 0,12. Donc 3039 est vraiment = 3039 * 0.12 = 364.68.

0

Vous avez vraiment besoin de suivre les valeurs lors de l'analyse car vous pouvez également obtenir des déplacements relatifs (td) et vous devez prendre en compte beaucoup d'autres valeurs pour obtenir le rectangle de contour correct pour le texte.

Les valeurs peuvent également être placées sur et hors de la pile avec les commandes Q q.