IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

reconnaissance caractères dans fichiers pdf, dvi


Sujet :

Python

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 147
    Points : 64
    Points
    64
    Par défaut reconnaissance caractères dans fichiers pdf, dvi
    Bonjour,
    Je suis toujours débutant...
    Pour rechercher des fichiers par leur contenu, j'ai écrit un bout de code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            fichiertest="c:\gabriel\essai1.txt"
            # fichiertest="c:\gabriel\essai1.pdf"
            # fichiertest="c:\gabriel\essai1.dvi"
            f=open(fichiertest,"r")
            t=f.read()
            f.close()
    code qui fonctionne bien sur les fichiers du type *.tex, *.txt mais qui ne marche pas du tout avec les fichiers .pdf ou encore .dvi
    Y-a-t-il possibilité de stocker dans une chaine ou dans une liste les textes écrits dans les fichiers pdf et dvi?
    Merci pour vos réponses.
    Gabriel

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,
    Quelle est la version de Python que vous utilisez?
    "Ca ne marche pas" n'aide pas trop à savoir l'erreur que vous rencontrez.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 147
    Points : 64
    Points
    64
    Par défaut
    Bonsoir,
    J'utilise sous windows XP le langage python 3.1 (télécharger récemment).

    J'ai de nouveau testé le petit programme que voici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    import glob 
    import os
    #f=open("c:\gabriel\prepa\cours\exo2010\ex1.tex","r") #Sans pb
    f=open("c:\gabriel\joux\essai.pdf","r")
    #f=open("c:\gabriel\joux\essai.tex","r") #sans pb
    t=f.read()
    f.close()
    print(t)
    L'erreur affichée est:
    Traceback (most recent call last):
    File "C:/Gabriel/temporaire/essai02.py", line 7, in <module>
    t=f.read()
    File "C:\Python31\lib\encodings\cp1252.py", line 23, in decode
    return codecs.charmap_decode(input,self.errors,decoding_table)[0]
    UnicodeDecodeError: 'charmap' codec can't decode byte 0x8f in position 364: character maps to <undefined>
    J'ai remarqué aussi sur un autre fichier tex (très long) qu'il y avait blocage.

    Peut être que t=f.read() ne convient pas sur des fichiers tros gros et des fichiers qui ne sont pas type txt.

    Je viens d'essayer sur des fichiers .doc est j'ai le même type de message d'erreur...

    Merci pour votre aide.

    Gabriel

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,
    Par défaut, Python3 essaie de tranformer les bytes contenus dans un fichier texte en Unicode. Lorsque le contenu du fichier est autre que ASCII, il utilisera l'encoding que vous lui précisez (ou le défaut).
    Si vous voulez lire le fichier comme une suite d'octet (sans interpréter le contenu), il faut faire open(fichier, "r+b").
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 147
    Points : 64
    Points
    64
    Par défaut
    Bonsoir,
    Effectivement, en rajoutant "b", et "\\" pour le séparateur des racines, la fonction open() fonctionne. J'ai donc tapé ce programme afin de voir ce que ça donne:
    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
    21
    22
    23
    24
    25
    26
    27
     
    import glob 
    import os
    f=open("c:\\gabriel\\prepa\\hec10\\devoir2010\\DL01.pdf","r"+"b")
    t=f.readline()
    print(t)
    t=f.readline()
    print(t)
    t=f.readline()
    print(t)
    t=f.readline()
    print(t)
    t=f.readline()
    print(t)
    t=f.readline()
    print(t)
    t=f.readline()
    print(t)
    t=f.readline()
    print(t)
    t=f.readline()
    print(t)
    t=f.readline()
    print(t)
    t=f.readline()
    print(t)
    f.close()
    et voilà le résultat:
    b'%PDF-1.4\n'
    b'5 0 obj\n'
    b'<< /S /GoTo /D [6 0 R /Fit ] >>\n'
    b'endobj\n'
    b'8 0 obj <<\n'
    b'/Length 5916 \n'
    b'/Filter /FlateDecode\n'
    b'>>\n'
    b'stream\n'
    b'x\xda\xdd=\xd9\x8e#\xc7\x91\xef\xf3\x15|\x13\x1br\xa5\xf3>\xec\x95\x00\xd9\x96\x8c5d\xcb\x96\xe6a\x00\x8f\x1f\xd8$g\xccEws\xc4n\xce\xce\xfe\xfdF\xe4Q\x95Y\x95U,v\xd7\x08\xda\x85\x00\r\xc9.FFF\xc6}$\xd9\x8a\xc2\x7fl%\x0cqV\xae\x94\xb2\xc4P\xb7\xda\xde\xbf\xa2\xab\xf7\xf0\x97?\xbfb\xf1\x89&>\xd2d\xcf\xfc\xe1\xf5\xab\xdf~\xa7\xe5\x8aQ\xe2\xe0\x93\xd7\xefZ8\x9a\x13c\xc4\xea\xf5\xee\x9f\xeb?\xed?\xde\x08\xbe>\x1en\x1a\xb6>\xdd4\xc2\xf2\xf5\xf7\xfe\xcd\xed\r|\xb0\xc7O\xe4\xfa\x01^\xbf\xa5T\xe3\xe7\xec\xe6_\xaf\xff\x02\x80U\x0eX\tb\x9c\x02T\x10\xe6O\xc7\xbb\xf3\x93\x87q\x84\xef=\xc4\xe7sD8\x15\x84\xc2\xcb\xf0\xfc7a\x91\x13<\xbc\xc7o\xe1j\xbb\xb0\xb4X\x7f\x80\x7f\x00\xbf\xf3)\xbc\xbd\x8b\x18\xddoN\xbbCxi\xc2_\x1e\xd3\xd7?\xc0\x8b\'|\xb1\xbf\xc7\xad\xdd\x02$\xc0\xe0\xd5\xb7\xaf[j\xb5\xf4\x84\x7f\x19GZ\xfd\xfc\xea\x9f\xff\xa2\xab\x1d\xd0\xf5/\xaf(l\xc5\xac\xfe\x1b^S"\x9c[\xdd\xbf2J\x13\xab\xe2\xdb\xbbW?\xbd\xfaG\x0b*\xfc\t\xde\xf9/\xd5N&=\xd10K\xa8\xd4\xc3\xd5\x84\xb3q5\xe6W\x13F\x10)e|_.\xd7\x9d\xb3\xa4Dk\xd1\x9e3g\x95s\x16\x94H\xc6<\x8d\xbf\xfd\xb4?m\x0f@\x99-\x12P\x9b\xf5C<O #\xe1\x88\x98\xcb`P@X\x10k\x8c\xff\xfa\xdfo\xb8]\x1f\x1f\x8f\x0f\x8f\xf1\xd1\xe2\xf45\x11B\xc6\xc3|s\xd3pc\xd7_\x85\xe7xq\xea\xc0v\xdc\xc4\xe7\xf6\xf1\x01\xb5\x02d\r\xfeY\x11j\xdcJ\x10\xa7\xac\x7f\xe2S\x05+E80^\xd3=D`7B\xac\xbf\xb9;\x9e\xaa\xa8)\xa2\x80\xe6aI]\xc1I\x11\xa9d\x0f%\x9e\xa3d3\x8c\xf8\x00gIx\xbb\xf3O\x95\xf5\r\xd1\xd6\xe5\xf8~\t\xe4\xe1\x1cxv\x88\n'
    b'\x032j9E\x1e;\xa4\x0e\xd0sb58cZ\xc1*\xbe\n'
    Je suppose que <<b>> désigne que le code est binaire (comme le <<u>> en unicode si j'ai bien compris la FAQ). Comme je souhaite pouvoir lire ce qui est écrit, existe-t-il une commande qui permettrait de transformer un codage binaire en un format texte? Ou peut une autre commande que readline()?

    Merci pour vos réponses.

    Gabriel

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 147
    Points : 64
    Points
    64
    Par défaut
    Ou alors, existe-t-il une commande qui permet de passer d'une chaine <<texte>> en une chaine binaire?

    Merci

    Gabriel

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 328
    Points : 240
    Points
    240
    Par défaut
    Bonjour,

    Tu trouveras ici ta réponse : http://www.developpez.net/forums/d28...xtraire-texte/

    A +

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut


    Effectivement, en rajoutant "b", et "\\" pour le séparateur des racines, la fonction open() fonctionne. J'ai donc tapé ce programme afin de voir ce que ça donne:
    Hmmm, çà c'est un peu "beurk":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    f=open("c:\\gabriel\\prepa\\hec10\\devoir2010\\DL01.pdf","r"+"b")
    \\ permet de "quoter" le slash et de ne pas interprêter le caractère suivant. Imaginez un string en C avec des \ à l'intérieur.
    Pour dire à Python de ne pas interprêter les \, il "suffit":
    1. de mettre r"c:\gabriel\prepa\hec10\devoir2010\DL01.pdf"
    2. ou de l'écrire à la UNIX: "c:/gabriel/prepa/hec10/devoir2010/DL01.pdf"


    Ou alors, existe-t-il une commande qui permet de passer d'une chaine <<texte>> en une chaine binaire?
    C'est un peu pareil que le r: on dit à Python de ne pas "interprêter", i.e. de lire une suite d'octets sans chercher à les transformer en Unicode.
    Si vous voulez transformer le texte du PDF en Unicode, il faut savoir lire le contenu du PDF pour savoir comment il est encodé... ou utiliser une bibliothèque PDF qui va bien.
    Ce serait la même chose si vous lisiez du XML ou n'importe quoi qui soit autre chose qu'ASCII.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 147
    Points : 64
    Points
    64
    Par défaut
    OK, j'ai compris la différence entre \\ et \.

    Pour ce qui est du code binaire, si j'ai bien compris le <<décodage>> dépendra de la nature du fichier (pdf xml dvi doc,...)

    Je vais voir sur le lien proposé plus haut...mais je ne suis pas sûr de tout comprendre.

    Mes fichiers tex et txt ne posent pas problème (lorsque je les ouvre en mode normal par contre en binaire, c'est pas jolie...). Je souhaiterais pouvoir décoder des fichiers .doc (est-ce difficile à mettre en place?), pdf (construits en règle général avec pdflatex) et éventuellement les dvi.

    Je vais essayer de comprendre tout çà.

    Merci pour les réponses.

    Gabriel

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 147
    Points : 64
    Points
    64
    Par défaut
    Avant de poursuivre les recherches... vous confirmez bien que les documents .doc ne peuvent être lus en code Ascii?

    Merci

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 147
    Points : 64
    Points
    64
    Par défaut
    Oula, ça se complique pour moi...

    J'ai lu les liens. Par exemple si je souhaite <<installer>> pdfminer, il me propose un zip <<pdfminer-20101017.tar.gz (md5)>> je suppose qu'il faut le télécharger et le décompresser dans un sous répertoire propre à Python. Sous le répertoire <<lib>>?

    Ensuite comment fait-on pour appeler les commandes liées aux outils proposés par le package?

    En espérant que mes questions de débutant soient suffisamment claires.

    Merci

    Gabriel

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 147
    Points : 64
    Points
    64
    Par défaut Pb d'installation des modules
    Bonsoir,
    Je suis sous windows XP
    J'ai essayé d'installer pyPdf.
    J'ai téléchargé le package. Je l'ai décompressé sous la racine:
    c:\python31\lib\site-packages
    Puis avec cmd, j'ai fait:
    setup --build
    setup --install
    J'ai copié l'exemple proposé (dans readme) je l'ai mis dans mon code
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    import glob 
    import os
    from pyPdf import PdfFileWriter, PdfFileReader
     
    output = PdfFileWriter()
    input1 = PdfFileReader(file("c:\gabriel\prepa\hec10\devoir2010\DL01.pdf", "rb"))
     
    # add page 1 from input1 to output document, unchanged
    output.addPage(input1.getPage(0))
     
        # add page 2 from input1, but rotated clockwise 90 degrees
    output.addPage(input1.getPage(1).rotateClockwise(90))
     
        # add page 3 from input1, rotated the other way:
    output.addPage(input1.getPage(2).rotateCounterClockwise(90))
        # alt: output.addPage(input1.getPage(2).rotateClockwise(270))
     
        # add page 4 from input1, but first add a watermark from another pdf:
    page4 = input1.getPage(3)
    watermark = PdfFileReader(file("watermark.pdf", "rb"))
    page4.mergePage(watermark.getPage(0))
     
        # add page 5 from input1, but crop it to half size:
    page5 = input1.getPage(4)
    page5.mediaBox.upperRight = (
    page5.mediaBox.getUpperRight_x() / 2,
    page5.mediaBox.getUpperRight_y() / 2
    )
    output.addPage(page5)
     
        # print how many pages input1 has:
    #print ("document1.pdf has %s pages.") % input1.getNumPages())
     
        # finally, write "output" to document-output.pdf
    outputStream = file("document-output.pdf", "wb")
    output.write(outputStream)
    et il bloque tout de suite... en m'écrivant le message:
    Traceback (most recent call last):
    File "C:\Gabriel\temporaire\essai02.py", line 3, in <module>
    from pyPdf import PdfFileWriter, PdfFileReader
    File "C:\Python31\lib\site-packages\pyPdf\__init__.py", line 1, in <module>
    from pdf import PdfFileReader, PdfFileWriter
    ImportError: No module named pdf
    J'ai essayé d'autres manip sans succès.
    Peut être que j'implante mal le module?
    ou alors pyPdf n'est pas compatible avec python31?

    Merci pour vos réponses

    Gabriel

  13. #13
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut
    à l'URL mentionne une mouture compatible Python 3.
    Laquelle avez vous récupéré?
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 147
    Points : 64
    Points
    64
    Par défaut
    Bonsoir,

    J'ai essayé les 3 package.

    Lorsque je fais avec <<pyPdf-1.12.win32.exe>>, l'installation se fait automatiquement sous la racine c:\python31\lib\site-packages sans pb apparent (mais avec pb puisque j'ai le même message que spécifié en haut).

    Lorsque je fais avec les deux autres, je lance setup build sans pb par contre avec setup install, il est mentionné 4 erreurs de syntaxe (je ne sais pas récupérer le texte qui apparait dans une console) qui portent sur des <<,>> et des <<">>.

    Bon, je sèche.

    Gabriel

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 147
    Points : 64
    Points
    64
    Par défaut
    Bonjour,

    Je reviens à la charge...

    Je souhaite faire des reconnaissances de caractères sur les fichiers pdf (j'ai résolu mon pb avec les fichiers word); donc je me fiche de la mise en forme.

    Lorsqu'on ouvre un fichier pdf non protégé, on peut faire copier puis coller dans un fichier text. Alors la partie <<latine>> du texte est copiée intégralement. A partir de ce fichier text, on peut faire la reconnaissance de caractères. Mais comme je souhaite automatiser cette opération:

    1. Existe-t-il une commande sous Python qui permettrait directement de faire ce copier coller ou bien de reconnaître les caractères <<latin>> (ou je crois trop au père Noël)?

    2. dans le cas négatif, startfile (...pdf) permet d'ouvrir les fichiers. Est-il possible de programmer l'action de tout copier-coller dans un fichier text puis fermer le fichier pdf en question?

    Encore merci de toutes vos réponses et de votre indulgence par rapport à mon incompétence informatique.

    Gabriel

  16. #16
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Jetez un oeil à PDFminer. Ca sait convertir du PDF en HTML ou en texte.
    Et WORD sait lire du HTML.

    - W
    PS: Je ne sais pas si c'est Python 3 compatible.
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 147
    Points : 64
    Points
    64
    Par défaut
    pdfminer n'est pas compatible avec python3...

  18. #18
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par Ruyneau Voir le message
    pdfminer n'est pas compatible avec python3...
    Ben vous installez Python 2.7 'à côté'.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 147
    Points : 64
    Points
    64
    Par défaut
    Oui effectivement, il y a cette solution. Bon OK.
    Merci

    Gabriel

Discussions similaires

  1. [JSP/SERVLET] Moteur de recherche dans fichiers PDF
    Par crewstyle dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 27/04/2007, 16h18
  2. [Borland 6] Supprimer caractère dans fichier
    Par grmi91 dans le forum C++Builder
    Réponses: 1
    Dernier message: 16/04/2007, 16h18
  3. Écriture dans fichier PDF
    Par clairette dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 12/05/2006, 16h52
  4. [FPDF] Recherche chaine caractères dans fichier pdf
    Par licorne dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 28/10/2005, 11h55
  5. chaines de caractères dans fichier .rc ou .res
    Par raggadoll dans le forum C++Builder
    Réponses: 5
    Dernier message: 22/03/2004, 15h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo