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

Modules Perl Discussion :

Word et Perl


Sujet :

Modules Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut Word et Perl
    Salut amis perléens,
    Je voudrais savoir comment creer et/ou parser un fichier word en Perl. De préférence, si vous avez un exemple de script simple ou une url, je suis prenant.
    J'ai entendu qu'il y avait le module win32::OLE, mais en lisant la doc du CPAN, je ne comprends rien, et c'est embétant. Néanmoins, j'ai trouvé un site parlant brievement de Word et Perl, mais ça m'aide pas plus.
    A vous le clavier pour me faire part de vos aides et scripts.
    Merci !!!

  2. #2
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    A vrai dire si après avoir lu les deux documents que tu nous cites tu ne comprends toujours rien, il va nous être difficile de t'aider... Le format doc est trop compliqué, donc le plus simple c'est d'utiliser Word lui même pour faire ce qu'on veut faire d'un document. Pour ça il faut bien sûr être sous Windows, et on utilise OLE pour diriger Word, à l'aide du module Win32::OLE. Après, il faut connaître les méthodes OLE de Word : pour avoir une liste, utilise le "OLE-Browser" distribué avec ActivePerl.

    --
    Jedaï

  3. #3
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    merci jedai,
    je suis d'accord avec toi qu'il est preferable d'utiliser word directement. Ce qui est mon cas car je suis sous windows. Mais bon, curieux que je suis, je me suis dit pourquoi perl et word (comme excel et perl utile pour certains outils bioinfo, info).
    Sinon, y a peut etre des pesonnes ayant des exemples simples qui fonctionne!!

  4. #4
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Pourquoi, ceux que tu as déjà ne fonctionne pas chez toi ?

    --
    Jedaï

  5. #5
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    j'ai juste testé le premier et il m'ouvre un fichier word avec les 3 lignes, et des message d'erreurs .
    mais bon je prefere comprendre le script .
    voici le script :
    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
     
    use warnings;
    use strict;
     
    use Win32::OLE;
     
    my $word = CreateObject Win32::OLE 'Word.Application' or die $!;
    $word->{'Visible'} = 1;
     
    my $document = $word->Documents->Add;
     
    my $selection = $word->Selection;
     
    $selection -> TypeText("Hello World");
    $selection -> TypeParagraph;
    $selection -> TypeText("How do you feel today");
    $selection -> TypeParagraph;
     
    $selection -> TypeText("Some header");
    $selection -> {'Style'} = "Heading 1";
     
    $selection -> TypeParagraph;
     
    my $heading_1 = $document->Styles("Heading 1");
    my $heading_1_font = $heading_1 -> Font;
     
    $heading_1_font -> {Name} = "Bookmann";
    $heading_1_font -> {Size} = 20;
    $heading_1_font -> {Bold} =  1;
    et les messages d'erreurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    OLE exception from "Microsoft Word":
     
    L'élément dont le nom est spécifié n'existe pas.
     
    Win32::OLE(0.1403) error 0x80020009: "Une exception s'est produite"
        in PROPERTYPUT "Style" at C:\DOCUMENTS AND SETTINGS\PROPRIÉTAIRE\MES DOCUMENTS\APPRENDRE_PROGAMMATION\PERL\word.pl line 19
    OLE exception from "Microsoft Word":
     
    Le membre de la collection requis n'existe pas.
     
    Win32::OLE(0.1403) error 0x800a1735
        in METHOD/PROPERTYGET "Styles" at C:\DOCUMENTS AND SETTINGS\PROPRIÉTAIRE\MES DOCUMENTS\APPRENDRE_PROGAMMATION\PERL\word.pl line 23
    Can't call method "Font" on an undefined value at C:\DOCUMENTS AND SETTINGS\PROPRIÉTAIRE\MES DOCUMENTS\APPRENDRE_PROGAMMATION\PERL\word.pl line 24.

  6. #6
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Tout le début marche apparemment. Et je ne trouve pas qu'il soit difficile à comprendre ! (Taper texte, taper fin du paragraphe, .... )
    Après, il y a visiblement une discordance entre sa version de Word et la tienne, je te le répète, le OLE-Browser est là pour ça, te permettre de trouver les méthodes dont tu dois te servir.
    Un autre exemple d'emploi pas à pas de OLE et du OLE-Browser :
    http://www.perl.com/pub/a/2005/04/21/win32ole.html

    Sinon lire les cours et tutoriels pour apprendre Perl : http://perl.developpez.com/cours/

    --
    Jedaï

  7. #7
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Citation Envoyé par Jedai
    Tout le début marche apparemment. Et je ne trouve pas qu'il soit difficile à comprendre ! (Taper texte, taper fin du paragraphe, .... )
    J'avais compris qd même 8) , mais c'était surtout savoir lesdifferente methodes existants.

    Citation Envoyé par Jedai
    Après, il y a visiblement une discordance entre sa version de Word et la tienne, je te le répète, le OLE-Browser est là pour ça, te permettre de trouver les méthodes dont tu dois te servir.
    Un autre exemple d'emploi pas à pas de OLE et du OLE-Browser :
    http://www.perl.com/pub/a/2005/04/21/win32ole.html
    Ok, merci. Sur le lien que tu m'as donné, j'arrive pas à trouver les methodes existantes.

  8. #8
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 5
    Par défaut
    Salut,

    Je viens de tester ton code, en effet une alerte se fait au niveau du programme.

    Remarque : Le programme a été fait pour du Word en anglais

    Je peux pas te dire pourquoi ni comment mais pour résoudre le problème, il suffit de remplacer dans ton code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $selection -> TypeText("Some header"); 
    $selection -> {'Style'} = "[b]Heading 1[/b]"; 
     
    $selection -> TypeParagraph; 
     
    my $heading_1 = $document->Styles("[b]Heading 1[/b]"); 
    my $heading_1_font = $heading_1 -> Font;
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $selection -> TypeText("Some header"); 
    $selection -> {'Style'} = "[b]Titre 1[/b]"; 
     
    $selection -> TypeParagraph; 
     
    my $heading_1 = $document->Styles("[b]Titre 1[/b]"); 
    my $heading_1_font = $heading_1 -> Font;
    et ça fonctionne !!!

  9. #9
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    j'ai toujours le meme message d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    OLE exception from "Microsoft Word":
     
    L'élément dont le nom est spécifié n'existe pas.
     
    Win32::OLE(0.1403) error 0x80020009: "Une exception s'est produite"
        in PROPERTYPUT "Style" at C:\DOCUMENTS AND SETTINGS\PROPRIÉTAIRE\MES DOCUMENTS\APPRENDRE_PROGAMMATION\PERL\word.pl line 19
    OLE exception from "Microsoft Word":
     
    Le membre de la collection requis n'existe pas.
     
    Win32::OLE(0.1403) error 0x800a1735
        in METHOD/PROPERTYGET "Styles" at C:\DOCUMENTS AND SETTINGS\PROPRIÉTAIRE\MES DOCUMENTS\APPRENDRE_PROGAMMATION\PERL\word.pl line 23
    Can't call method "Font" on an undefined value at C:\DOCUMENTS AND SETTINGS\PROPRIÉTAIRE\MES DOCUMENTS\APPRENDRE_PROGAMMATION\PERL\word.pl line 24.
    mais le fichier est bien creé et est correct. Mais bon le souci n'est pas là. Sachant que c'est faisable, j'aimerais trouver une doc qui donne les differentes methodes possible utilisable
    ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    -> TypeText
    -> TypeParagraph
    .....
    ....
    histoire de faire des trucs sympa. Jedai m'a parlé de OLE-Browser mais sur le lien je ne trouve rien du tout. Help!

  10. #10
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    bon je vien de trouver un lien, c'est ni en francais, ni en anglais, mais bon, je vais me debrouiller avec les codes pour avancer dans mes comprehension de word et perl

  11. #11
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    histoire de faire des trucs sympa. Jedai m'a parlé de OLE-Browser mais sur le lien je ne trouve rien du tout. Help!
    Tu relis mes messages, et tu trouves :
    utilise le "OLE-Browser" distribué avec ActivePerl
    C'est dans le menu Démarrer > ActivePerl, et ça ne marche que sous internet Explorer parce qu'il y a du ActiveX dedans je crois.

    --
    Jedaï

  12. #12
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    je viens de faire ce que tu m'as dit jedai.
    Menu demarer -> activePerl -> Ole Browser
    Je suis sous internet explorer et ça ne marche pas, j'ai une page blanche separé en frame .

  13. #13
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    COMMENT VISUALISER OLE BROWSER? car j'ai une page blanche avec internet explorer

  14. #14
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Effectivement, après vérification, j'ai le même problème, en fait Perlscript ne marche plus du tout dans Internet Explorer : pourrais-tu essayer les exemples Perlscripts sous IE (dans le répertoire Perl/eg/... ou via la documentation) et me dire ce que ça donne chez toi ? Je pense que ça doit venir d'un problème avec SP2 et ses derniers patchs, ou d'une mise à jour d'ActivePerl qui a cassé Perlscript (jusqu'à récemment ça fonctionnait chez moi). J'ai posé la question sur la mailing list d'ActivePerl, avec un peu de chance on aura une réponse rapidement.

    --
    Jedaï

  15. #15
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Mes perlscripts fonctionnent. J'arrive bien à visualiser mes pages plcalc.htm, plwelcome.htm, plmouse.htm etc

  16. #16
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Oui sans doute, mais Perlscript marche-t-il ? Par exemple dans plwelcome.htm y a-t-il bien la ligne "Perlscript say : Hello World !" après la ligne "VBScript say : Hello World !" ?

    (NB : J'arrive pas à obtenir de réponse, tu peux essayer de te rabattre sur Visual Studio qui dispose d'un équivalent au OLE-Browser)

    --
    Jedaï

  17. #17
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Citation Envoyé par Jedai
    Par exemple dans plwelcome.htm y a-t-il bien la ligne "Perlscript say : Hello World !" après la ligne "VBScript say : Hello World !" ?
    non j'ai pas cette ligne dans le fichier plwelcome.htm
    voici ce que j'ai sur ma page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Good afternoon! Welcome to the world of PerlScript.
    Just in case you were wondering, it's
    3:55:11 PM, Saturday, August 13, 2005

  18. #18
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Quelle est ta version de ActivePerl ? Ta version de Windows (quel SP ?) ?
    J'ai réussi à faire marcher mon PerlScript en mettant tous les paramètres de sécurité au plus bas... Et mon OLE-Browser marche, donc tu as sûrement un problème de version d'ActivePerl : si tu n'as pas envie de mettre à jour, les solutions sont détaillées sur cette page :
    http://bugs.activestate.com/show_bug.cgi?id=34875

    Bonne continuation !

    --
    Jedaï

  19. #19
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Tu peux aussi utiliser Oleview.exe qui est un outil gratuitement mis à disposition par Microsoft qui accomplit à peu près la même tâche que OLE-Browser en (probablement) mieux et plus clair (si tant est que cela puisse être clair... ).

    --
    Jedaï

Discussions similaires

  1. Récupérer Style Caractere de Word avec Perl
    Par fafaperl dans le forum Modules
    Réponses: 0
    Dernier message: 25/02/2009, 22h37
  2. [langage] Comparer Perl avec d'autres langages comme C ?
    Par Anonymous dans le forum Langage
    Réponses: 3
    Dernier message: 10/08/2002, 23h52
  3. [langage] Inclure de perl en c !!!
    Par ryo00 dans le forum Langage
    Réponses: 2
    Dernier message: 30/05/2002, 10h03
  4. [réseaux] Bench en Perl pour avoir le débit entre 2 pc
    Par Frich dans le forum Programmation et administration système
    Réponses: 4
    Dernier message: 22/05/2002, 17h22
  5. [web] Cherche un conseil pour un livre perl-tk
    Par Anonymous dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 29/04/2002, 15h35

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