Récupérer une information dans un fichier PDF
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:
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:
˘ˇ˝˛˛˚ !!˙ˇ˘˝˙˛˛˚˝˘˚˚ !˛˝˛˝"##$˚%!˝˘!&'(˝˙˛˛˚˝)˚&*˝˘+"##$ (&"#˘˘˘˘ˇ˙˝ˇ˛˙ˇ˚˙˙ˇ˙˙ˇ !"#$%&!'$())(*"*+,%*-%*-%,$"./,!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ˇCHˇ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
Récupérer une information dans un fichier PDF
bonjour,
le retour de
Code:
1 2
| import sys
print sys.stdout.encoding |
est None