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 :

fragmentation fichier word


Sujet :

Python

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 27
    Points : 16
    Points
    16
    Par défaut fragmentation fichier word
    Après vous avoir embêté avec les dictionnaires, j'ai besoin de vos conseils pour fragmenter un gros fichier word qui est trop lourd pour être manipuler tel quel.

    J'aimerai créer un fichier toutes les 2 ou 3 pages du document original.
    J'ai déjà travaillé un peu les fichiers excel sous python mais je ne sais pas manipuler les documents word, et notamment repérer les pages.

    merci

  2. #2
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Points : 1 658
    Points
    1 658
    Par défaut
    Ça va être coton.

    Lance le code suivant sur un fichier word et tu vas voir le bazar.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    with open('fichier.doc','rb') as f:
        li = f.readlines()
    print '\n'.join(map(repr,li))

    Quand je lance ça sur un fichier .doc contenant ce qui suit

    a la croisee
    des chemins bla bla
    que ? faratriboule perdu au milieu
    .......................................................samoan escalier to heavens


    ça me sort

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    '{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fswiss\\fcharset0 Arial;}}\r\n'
    '\\viewkind4\\uc1\\pard\\f0\\fs20 a la croisee\\par\r\n'
    'des chemins \\b bla\\b0  bla\\par\r\n'
    'que ? faratriboule\\i  perdu \\i0 au milieu\\par\r\n'
    '\\pard\\qc samoan escalier to heavens \\par\r\n'
    '}\r\n'
    '\x00'

    il y a des tas de balises sous-jacentes. Il faut analyser pour trouver celles qui commandent un passage à la page suivante.

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 27
    Points : 16
    Points
    16
    Par défaut
    ah oui effectivement ! ...encore pire avec un doc créée par MSWORD 2007 en mode de compatibilité !

    je devrais peut être plutôt chercher du coté d'une macro VBA non ?

    merci

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 105
    Points : 67
    Points
    67
    Par défaut
    Bonsoir,

    Dur, dur de passer derrière un "monument" (eyquem )...
    Une idée qui me vient comme ça : si ton document word ne contient pas de mise en page trop élaborée, l'ouverture dudit fichier via swriter d'OpenOffice, puis son enregistrement au format .odt fera peut-être l'affaire...
    Ca ne coûte rien d'essayer...
    Pourquoi ? Si je ne m'abuse les fichiers .odt sont des fichiers .xml zippés...
    Pour s'en assurer, prendre un fichier .odt, changer l'extension en .zip, puis l'ouvrir avec un dézippeur quelconque (7zip, Izarc sont libres et gratuits).
    Et Python est équipé pour bidouiller les fichiers .xml...

    @+

  5. #5
    Membre à l'essai
    Inscrit en
    Août 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 27
    Points : 16
    Points
    16
    Par défaut
    bein le probleme c'est que ce doc est assez complexe ie avec du texte, des images, des graphs, des cadres, styles...

    Je crois que ca va etre super complexe avec python. Meme en vb je n'y arrive pas. J'ai pu trouvé quelques bouts de code qui fonctionnent mais seulement sur du texte simple alors...

    merci quand meme

  6. #6
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Je crois qu'avec le module win32com, on peut agir sur Word avec un script Python, mais je ne sais pas m'en servir. On peut par exemple injecter du texte dans un document .doc par l'intermédiaire de Word (il faut que word soit présent).

    Tyrtamos
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  7. #7
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 817
    Points : 7 110
    Points
    7 110
    Par défaut
    Je crois qu'avec le module win32com, on peut agir sur Word avec un script Python, mais je ne sais pas m'en servir
    Oui on peut, mais le principe est de transformer ton fichier doc en fichier csv afin de le modifier et de le retransformer en doc.

    Faut voir ce que ça donne mais si la mise en page est complexe, je crains le pire.
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  8. #8
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Non, je ne crois pas que la conversion en csv soit nécessaire. Le package des pywin-win32 permet à Python d'attaquer directement les api des applications Windows, y compris de Windows lui-même.

    On installe à partir d'ici: http://python.net/crew/skippy/. A partir de l'IDE 'PythonWin', on accède à la doc (en anglais).

    Mais c'est très compliqué...

    Une autre idée: tu n'as pas dit si les pages extraites devaient absolument être en .doc modifiable. Si tu voulais simplement avoir une image présentable, tu pourrais faire ceci (que j'ai déjà utilisé):

    1- convertir le .doc en .pdf avec pdfcreator

    2- utiliser pdfsam ('pdf split and merge') pour éclater le .pdf en pages, et faire les regroupements de pages qui te conviennent.

    Il est possible qu'il existe une conversion de .pdf à .doc, mais je n'en connais pas.

    Tyrtamos

    [edit:] les convertisseurs .pdf => .doc existent (http://www.google.fr/#hl=fr&source=h...18dee58a9fc896). Il y en a même beaucoup. Certains sont gratuits, d'autres payants. Il y en a même en ligne!
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

Discussions similaires

  1. [WD-2003] Fragmenter fichier word
    Par chh2008 dans le forum VBA Word
    Réponses: 3
    Dernier message: 20/05/2009, 01h34
  2. Ecriture sur un fichier Word: Pb Ouverture
    Par drinkmilk dans le forum ASP
    Réponses: 2
    Dernier message: 11/06/2004, 09h48
  3. [Struts][Oracle]Upload fichier word dans une base
    Par Maximil ian dans le forum Struts 1
    Réponses: 7
    Dernier message: 10/02/2004, 15h52
  4. Comparaison de fichiers Word
    Par Zelphalya dans le forum Langage
    Réponses: 5
    Dernier message: 20/10/2003, 15h15
  5. [] Convertir un fichier word en pdf
    Par SpaceFrog dans le forum VBA Word
    Réponses: 7
    Dernier message: 06/12/2002, 15h27

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