Bonjour à tous,

Après avoir chercher sur le site et avec Google je ne trouve pas de réponse alors je me lance.

Mon problème : un client me transmet des formulaires remplis au format PDF et je souhaite extraire une information précise du formulaire : l'adresse

J'ai récupérer un bout de code utilisant pyPDF
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
 
## {{{ http://code.activestate.com/recipes/511465/ (r2)
import pyPdf
 
def getPDFContent(path):
    content = ""
    # Load PDF into pyPDF
    pdf = pyPdf.PdfFileReader(file("test.pdf", "rb"))
    # Iterate pages
    for i in range(0, pdf.getNumPages()):
        # Extract text from page and add to content
        content += pdf.getPage(i).extractText() + "\n"
    # Collapse whitespace
    content = " ".join(content.replace("xa0", " ").strip().split())
##    content = " ".join(content.replace("\xa0", " ").strip().split())
    return content
 
print getPDFContent("test.pdf").encode("ascii", "xmlcharrefreplace")
mais je ne sais pas comment traité le résultat dont voici un extrait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
˘ˇˆ˝˛˛˚˜ !!˙ˆˇˆˆ˘ˆ˝˙˛˛˚˝˘˚˚ !˛˝˛˝"##$˚%!˝˘!&'˜(˝˙˛˛˚˝)˚&*ˆ˝˘˜+"##$ (&"#˘˘˘˘ˇˆˆ˙˝ˇˆ˛ˆ˙ˇˆ˚˙ˆ˙˜ˆˆˇ˙ˆ˙ˆˇ !"#$%&!'$())(*"*+,%*-%*-%,$"./,!0!0$*0$$*%/,$"ˆ(.%,,0%1!&%,!"$-&$#)"-$2!*$-/$,(3&('!$3˜$-!&˜)(-!24˜&#%*",%&$%*--!"&#!/.&$(#5"3(#,-3!-$2(#(*6())$#0!%,1.#1("$".*-$#& $&$#)"(2& !"!0$*0$˜1#('!-$-& %&ˆ(.0#$-!&& $#!+!*%,.& (#ˇ7 $!0$*"(#78(*$(#)(#$,$+%,,4#$0(+*!"$-1$#"(*"(#$*&!&!$"(22$#!*+& $(#5.*-$#& $&$#)"%*-0(*-!&!(*"(2& !"!0$*0$9%*-7ˆ(.7%+#$$%"2(,,(3":;ˇ$2!*!&!(*"˘&&#!/.&!(*˘)$%*"%05*(3,$-+!*+%,,& $1%#&!$"3 ( %'$0(*&#!/.&$-&(%*- %'$#!+ &"!*& $(#5(#(,,$0&!'$(#5.*-$#& !"!0$*0$ˇ˘(,,$0&!'$(#5˘)$%*"& $(#5!*!&"$*&!#$&4!*.*)(-!2!$-2(#)%,(*+3!& *.)/$#(2(& $#"$1%#%&$%*-!*-$1$*-$*&3(#5"˜%""$)/,$-!*&(0(,,$0&!'$3 (,$ˇ˘$#!'%&!'$(#5˘)$%*"%*43(#50#$%&$-/4& $$-!&!*+˜)(-!2!0%&!(*˜%-%1&%&!(*(#&#%*",%&!(*(2& $(#5!*%*4)$-!% (3$'$#3(#5& %&0(*"&!&.&$"(,,$0&!'$(#53!,,*(&/$0(*"!-$#$-$#!'%&!'$(#52(#& $1.#1("$(2& !"!0$*0$ˇ(#& $%'(!-%*0$(2-(./&˜3 $#$& $(#5!")."!0%,0()1("!&!(*(#"(.*-#$0(#-!*+˜& $"4*0 #(*!<%&!(*(2& $(#5!*&!)$-6#$,%&!(*3!& )('!*+!)%+$˘"4*0 !*+˘3!,,/$0(*"!-$#$-$#!'%&!'$(#52(#& $1.#1("$(2& !"!0$*0$ˇ˘!0$*0$˘)$%*"& !"#$%&!'$())(*"*+,%*-%*-%,$"./,!0!0$*0$%+#$$)$*&ˇ˘(*6())$#0!%,˘)$%*"˘*(&1#!)%#!,4!*&$*-$-2(#(#-!#$0&$-&(3%#-"0())$#0!%,%-'%*&%+$(#1#!'%&$)(*$&%#40()1$*"%&!(*˘ˇ $$=0 %*+$(2& $(#52(#(& $#0(14#!+ &$-3(#5"/4)$%*"(2-!+!&%,2!,$6" %#!*+(#(& $#3!"$" %,,*(&/$0(*"!-$#$-&(/$!*&$*-$-2(#(#-!#$0&$-&(3%#-"0())$#0!%,%-'%*&%+$(#1#!'%&$)(*$&%#40()1$*"%&!(*˜1#('!-$-& $#$!"*(1%4)$*&(2%*4)(*$&%#40()1$*"%&!(*!*0(**$0&!(*3!& & $$=0 %*+$(20(14#!+ &$-3(#5"ˇ˘#!+!*%,& (#˘)$%*"& $!*-!'!-.%,(#$*&!&43 (0#$%&$-& $(#5ˇ˘(#5˘)$%*"& $3(#51#(&$0&$-/40(14#!+ &3 !0 !"(22$#$-.*-$#& $&$#)"(2& !"!0$*0$ˇ(#& $1.#1("$(2& !"!0$*0$˜3 $**(&!*0(*"!"&$*&3!& & $0(*&$=&˜3(#-"!*& $"!*+.,%#*.)/$#!*0,.-$& $1,.#%,*.)/$#ˇ>ˇ!0$*0$$#)">ˇ; $!0$*"(# $#$/4+#%*&"&(ˆ(.3(#,-3!-$˜#(4%,&462#$$˜*(*6$=0,."!'$˜!0$*0$2(#(*6())$#0!%,."$%*-2(#& $-.#%&!(*(20(14#!+ &!*& $(#5ˇˆ(.)%4:0(14& $(#5?!*0(#1(#%&$& $(#5!*&((*$(#)(#$(,,$0&!'$(#5"?0(14& $(#5%"!*0(#1(#%&$-!*%*4(,,$0&!'$(#5?%*-1./,!" ˜-!"&#!/.&$˜%#0 !'$˜1$#2(#)(#(& $#3!"$-!""$)!*%&$& $(#5(#& $(#5%"!*0(#1(#%&$-!*%*4(,,$0&!'$(#5˜&(& $1./,!0!*%*4)%&$#!%,2(#)!*%*4)$-!3 $& $#*(35*(3*(# $#$%2&$#0#$%&$-ˇ˜ˆ(.)."&*(&:!)1("$%*4&$#)"(*& $."$&(/$)%-$(2& $(#5˜& $(#5%"!*0(#1(#%&$-!*(,,$0&!'$(#5& %&%,&$#(##$"&#!0&& $&$#)"(2& !"!0$*0$(#%*4#!+ &"+#%*&$-.*-$#!&(# %"& $$22$0&(#!*&$*&(2#$"&#!0&!*+& $%/!,!&4&($=$#0!"$& ("$#!+ &"?!)1("$%*4-!+!&%,#!+ &")%*%+$)$*&&$0 *(,(+4(*& $(#5˜& $(#5%"!*0(#1(#%&$-!*(,,$0&!'$(#5& %&%,&$#"(##$"&#!0&"& $&$#)"(2& !"!0$*0$(#%*4#!+ &"+#%*&$-.*-$#!&(# %"& $$22$0&(#!*&$*&(2#$"&#!0&!*+& $%/!,!&4&($=$#0!"$& ("$#!+ &"?)%5$%*4$#!'%&!'$(#5"?"./,!0$*"$& $(#5?"./@$0&& $(#5&(%*4-$#(+%&(#4&#$%&)$*&%"-$2!*$-!*& $(14#!+ &˜$"!+*"%*-%&$*&"&;ABBˇˆ˜ˆ(.)."&:)%5$#$2$#$*0$&(& !"!0$*0$/4*!2(#)$"(.#0$-$*&!2!$#˜"1(5$*3(#-(#%"%11#(1#!%&$&(& $)$-!."$-(*%,,0(1!$"(2& $(#5%*-(,,$0&!'$(#5"1./,!" $-˜-!"&#!/.&$-˜1$#2(#)$-(#(& $#3!"$-!""$)!*%&$-(#)%-$%'%!,%/,$&(& $1./,!0/4ˆ(.?#$0(+*!"$& $!0$*"(#7"˝#!+!*%,.& (#7"#!+ &(2%&&#!/.&!(*!*%*4(#5%*-(,,$0&!'$(#5& %&ˆ(.1./,!" ˜-!"&#!/.&$˜1$#2(#)(#(& $#3!"$-!""$)!*%&$&(& $1./,!0%*-$*".#$& %&ˆ(.0#$-!&& $!0$*"(#˝#!+!*%,.& (#%"%11#(1#!%&$&(& $)$-!."$-?%*-&(& $$=&$*&#$%"(*%/,41#%0&!0%/,$˜5$$1!*&%0&%,,*(&!0$"& %&#$2$#&(& !"!0$*0$˜!*1%#&!0.,%#& $˜!2%*4˜& %&& $!0$*"(#"1$0!2!$"&(/$%""(0!%&$-3!& & $(#5˜.*,$""".0 -($"*(&#$2$#&(& $0(14#!+ &*(&!0$(#,!0$*"!*+!*2(#)%&!(*2(#& $(#5ˇ-!&!(*%,#('!"!(*"2(#& !#-1%#&!$")%5!*+."$(2& $(#5>ˇ>ˇ.#& $#,!0$*0$2#()& $!0$*"(#%0 &!)$ˆ(.1./,!" ˜-!"&#!/.&$˜1$#2(#)(#(& $#3!"$-!""$)!*%&$& $(#5?(#& $(#5%"!*0(#1(#%&$-!*(,,$0&!'$(#5& $!0$*"(#%+#$$"&((22$#&(& $#$,$'%*&& !#-1%#&4)%5!*+."$(2& $(#5!*%*4(2& $%,&$#*%&!'$""$&(.&%/('$,!0$*0$&(."$& $(#5(*& $"%)$&$#)"%*-0(*-!&!(*"%"+#%*&$-&(ˆ(. $#$.*-$#ˇ>ˇCˇ !"!0$*0$-($"*(&%22$0&%*4#!+ &"& %&& $"$#)%4 %'$.*-$#%*4%11,!0%/,$,%3˜!*0,.-!*+2%!#."$˜2%!#-$%,!*+(#%*4(& $#,$+%,,4#$0(+*!"$-,!)!&%&!(*(#$=0$1&!(*&(0(14#!+ &!*2#!*+$)$*&ˇ (&,>ˇDˇ,#!+ &"*(&$=1#$"",4+#%*&$-/4& $!0$*"(#%#$ $#$/4#$"$#'$-˜!*0,.-!*+/.&*(&,!)!&$-&(˜& $$=0,."!'$#!+ &&(0(,,$0&˜3 $& $#!*-!'!-.%,,4(#'!%,!0$*"!*+/(-4˜".0 %"0(,,$0&!*+"(0!$&4˜#(4%,&!$"2(#%*4."$(2& $(#52(#%*4#$%"(*3 !0 #$".,&"!*0())$#0!%,%-'%*&%+$(#1#!'%&$)(*$&%#40()1$*"%&!(*ˇCˇ%##%*&!$"%*-!"0,%!)$#=0$1&%"#$E.!#$-/4,%3˜& $(#5!",!0$*"$-/4& $!0$*"(#(*%*˘%"!"˘%*-˘%"%'%!,%/,$˘/%"!"%*-3!& (.&%*43%##%*&4(2%*45!*-˜$!& $#$=1#$""(#!)1,!$-ˇDˇ!)!&(2!%/!,!&4/@$0&&(%*4,!%/!,!&43 !0 )%4*(&/$$=0,.-$-(#,!)!&$-/4,%3& $!0$*"(#" %,,*(&/$,!%/,$%*- $#$/4$=1#$"",4$=0,.-$"%,,,!%/!,!&42(#,(""(#-%)%+$ (3"($'$#%*-3 $*$'$#0%."$-&(ˆ(.ˇFˇ$#)!*%&!(* $#!+ &"+#%*&$-&(ˆ(..*-$#& !"!0$*0$" %,,&$#)!*%&$%.&()%&!0%,,4.1(*%*4/#$%0 /4ˆ(.(2& $&$#)"(2& !"!0$*0$ˇ*-!'!-.%,"(#$*&!&!$"3 ( %'$#$0$!'$-(,,$0&!'$(#5"2#()ˆ(..*-$#& !"!0$*0$˜ (3$'$#˜3!,,*(& %'$& $!#!0$*0$"&$#)!*%&$-1#('!-$-".0 !*-!'!-.%,"(#$*&!&!$"#$)%!*!*2.,,0()1,!%*0$3!& & ("$!0$*0$"ˇGˇ˙$*$#%,Gˇ;ˇ $'%,!-!&4(#$*2(#0$%/!,!&4(2& $#$)%!*!*+&$#)"(2& !"%+#$$)$*&!"*(&%22$0&$-/4& $ (,-!*+(2%*41#('!"!(*(2!&&(/$!*'%,!-(#.*$*2(#0$%/,$ˇGˇ>ˇ !"!0$*0$0(*"&!&.&$"& $$*&!#$!0$*0$#$$)$*&/$&3$$*& $1%#&!$"3!& #$"1$0&&(& $(#5,!0$*"$- $#$ˇ $#$%#$*(.*-$#"&%*-!*+"˜%+#$$)$*&"(##$1#$"$*&%&!(*"3!& #$"1$0&&(& $(#5*(&"1$0!2!$- $#$ˇ $!0$*"(#" %,,*(&/$/(.*-/4%*4%--!&!(*%,1#('!"!(*"& %&)%4%11$%#!*%*40()).*!0%&!(*!*%*42(#)ˇGˇCˇ1$#"(*3 (!"*(&1%#&4&(& !"!0$*0$" %,, %'$*(#!+ &".*-$#& $(*&#%0&"!+ &"(2 !#-%#&!$"&;AAA&($*2(#0$%*4(2!&"&$#)"ˇGˇDˇ !"!0$*0$" %,,/$+('$#*$-/4& $,%3(2*+,%*-%*-%,$"%*-& $1%#&!$"!##$'(0%/,4"./)!&&(& $$=0,."!'$@.#!"-!0&!(*(2& $(.#&"(2*+,%*-%*-%,$"ˇHˇ*& $#(,$(2#$%&!'$())(*"Hˇ;ˇ$!& $#& $!0$*"(#*(#& $"$#)%4."$& $#$%&!'$())(*",(+($=0$1&&(!*-!0%&$& %&& $(#5!",!0$*"$-.*-$##$%&!'$())(*"!0$*0$ˇ41$#)!&&$-."$ %"&(/$!*0()1,!%*0$3!& & $#$%&!'$())(*"&#%-$)%#5."%+$+.!-$,!*$"%&& $&!)$(2."$(2& $#$%&!'$())(*"&#%-$)%#5ˇ $"$+.!-$,!*$")%4/$2(.*-(*& $#$%&!'$())(*"3$/"!&$(#/$(& $#3!"$%'%!,%/,$.1(*#$E.$"&2#()&!)$&(&!)$ˇHˇ>ˇ#$%&!'$())(*"(#1(#%&!(*-($"*(&1#(2!&2!*%*0!%,,42#()!&"#(,$!*1#('!-!*+& !"!0$*0$%*-3!,,*(&!*'$"&!+%&$& $0,%!)"(2%*4!0$*"(#(#."$#(2& $!0$*0$ˇHˇCˇ*$(2& $0(*-!&!(*"& %&#$%&!'$())(*"(#1(#%&!(*#$E.!#$"(2& $!0$*"(#%*-ˆ(.!"%*%05*(3,$-+$)$*&(2!&",!)!&$-#(,$%*-%+#$$)$*&/4%,,3 (."$& $!0$*0$& %&& $(#1(#%&!(*!"*(&#$"1(*"!/,$&(%*4(*$2(#& $"&%&$)$*&"%*-%0&!(*"(2ˆ(.(#& $!0$*"(#(#%*4(*$$,"$%&&$)1&!*+&(."$(#."!*+& !"!0$*0$ˇHˇDˇ#$%&!'$())(*"(#1(#%&!(*!"*(&1%#&4&(& !"!0$*0$˜%*-)%5$"*(3%##%*&43 %&"($'$#!*0(**$0&!(*&(& $(#5(#!*0(**$0&!(*&(& $!0$*0$˜%*-!*%,,$'$*&"!"*(&,!%/,$2(#%*4,(""(#-%)%+$#$".,&!*+2#()& $!0$*"(#7"(#ˆ(.##$,!%*0$(*& !"!0$*0$(#(*!&"$*2(#0$%/!,!&4ˇHˇFˇˆHˇ;˜Hˇ>˜HˇC˜HˇD˙7ˆˆˇ (&-$˙˘˘˘&˘˙%˝˙˛˛˝˝˝˚&˛˝˜˘&ˆ&ˆ˚˜˘˘#˚.˚/0(1 ˆˇ˙˝˙˛˛˝˘˚˚ !˛˛˜˘˛!˛˜˘˛˛˜˘˚ˆ˘˝˙˛˛˝˝˝˚&˛˝˜˘&ˇˆ&˚˜˘˘#˚.˚"ˆ˝˘0(1 ˆ ˙˝˙˛˛˝˘˚˚ !˛˛˜˘˛!˛˜˘˛˛˜˘˚ˆ˘˘ˆ˝˘ˆ˝˘˝˙˛˛˝˘˚˚ !˛˛˜˘˛!˛˜˘˛ˆ˝˘˛˙˝˙˛˛˝˝˝˚&˛˝˜˘˘˘˘˘ &˜˘˜˘˙˝&ˆ&˝&ˆ&˝˘/˚,˚# ˆ˜ˆ˝˘˙˝˙˛˛˝˘˚˚ !˛˛˜˘˘˛!˛˜˘˘˛˛˘ˆ&'˜˘3ˆ ˘&˝˘&ˆ ˘˘!&ˆˆˆ&˚˜˘ (&4$˘ˆ˘˘˘˚ˇ˘˘&ˆ˝˘ˆ ˘˚$ˆ&2+ ˜˙3!˝6˚2&7ˆ˝!˜˘)#˚.˚/˚%˙3!˝6˚$ˆ˙%$ˆ2˘˜˘)#˚.˚/˚,"˚˘˘˚˘˘˘˘(˘˘˚$ˆ˙ˆˆ)˝˘ˆˆ˘'˘˘˘˘˚9ˆˆ˝˘˙˝˙˛˛˝!˚ˆˆˆ˛˛'˘˘ (&:$ˆˆ˙ ˙%˝)˝˘ˆˆˆ&˝˝!&ˇ˝6&(˚;&˘˘˘˘˘&˙˝˙˛˛˚%˝&˛<!<˛%˚˘˛!˛˝˛˝˚˝˘˘&ˇ˘˘&˙˙˝˘9˘˘˘˘&˙˘˙˘ˆ˚ ˘˝&˘˘&˙˘˝˙˛˛˝˝˚&˛˝%˚ (&.'ˆ%(0˘˘ˆ˝˘ˇˆ˘˚"!!˘ˆ6ˆ
Pouvez vous me dire si :
- la méthode est bonne ?
- si oui comment passer à l'étape suivante : récupérer l'information que je souhaite ?

Merci