Sauvegarde fichier
Résolu
remousse
Messages postés
299
Date d'inscription
Statut
Membre
Dernière intervention
-
remousse Messages postés 299 Date d'inscription Statut Membre Dernière intervention -
remousse Messages postés 299 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'aimerai pouvoir sauvegarder un document au format Word dans un script perl.
Cependant je me retrouve face à cette erreur :
Voici mon code :
Par avance merci.
J'aimerai pouvoir sauvegarder un document au format Word dans un script perl.
Cependant je me retrouve face à cette erreur :
Bareword "wdFormatDocument" not allowed while "strict subs" in use at C:\doc.pl line 59. Execution of C:\doc.pl aborted due to compilation errors.
Voici mon code :
my $word = Win32::OLE->GetActiveObject('Word.Application') || Win32::OLE->new('Word.Application','Quit') or die Win32::OLE->LastError(); my $document = $word->Documents->Open("$Path/$FileFound") or die Win32::OLE->LastError(); # $word->PageSetup->{Orientation} = wdOrientLandscape; $word->ActiveDocument->SaveAs(FileName => "$Path/bis$FileFound", FileFormat => wdFormatDocument);
Par avance merci.
A voir également:
- Bareword
- Fichier bin - Guide
- Fichier epub - Guide
- Logiciel de sauvegarde gratuit - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
3 réponses
Salut remousse,
Tu cherches visiblement à passer un hash à SaveAs.
Essaye donc en ajoutant des accolades, ainsi :
$word->ActiveDocument->SaveAs( { FileName => "$Path/bis$FileFound", FileFormat => wdFormatDocument } );
Dal
Tu cherches visiblement à passer un hash à SaveAs.
Essaye donc en ajoutant des accolades, ainsi :
$word->ActiveDocument->SaveAs( { FileName => "$Path/bis$FileFound", FileFormat => wdFormatDocument } );
Dal
Même problème avec les accolades.
J'ai essayé de passer wdFormatDocument avec son équivalent numérique, à savoir 0 et cela fonctionne parfaitement.
Merci de ton aide.
J'ai essayé de passer wdFormatDocument avec son équivalent numérique, à savoir 0 et cela fonctionne parfaitement.
Merci de ton aide.
Cependant j'ai un nouveau problème.
J'ai plusieurs fichier word que je dois manipuler et lorsque je les ouvre à la main on me demande le format de conversion, qui dans mon cas est MS-DOS.
Or je ne trouve pas cette option en Perl. Existe-t-elle ?
Merci.
J'ai plusieurs fichier word que je dois manipuler et lorsque je les ouvre à la main on me demande le format de conversion, qui dans mon cas est MS-DOS.
Or je ne trouve pas cette option en Perl. Existe-t-elle ?
Merci.
Win32::OLE est juste un module CPAN permettant d'accéder à l'interface OLE.
Quant à savoir comment on pilote chaque application Windows disposant d'une telle interface, il faut se référer à la documentation de l'application en question, et à la bonne version.
Dans ton cas, cela devrait se trouver là dedans, du moins pour MS Word issu d'Office 2013 :
https://docs.microsoft.com/en-us/office/vba/api/Word.WdSaveFormat
Dal
Quant à savoir comment on pilote chaque application Windows disposant d'une telle interface, il faut se référer à la documentation de l'application en question, et à la bonne version.
Dans ton cas, cela devrait se trouver là dedans, du moins pour MS Word issu d'Office 2013 :
https://docs.microsoft.com/en-us/office/vba/api/Word.WdSaveFormat
wdFormatDOSText 4 Microsoft DOS text format. wdFormatDOSTextLineBreaks 5 Microsoft DOS text with line breaks preserved.
Dal