# -*- coding: utf-8 -*- # # by Michel Claveau Informatique # http://mclaveau.com # """ 1.37 ajout de insertimage( """ import time from win32com.client import Dispatch GlobalPVersion='1.37' class word(object): GlobalPVersion='1.37' wdReplaceNone=0 wdReplaceOne=1 wdReplaceAll=2 wdFindContinue=1 #pour close/save : wdDoNotSaveChanges=0 wdSaveChanges=-1 wdCharacter=1 wdTableInsertAsRows=11 wdCell=12 wdWord=2 wdLine=5 wdExtend=1 wdAlignLeft=0 wdAlignCenter=1 wdAlignRight=2 def __init__(self, fichier=None, visible=True, exist="NON"): import time self.w=None import win32com.client if exist.upper()=="OUI": try: if fichier is None: self.w=win32com.client.GetObject(Class="Word.Application") else: self.w=win32com.client.GetObject(fichier) except: self.w=win32com.client.Dispatch('Word.Application') else: self.w=win32com.client.Dispatch('Word.Application') time.sleep(0.125) if exist.upper()!="OUI": if fichier is None: self.visible(visible) else: self.open(fichier, visible) def version(self): return self.GlobalPVersion def templist(self, label=None, valeur=None): if label is None: self.templst=[] else: #print label,valeur self.templst.append([label,valeur]) def printoptions(self): self.templist() self.wOptions = self.w.Options self.templist("Brouillon / Draft output: ", self.wOptions.PrintDraft) self.templist("Mettre à jour les champs / Update fields: ", self.wOptions.UpdateFieldsAtPrint) self.templist("Mettre à jour les liaisons / Update links: ", self.wOptions.UpdateLinksAtPrint) self.templist("Redimentionner A4/papier à lettres / Allow A4/Letter paper resizing: ", self.wOptions.MapPaperSize) self.templist("Imprimer en arrière-plan / Background printing: ", self.wOptions.PrintBackground) self.templist("Imprimper PostScript sur texte / Print PostScript over text: ", self.doc.PrintPostScriptOverText) self.templist("Ordre inverse / Reverse print order: ", self.wOptions.PrintReverse) self.templist("Propriétés du document / Document properties: ", self.wOptions.PrintProperties) self.templist("Codes de champ / Field code: ", self.wOptions.PrintFieldCodes) self.templist("Texte masqué / Hidden text: ", self.wOptions.PrintHiddenText) self.templist("Dessins / Drawing objects: ", self.wOptions.PrintDrawingObjects) #self.templist("XML tags: ", self.wOptions.PrintXMLTag) #version 2003+ self.templist("Default tray: ", self.wOptions.DefaultTray) #self.templist("Background colors and images: ", self.wOptions.PrintBackgrounds) #version 2003+ self.templist("Formulaires : imprimer uniquement les données / Print data only for forms: ", self.doc.PrintFormsData) return self.templst def generaloptions(self): self.templist() self.wOptions = self.w.Options self.templist("Pagination: ", self.wOptions.Pagination) self.templist("Blue background, white text: ", self.wOptions.BlueScreen) self.templist("Provide feedback with sound: ", self.wOptions.EnableSound) self.templist("Mail as attachment: ", self.wOptions.SendMailAttach) self.templist("Help for WordPerfect users: ", self.wOptions.WPHelp) self.templist("Allow background open of Web pages: ", self.wOptions.BackgroundOpen) self.templist("Measurement units: ", self.wOptions.MeasurementUnit) #self.templist("Allow starting in Reading Layout: ", self.wOptions.AllowReadingMode) #version 2003+ self.templist("Provide feedback with animation: ", self.wOptions.AnimateScreenMovements) self.templist("Confirm conversion at open: ", self.wOptions.ConfirmConversions) self.templist("Update auotmatic links at open: ", self.wOptions.UpdateLinksAtOpen) self.templist("Navigation keys for WordPerfect users: ", self.wOptions.WPDocNavKeys) self.templist("Automatically create new drawing canvas when inserting AutoShapes: ", self.wOptions.AutoCreateNewDrawings) self.templist("Show pixels for HTML features: ", self.wOptions.AllowPixelUnits) self.templist("Recently used file list: ", self.w.DisplayRecentFiles) self.wFiles = self.w.RecentFiles self.templist("Files in recently used file list: ", self.wFiles.Maximum) return self.templst def u1252(self, chu): try: if type(chu) is unicode: return chu.encode('cp1252','replace') else: return chu except: return repr(chu) def runword(self, fichier=None, visible=True): """lance word """ if self.w is None: import win32com.client self.w=win32com.client.Dispatch('Word.Application') if not fichier is None: self.open(fichier, visible) else: self.visible(visible) def insertscan(self): """Lance la numérisation, pour insertion, d'une image """ if self.w is None: import win32com.client self.w=win32com.client.Dispatch('Word.Application') self.visible(True) self.doc=self.w.WordBasic.InsertImagerScan() def insertimage(self, imagefile="C:\\vodka.jpg"): """insère une image d'un fichier """ if self.w is None: import win32com.client self.w=win32com.client.Dispatch('Word.Application') self.visible(True) sel = self.w.Selection sel.InlineShapes.AddPicture(imagefile,False,True) def sendmail(self): """ Envoie le doc courant comme pièce jointe d'un e-mail cela reste interactif, et l'utilisateur doit saisir les autres paramètres du messages, et valider l'envoi. """ self.w.Application.Options.SendMailAttach = True # or False self.w.ActiveDocument.SendMail() def newdoc(self): """Ouvre un document word """ if self.w is None: import win32com.client self.w=win32com.client.Dispatch('Word.Application') self.visible(True) self.doc=self.w.Documents.Add("Normal",False, 0) def open(self, fichier, visible=True): """Ouvre un document word """ if self.w is None: import win32com.client self.w=win32com.client.Dispatch('Word.Application') self.doc=self.w.Documents.Open(fichier) self.visible(visible) def pxopen(self, fichier, visible=True): """synonyme d' open (pour Paradox, qui bloque sur 'open') """ self.open(fichier, visible) def close(self): """ferme le document, sans sauvegarder, sans demander """ self.w.ActiveDocument.Close(SaveChanges = self.wdDoNotSaveChanges) def pxclose(self): """ferme word """ self.close() def saveas(self, fichier, typ=0): """Appel de 'Enregistrer sous', avec le nom du fichier wdFormatDocument=0 # format Word. Valeur par défaut. wdFormatTemplate=1 # modèle Word wdFormatText=2 # texte sans mise en forme (ANSI) wdFormatTextLineBreaks=3 # texte sans mise en forme wdFormatDOSText=4 # texte sans mise en forme (ANSI) wdFormatDOSTextLineBreaks=5 # texte sans mise en forme, mais avec sauts de ligne. wdFormatRTF=6 # RTF wdFormatUnicodeText=7 # texte_Unicode/texte_Encodé. Paramètre supplémentaire pour l'encodage. wdFormatHTML=8 # HTML wdFormatXMLDocument=12 #DocX (Office-2007 et 2010) """ ext=fichier[-4:] if ext.upper()=="DOCX": typ=12 self.doc.SaveAs(fichier, typ) def savepdf(self, fichier): """ OutputFileName:="L:\essai.pdf", obligatoire ExportFormat:=wdExportFormatPDF, obligatoire OpenAfterExport:=False, OptimizeFor:= wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, BitmapMissingFonts:=True, UseISO19005_1:=False """ #ExportFormat wdExportFormatPDF = 17 #Exporte le document au format PDF. wdExportFormatXPS = 18 #Exporte le document au format XPS (XML Paper Specification). #OptimizeFor wdExportOptimizeForOnScreen = 1 #Exporte le document pour un affichage à l'écran, autrement dit avec une qualité moindre et une taille de fichier minimale. wdExportOptimizeForPrint = 0 #Exporte le document pour l'impression, avec une qualité plus élevée et un fichier plus volumineux. #Range wdExportAllDocument = 0 #Exporte le document entier. wdExportCurrentPage = 2 #Exporte la page active. wdExportFromTo = 3 #Exporte le contenu d'une plage définie par les positions de départ et de fin. wdExportSelection = 1 #Exporte le contenu de la sélection active. #Item wdExportDocumentContent = 0 #Exporte le document sans balises. wdExportDocumentWithMarkup = 7 #Exporte le document avec des balises. #CreateBookmarks wdExportCreateHeadingBookmarks = 1 #Crée un signet dans le document exporté pour chaque titre de Microsoft Word, ce qui concerne uniquement les titres du document principal et les zones de texte en dehors des en-têtes, des pieds de page, des notes de fin, des notes de bas de page ou des commentaires. wdExportCreateNoBookmarks = 0 #Ne crée pas de signets dans le document exporté. wdExportCreateWordBookmarks = 2 #Crée un signet dans le document exporté pour chaque signet Word, ce qui concerne tous les signets sauf ceux qui se trouvent dans les en-têtes et les pieds de page. self.doc.ExportAsFixedFormat(fichier, wdExportFormatPDF) def savexps(self, fichier): #ExportFormat wdExportFormatPDF = 17 #Exporte le document au format PDF. wdExportFormatXPS = 18 #Exporte le document au format XPS (XML Paper Specification). self.doc.ExportAsFixedFormat(fichier, wdExportFormatXPS) def quit(self): """Ferme word """ if self.w: self.w.Quit() def quitSaveChange(self): """Ferme word, en sauvant les changements """ if self.w: self.w.Quit(self.wdSaveChanges) def quitCancel(self): """Ferme word, SANS sauver les changements """ if self.w: self.w.Quit(self.wdDoNotSaveChanges) def visible(self, par=True): """Rend Word visible (True), ou invisible (False) ; True par défaut Note : c'est plus rapide en invisible """ if par: self.w.Visible=True else: self.w.Visible=False def hide(self): """Cache Word """ self.w.visible=False def wprint(self, Copies=1): """Imprime le document """ self.doc.PrintOut(Copies=1) def wprintdetail(self, Copies=1): """Imprime le document """ wdPrintAllDocument="" wdPrintDocumentContent="" wdPrintAllPages="" self.doc.PrintOut(Copies=1) """ Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= wdPrintDocumentContent, Copies:=5, Pages:="", PageType:=wdPrintAllPages, ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, PrintZoomPaperHeight:=0 """ def preview(self): """Pré-visualise le document """ self.doc.PrintPreview() def previewclose(self): """Ferme la prévisualisation du document """ self.doc.ClosePrintPreview() def text(self, txt): """Remplace le texte sélectionné, par le paramètre """ #newchaine=txt.replace('\n','\r') #self.position.Text = newchaine self.position.Text = txt def TypeText(self, chaine): """ 'Tape' le texte à la position courante """ self.position.TypeText(chaine) def chExist(self, chaine): """Cherche l'existence d'une chaine dans le document. Retourne True ou False, selon le résultat. """ sel = self.w.Selection sel.Find.Text = chaine sel.Find.Forward = False return sel.Find.Execute() def chSelect(self, chchaine): """Sélectionne (recherche) la chaine passée en paramètre """ sel = self.w.Selection sel.Find.Text = chchaine sel.Find.Forward = True sel.Find.Execute() self.position=sel sel.Select() def styleapply(self, style="Titre 1"): self.w.Selection.Style = self.doc.Styles(style) def macroRun(self, name): """Lance la macro-word (VBA) 'name' """ self.w.Run(name) def language(self): """Retourne la langue de Word, ainsi que le code-langue de word """ id=self.w.LanguageSettings.LanguageID(2) if id==1078 : l="Afrikaans" elif id==1052 : l="Albanian" elif id==14337 : l="Arabic - United Arab Emirates" elif id==15361 : l="Arabic - Bahrain" elif id==5121 : l="Arabic - Algeria" elif id==3073 : l="Arabic - Egypt" elif id==2049 : l="Arabic - Iraq" elif id==11265 : l="Arabic - Jordan" elif id==13313 : l="Arabic - Kuwait" elif id==12289 : l="Arabic - Lebanon" elif id==4097 : l="Arabic - Libya" elif id==6145 : l="Arabic - Morocco" elif id==8193 : l="Arabic - Oman" elif id==16385 : l="Arabic - Qatar" elif id==1025 : l="Arabic - Saudi Arabia" elif id==10241 : l="Arabic - Syria" elif id==7169 : l="Arabic - Tunisia" elif id==9217 : l="Arabic - Yemen" elif id==1067 : l="Armenian" elif id==1068 : l="Azeri - Latin" elif id==2092 : l="Azeri - Cyrillic" elif id==1069 : l="Basque" elif id==1059 : l="Belarusian" elif id==1026 : l="Bulgarian" elif id==1027 : l="Catalan" elif id==2052 : l="Chinese - China" elif id==3076 : l="Chinese - Hong Kong SAR" elif id==5124 : l="Chinese - Macau SAR" elif id==4100 : l="Chinese - Singapore" elif id==1028 : l="Chinese - Taiwan" elif id==1050 : l="Croatian" elif id==1029 : l="Czech" elif id==1030 : l="Danish" elif id==1043 : l="Dutch - The Netherlands" elif id==2067 : l="Dutch - Belgium" elif id==3081 : l="English - Australia" elif id==10249 : l="English - Belize" elif id==4105 : l="English - Canada" elif id==9225 : l="English - Caribbean" elif id==6153 : l="English - Ireland" elif id==8201 : l="English - Jamaica" elif id==5129 : l="English - New Zealand" elif id==13321 : l="English - Phillippines" elif id==7177 : l="English - South Africa" elif id==11273 : l="English - Trinidad" elif id==2057 : l="English - United Kingdom" elif id==1033 : l="English - United States" elif id==1061 : l="Estonian" elif id==1065 : l="Farsi" elif id==1035 : l="Finnish" elif id==1080 : l="Faroese" elif id==1036 : l="French - France" elif id==2060 : l="French - Belgium" elif id==3084 : l="French - Canada" elif id==5132 : l="French - Luxembourg" elif id==4108 : l="French - Switzerland" elif id==2108 : l="Gaelic - Ireland" elif id==1084 : l="Gaelic - Scotland" elif id==1031 : l="German - Germany" elif id==3079 : l="German - Austria" elif id==5127 : l="German - Liechtenstein" elif id==4103 : l="German - Luxembourg" elif id==2055 : l="German - Switzerland" elif id==1032 : l="Greek" elif id==1037 : l="Hebrew" elif id==1081 : l="Hindi" elif id==1038 : l="Hungarian" elif id==1039 : l="Icelandic" elif id==1057 : l="Indonesian" elif id==1040 : l="Italian - Italy" elif id==2064 : l="Italian - Switzerland" elif id==1041 : l="Japanese" elif id==1042 : l="Korean" elif id==1062 : l="Latvian" elif id==1063 : l="Lithuanian" elif id==1071 : l="FYRO Macedonian" elif id==1086 : l="Malay - Malaysia" elif id==2110 : l="Malay – Brunei" elif id==1082 : l="Maltese" elif id==1102 : l="Marathi" elif id==1044 : l="Norwegian - Bokmål" elif id==2068 : l="Norwegian - Nynorsk" elif id==1045 : l="Polish" elif id==2070 : l="Portuguese - Portugal" elif id==1046 : l="Portuguese - Brazil" elif id==1047 : l="Raeto-Romance" elif id==1048 : l="Romanian - Romania" elif id==2072 : l="Romanian - Moldova" elif id==1049 : l="Russian" elif id==2073 : l="Russian - Moldova" elif id==1103 : l="Sanskrit" elif id==3098 : l="Serbian - Cyrillic" elif id==2074 : l="Serbian - Latin" elif id==1074 : l="Setsuana" elif id==1060 : l="Slovenian" elif id==1051 : l="Slovak" elif id==1070 : l="Sorbian" elif id==1034 : l="Spanish - Spain" elif id==11274 : l="Spanish - Argentina" elif id==16394 : l="Spanish - Bolivia" elif id==13322 : l="Spanish - Chile" elif id==9226 : l="Spanish - Colombia" elif id==5130 : l="Spanish - Costa Rica" elif id==7178 : l="Spanish - Dominican Republic" elif id==12298 : l="Spanish - Ecuador" elif id==4106 : l="Spanish - Guatemala" elif id==18442 : l="Spanish - Honduras" elif id==2058 : l="Spanish - Mexico" elif id==19466 : l="Spanish - Nicaragua" elif id==6154 : l="Spanish - Panama" elif id==10250 : l="Spanish - Peru" elif id==20490 : l="Spanish - Puerto Rico" elif id==15370 : l="Spanish - Paraguay" elif id==17418 : l="Spanish - El Salvador" elif id==14346 : l="Spanish - Uruguay" elif id==8202 : l="Spanish - Venezuela" elif id==1072 : l="Sutu" elif id==1089 : l="Swahili" elif id==1053 : l="Swedish - Sweden" elif id==2077 : l="Swedish - Finland" elif id==1097 : l="Tamil" elif id==1092 : l="Tatar" elif id==1054 : l="Thai" elif id==1055 : l="Turkish" elif id==1073 : l="Tsonga" elif id==1058 : l="Ukrainian" elif id==1056 : l="Urdu" elif id==2115 : l="Uzbek - Cyrillic" elif id==1091 : l="Uzbek – Latin" elif id==1066 : l="Vietnamese" elif id==1076 : l="Xhosa" elif id==1085 : l="Yiddish" elif id==1077 : l="Zulu" return l def filterTxt(self): """Convertit une sélection en texte """ ss=self.u1252(self.w.Selection.Text) ss=ss.replace(chr(7)+chr(13),' ') ss=ss.replace(chr(13),'\r\n') ss=ss.replace(chr(7),' ') ss=ss.replace(chr(9),'') ss=ss.replace(chr(26),'') return ss def eSelAll(self): """sélectionne, et retourne, tout le document """ sel=self.w.Selection.WholeStory() return self.filterTxt() def eSelWord(self, nb=1): """étend la sélection aux nb mots à droite, et retourne la sélection """ self.w.Selection.MoveRight(self.wdWord, nb, self.wdExtend) return self.filterTxt() def eSelLine(self, nb=1): """étend la sélection aux nb lignes en-dessous, et retourne la sélection """ self.w.Selection.MoveDown(self.wdLine, nb, self.wdExtend) return self.filterTxt() def eSelEndLine(self): """étend la sélection jusqu'à la fin de la ligne, et retourne la sélection """ self.w.Selection.EndKey(self.wdLine, self.wdExtend) return self.filterTxt() def bold(self, arg=True): """met la sélection en gras +++ """ if arg: self.w.Selection.Font.Bold=1 else: self.w.Selection.Font.Bold=0 def insfile(self, nomfichier): self.w.Selection.InsertFile(nomfichier,"", False, False, False) #ChangeFileOpenDirectory "C:\" def chRemplAll(self, oldchaine, newchaine=''): """ oldchaine = chaine a remplacer / string to replace newchaine = chaine de remplacement / string for replace """ sel = self.w.Selection #sel.ClearFormatting() sel.Find.Text = oldchaine sel.Find.Forward = True newchaine=newchaine.replace('\n','\r') sel.Find.Execute(oldchaine,False,True,False,False,False,True,self.wdFindContinue,False,newchaine,self.wdReplaceAll) self.position=sel def chRemplOne(self, oldchaine, newchaine=''): """ oldchaine = chaine a remplacer / string to replace newchaine = chaine de remplacement / string for replace """ sel = self.w.Selection #sel.ClearFormatting() sel.Find.Text = oldchaine sel.Find.Forward = True newchaine=newchaine.replace('\n','\r') sel.Find.Execute( oldchaine,False,False,False,False,False,True,self.wdFindContinue,False,newchaine,self.wdReplaceOne) self.position=sel def chRemplClipboard(self, oldchaine): """ oldchaine = chaine a remplacer / string to replace """ sel = self.w.Selection #sel.ClearFormatting() sel.Find.Text = oldchaine sel.Find.Forward = True sel.Find.Execute( oldchaine,False,False,False,False,False,True,self.wdFindContinue,False,'XXX',self.wdReplaceOne) sel.Paste() self.position=sel def chRemplGraf(self, oldchaine, fichier): """ oldchaine = chaine a remplacer / string to replace """ sel = self.w.Selection #sel.ClearFormatting() sel.Find.Text = oldchaine sel.Find.Forward = True sel.Find.Execute( oldchaine,False,False,False,False,False,True,self.wdFindContinue,False,'',self.wdReplaceOne) sel.InlineShapes.AddPicture(fichier, False, True) self.position=sel def signet(self, nom, texte): sel=self.doc.Bookmarks(nom).Select() sel = self.w.Selection sel.Range.Text=texte def TableauInsLigApres(self, oldchaine, nblig=1): """ oldchaine = chaine a remplacer / string to replace """ sel = self.w.Selection #sel.ClearFormatting() sel.Find.Text = oldchaine sel.Find.Forward = True sel.Find.Execute( oldchaine,False,False,False,False,False,True,self.wdFindContinue,False,'',self.wdReplaceOne) sel.InsertRowsBelow(nblig) def TableauDelLig(self, oldchaine): """ oldchaine = chaine a remplacer / string to replace """ sel = self.w.Selection #sel.ClearFormatting() sel.Find.Text = oldchaine sel.Find.Forward = True sel.Find.Execute( oldchaine,False,False,False,False,False,True,self.wdFindContinue,False,'',self.wdReplaceOne) sel.Rows.Delete() def MoveRight(self, nb=1): self.position.MoveRight(self.wdCharacter, nb) def MoveLeft(self, nb=1): self.position.MoveLeft(self.wdCharacter, nb) def MoveCaractere(self, nb=1): if nb>0: self.position.MoveRight(self.wdCharacter, nb) else: self.position.MoveLeft(self.wdCharacter, -nb) def MoveLine(self, nb=1): if nb>0: self.position.MoveDown(self.wdLine, nb) else: self.position.MoveUp(self.wdLine, -nb) def TableauMoveRight(self, nb=1): sel = self.w.Selection sel.MoveRight(self.wdCell, nb) def TableauMoveLeft(self, nb=1): sel = self.w.Selection sel.MoveLeft(self.wdCell, nb) def TableauMoveLine(self, nb=1): sel = self.w.Selection if nb>0: sel.MoveDown(self.wdLine, nb) else: sel.MoveUp(self.wdLine, -nb) def tableauinsligduplique(self): """ Copie la ligne courante insère une ligne en dessous colle le contenu (ce qui revient à insérer après une ligne dupliquée) est positionné au début de la ,première cellule de la nouvelle ligne """ sel = self.w.Selection sel.SelectRow() sel.Copy() sel.PasteAndFormat(self.wdTableInsertAsRows) def TableauCellule(self, lig=1, col=1, txt='', align=0): tbl = self.doc.Tables[0] cellule = tbl.Cell(lig, col) cellule.Range.Text = txt cellule.Range.ParagraphFormat.Alignment = align #0,1,2, left, center, right def landscape(self): """Met le document en mode paysage """ self.wdOrientLandscape=1 self.wdOrientPortrait=0 self.w.ActiveDocument.PageSetup.Orientation = self.wdOrientLandscape def portrait(self): """Met le document en mode portrait """ self.wdOrientLandscape=1 self.wdOrientPortrait=0 self.w.ActiveDocument.PageSetup.Orientation = self.wdOrientPortrait def changePrinter(self, printerName): """Change l'imprimante active de Word """ self.w.ActivePrinter = printerName def printerstatus(self): return self.w.BackgroundPrintingStatus #def bof_acf(self, txt="Message court"): def msgbox(self, txt="Message court"): #print self.w.ListCommands() #self.w.ShowClipboard() #import win32com,win32com.client #bw = win32com.client.Dispatch("Word.Basic") #bw.insert("AAAAAAAAAAAAAAAAAAAAA") #self.w.WordBasic.MsgBox(prompt="AAAA") #self.w.WordBasic.MsgBox("AAAA") self.w.WordBasic.AppWord.MsgBox("AAAA") def vconstant(self, constantname): import win32com.client return eval("win32com.client.constants."+constantname) def spellsugg(self,txt): """ Utilise la correction orthographique de Word sur le texte txt retourne le mots erronés, et les suggestions. Exemple d'utilisation : wo=pxword.word() corrector=wo.spellsugg("Bonjour moonsieur, commment allez-vous, cher commment moonsieur ?") nberrors=corrector.next() print "Nb erreurs : ",nberrors for i in range(nberrors): mot=corrector.next() print mot while mot: mot=corrector.next() if mot: print "\tSuggestion:",mot wo.quitCancel() """ self.runword() self.w.Documents.Add() self.w.Selection.Text=txt lstw=self.w.ActiveDocument.SpellingErrors yield lstw.Count for i in lstw: moterror=i.Text sugg=self.w.GetSpellingSuggestions(moterror) yield moterror for s in sugg: yield s.Name yield None self.quit() if __name__=='__main__': """ exemple de suppression d'un saut-de-paragraphe dans un doc Word qui contiendrait : bla-bla AAA BBB suite-du-texte """ w=word('L:\\L.docx') w.visible(True) time.sleep(1) w.chSelect("AAA") w.MoveRight(1) w.insertimage() time.sleep(1) w.text("ZZ") w.MoveRight(1) import sys sys.exit(0) """ w=word() time.sleep(8) w.quit() import sys sys.exit(0) """ """ w=word('C:\\LET01.doc') w.visible(True) time.sleep(4) w.sendmail() time.sleep(4) w.quitCancel() import sys sys.exit(0) """ """ w=word('C:\\LET01.doc') print w.__class__ print w.__class__.__name__ print dir(w) #w.signet("VVV","X") #w.chSelect('ORP') w.TypeText("TTTT€TTTT") """ """ w=word('C:\\LET02.doc') w.chRemplAll('.NOM.','Tartempion') contenu=w.eSelAll() w.wprint() flag=w.printerstatus() while flag: time.sleep(0.50) flag=w.printerstatus() print "Status impression :",flag w.quitCancel() #print contenu """ """ w=word() w.pxopen("C:\\LET02.doc") w.chRemplAll('.NOM.','Tartempion') w.TableauCellule(1,1,"1111",0) w.TableauCellule(1,2,"1122",1) w.TableauCellule(2,2,"2222",2) w.chSelect('ORP') w.TypeText("TTTT€TTTT") w.quit() """ #w=word('C:\\LET01.doc',False) """ w=word(exist="OUI") #time.sleep(1) w.open("C:\\LET01.doc") #w.visible(False) w.visible(True) #w.visible() #w.hide() w.chRemplAll('.NOM.','Tartempion') time.sleep(1) #w.chRemplClipboard('.ADR1.') w.chRemplOne('.ADR2.','quartier Haut') time.sleep(1) w.chRemplAll('.CPOSTAL.','07700') w.chRemplAll('.VILLE.',u'Bourg Saint Andéol') w.chRemplAll('.CEJOUR.',u'25 décembre 2005') time.sleep(1) w.chRemplOne('.REFERENCE.','AABBCCDDEE') w.MoveLeft() w.MoveRight(6) w.text('11') w.MoveLeft(4) w.text('22') w.chRemplOne('.CORPS.',u'''Bonjour Comment ça va ? bien, et vous c'est OK.''') w.chRemplOne('.TAB2.','.TAB2.') w.TableauInsLigApres('.TAB2.',2) w.TableauDelLig('.TAB2.') w.chRemplAll('.TAB1.','11111') w.chRemplAll('.TAB3.','33333') w.TableauMoveRight(3) time.sleep(1) w.TableauMoveLine(1) w.text('AAAAA') w.TableauMoveLeft(2) w.TableauMoveLine(-1) w.text("AZERTY") time.sleep(1) w.chRemplGraf('.GRAF1.',r'C:\vodka.jpg') time.sleep(1) w.changePrinter("PDFCreator") w.wprint() w.preview() time.sleep(2) w.previewclose() time.sleep(1) #w.saveas('c:\\Toto.rtf',6) w.close() w.quit() """ #acf : objSelection.InsertFile("C:\\toto.txt") #acf : objSelection.TypeParagraphe("C:\\toto.txt") #acf ou self.Position ? """ w=word('L:\\essai.docx') w.visible(True) time.sleep(1) w.chSelect('.33.') w.tableauinsligduplique() w.tableauinsligduplique() w.tableauinsligduplique() w.tableauinsligduplique() w.tableauinsligduplique() w.TableauMoveRight(1) w.TableauMoveLeft(1) w.TypeText("Trois") w.TableauMoveRight(1) w.TypeText("Quatre") w.TableauMoveRight(1) w.TypeText("Cinq") w.TableauMoveRight(1) w.TypeText("Six") w.TableauMoveRight(1) w.TypeText("Sept") w.TableauMoveRight(1) #time.sleep(1) #w.quitCancel() """ w=word('L:\\essai.docx') w.savepdf("L:\\ess.pdf") w.savexps("L:\\ess.xps") w.visible(True)