|
- Présentation
- Manipuler le champ Traitement de texte par programmation
- Ouverture et création d'un document docx dans un champ Traitement de texte
- Enregistrement d'un document docx
- Effectuer une recherche dans un document et une modification sur le résultat de la recherche
- Manipuler la sélection
- Ajouter du texte dans un document
- Ajouter un saut de page dans un document
- Gestion des signets
- Enchaîner des états et des documents de type Traitement de texte
- Propriétés associées au champ Traitement de Texte
Manipuler un champ Traitement de texte par programmation
Un champ Traitement de texte peut être manipulé par programmation. Le WLangage propose pour manipuler le champ Traitement de texte : - un ensemble de fonctions qui permettent de réaliser toutes les opérations courantes (programmation directe, à l'aide des fonctions WLangage de type DocXXX. Ces fonctions Pour plus de détails, consultez Fonctions de gestion du champ Traitement de texte.
- une programmation avancée à l'aide des différents types avancés du WLangage permettant de manipuler directement le contenu du fichier docx affiché par le champ Traitement de texte. Pour plus de détails, consultez Types associés au champ Traitement de texte.
Cette page d'aide détaille comment manipuler un champ Traitement de texte par programmation.
Manipuler le champ Traitement de texte par programmation Ouverture et création d'un document docx dans un champ Traitement de texte Pour ouvrir un document docx existant par programmation dans un champ Traitement de texte, il est possible de : - affecter le champ Traitement de texte directement avec le fichier docx. Par exemple :
// Sélectionne un fichier .docx dans le répertoire en cours sNomFichier est une chaîne sNomFichier = fSélecteur("", "présentation.docx", ... "Sélection de fichier DocX", ... "Fichier Docx (*.docx)" + TAB + "*.docx", "*.docx", fselOuvre) SI sNomFichier ~= "" ALORS // Aucun fichier sélectionné RETOUR FIN // Chargement du fichier docx TT_MonDocument = sNomFichier
- utiliser la fonction WLangage DocOuvre.
Par exemple :
TT_MonDocument = DocOuvre("C:\Users\test\Documents\fichier.docx") SI ErreurDétectée() ALORS Erreur(ErreurInfo()) RETOUR
- utiliser une variable de type Document et l'affecter au champ Traitement de texte.
Par exemple :
MonDocument est un Document MonDocument = "C:\temp\presentation.docx" TT_MonDocument = MonDocument
ou bien :
MonDocument est un Document MonDocument = DocOuvre("C:\Users\test\Documents\fichier.docx") SI ErreurDétectée() ALORS Erreur(ErreurInfo()) SINON TT_MonDocument = MonDocument FIN
Attention : seuls les fichiers au format docx peuvent être manipulés par le champ Traitement de texte. Astuce : Pour afficher un document vide dans un champ Traitement de texte, il suffit d'affecter le champ Traitement de texte avec une chaîne vide. Exemple :
// Création d'un document vierge TT_MonDocument = ""
Enregistrement d'un document docx Pour enregistrer un document docx, il suffit d'utiliser la fonction DocSauve. Exemple :
// On choisit le répertoire et le nom de sauvegarde sNomFichier est une chaîne = fSélecteur(ComplèteRep(fRepExe()), "présentation.docx", ... "Sélection de fichiers DocX","Fichier Docx (*.docx)" + TAB + "*.docx" , "*.docx", fselCrée) // On sauvegarde le fichier DocSauve(TT_SansNom1, sNomFichier) SI ErreurDétectée ALORS Erreur(ChaîneConstruit("Le fichier %1 n'a pas pu être enregistré.", sNomFichier), ErreurInfo()) RETOUR FIN
Remarques : - Le contenu du champ Traitement de texte peut également être :
- La fonction DocVersTexte permet de récupérer le texte du document.
- La fonction DocVersImage permet de convertir une page du document en une image.
Effectuer une recherche dans un document et une modification sur le résultat de la recherche Pour effectuer une recherche dans un document Traitement de texte, il suffit d'utiliser la fonction DocRecherche. Exemple :
// Recherche du mot "BEAUGRAND" dans le texte // Sélectionne uniquement le premier trouvé pour changer sa couleur tabFragments est tableau de docFragments = DocRecherche(TT_SansNom1, "BEAUGRAND") SI tabFragments.Occurrence >= 1 ALORS // Positionnement du curseur au début du premier mot trouvé TT_SansNom1.Curseur = tabFragments[1].PositionDébut // Calcul de la longueur de la sélection TT_SansNom1.LongueurSélection = ... tabFragments[1].PositionFin - tabFragments[1].PositionDébut+1 // Modification de la couleur du texte tabFragments[1].MiseEnForme.CouleurTexte = RougePastel SORTIR FIN
Dans ce code, la variable docFragment correspond à la portion de texte contenant le mot recherché, avec sa position dans le texte complet. Il est ensuite possible de manipuler le fragment trouvé. Manipuler la sélection Pour manipuler la sélection actuellement réalisée dans un champ Traitement de texte, il est possible de récupérer cette sélection dans une variable de type docFragment. Le code suivant permet par exemple de changer la couleur du texte sélectionné. Exemple :
// Changement de la couleur de la sélection // Récupération de la sélection actuelle MaSélection est un docFragment(TT_MonDocument, TT_MonDocument.Curseur, ... TT_MonDocument.LongueurSélection) // Changement de la couleur MaSélection.MiseEnForme.CouleurTexte = RougePastel
Le type de variable docFragment possède un constructeur spécifique permettant de récupérer facilement la sélection. Ajouter du texte dans un document Pour ajouter du texte dans un document existant, il existe plusieurs méthodes : - Insérer un fragment à la position désirée. Exemple :
// Insère un texte à la fin du document frag2 est un docFragment(TT_MonDoc, -1 , 0) frag2.Texte += "Texte de fin"
- Insérer directement un texte à partir d'une position donnée avec la fonction DocInsère.
DocInsère(TT_Document, TT_Document.Curseur, "Mon texte inséré")
- Ajouter un texte à la fin du document avec la fonction DocAjoute.
Pour ajouter du texte dans un document vide, il est possible de : - utiliser l'affectation directe du champ :
<Champ Traitement de texte> = "Texte à insérer"
Exemple :
TT_Mondocument = "Je suis la première phrase de ce document."
- ajouter le texte avec la fonction DocAjoute.
- insérer un fragment à la première position. Exemple :
// sTexteOriginal contient le texte à insérer frag est un docFragment(TT_MonDoc, TT_MonDoc.Curseur, 0) frag.Texte += sTexteOriginal
- insérer directement un texte à partir de la position 1 avec la fonction DocInsère.
DocInsère(TT_Document, 1, "Mon texte inséré")
Ajouter un saut de page dans un document Pour ajouter par programmation un saut de page dans un document, il suffit d'utiliser le code suivant :
// Ajoute un saut de page DocAjoute(TT_SansNom1, Caract(12))
Il est également possible d'utiliser les constantes suivantes pour ajouter le type de saut voulu dans un document ou un fragment : - docSautDeColonne : Ajoute un saut de colonne dans une section multicolonne. Si la section n'est pas multicolonne, un saut de page est ajouté.
- docSautDeLigne : Ajoute un saut de ligne.
- docSautDePage : Ajoute un saut de page.
- docSautDeParagraphe : Ajoute un saut de paragraphe.
Exemple :
// Ajoute un saut de page DocAjoute(TT_SansNom1, docSautDePage + "Texte sur la page suivante")
Gestion des signets Il est possible de gérer les signets dans un document de type Traitement de texte. Quelques exemples : - Ajouter un signet : Ajoute un signet ayant pour nom MonSignet avec le texte sélectionné.
doc est un Document doc <- TT_MonDocument fragSélection est un docFragment = TT_MonDocument.Sélection.Fragment doc.Signet["MonSignet"] = fragSélection
- Supprimer un signet : Supprime le signet qui porte le nom Signet1 :
doc est un Document doc <- TT_MonDocument Supprime(doc.Signet, "Signet1")
- Lister les signets : Liste les signets d'un document :
doc est un Document doc <- TT_MonDocument POUR TOUT uUnSignet,NomSignet de doc.Signet Trace(NomSignet) // Nom du signet Trace(uUnSignet.Texte) // Texte du signet FIN
- Insérer un texte à la fin d'un signet :
doc est un Document <- TT_MonDocument.Valeur // Recherche de la position du signet fragmentSignet est un docFragment = doc.Signet["Signet 1"] SI fragmentSignet <> Null ALORS // Insertion du texte à la fin du signet soit nPositionInsertion = fragmentSignet.PositionFin // Insertion à proprement dite DocInsère(TT_MonDocument, nPositionInsertion, "Texte à insérer à la position du signet") SINON Erreur("Signet 'Signet 1' non trouvé dans le document") FIN
Enchaîner des états et des documents de type Traitement de texte De la même manière qu'il est possible d'enchaîner des états, il est également possible d'enchaîner des états et des documents de type Traitement de texte. Pour cela, il suffit d'utiliser la fonction iEnchaînementAjouteDoc en plus des fonctions classiques de création des enchaînements d'états. Par exemple :
MonDocument est un Document = "c:\temp\conditiongenerales.docx" // Impression dans le visualisateur de rapports iDestination(iVisualisateur) // Ajout des états dans l'enchaînement iEnchaînementAjoute(ETAT_Etat1) iEnchaînementAjoute(ETAT_Etat2, 3) // Ajout des conditions générales sous forme d'un document iEnchaînementAjouteDoc(MonDocument) iEnchaînementImprime()
Pour plus de détails, consultez Enchaîner des états. Propriétés associées au champ Traitement de Texte Les propriétés suivantes sont spécifiques au champ Traitement de texte. Elles permettent essentiellement de manipuler les caractéristiques du champ :
| | AffichageCaractèresContrôle | La propriété AffichageCaractèresContrôle permet de : - Savoir si l'affichage des caractères de contrôles est activé dans un champ Traitement de texte.
- Activer ou désactiver l'affichage des caractères de contrôle dans un champ Traitement de texte.
| AffichageSignets | La propriété AffichageSignets permet : - de connaître le mode d'affichage des signets dans un champ Traitement de texte.
- d'activer ou de désactiver l'affichage des signets dans un champ Traitement de texte.
| BarreOutilsVisible | La propriété BarreOutilsVisible permet : - de savoir si la barre d'outils ou le ruban est affichée dans un champ.
- d'afficher ou non la barre d'outils ou le ruban dans un champ.
| CheminFichier | La propriété CheminFichier permet de connaître : - le nom du fichier xlsx associé à un champ Tableur. Ce nom est initialisé par les fonctions TableurCharge et TableurSauve.
- le nom du fichier associé à un champ Editeur d'images. Ce nom est initialisé par les fonctions PicOuvre et PicSauve.
- le nom du fichier PDF associée à un champ Lecteur PDF. Ce nom est initialisé par la fonction LecteurPDFOuvre.
- le nom du fichier DOCX associé à un champ Traitement de texte. Ce nom est initialisé par les fonctions DocOuvre et DocSauve.
| CouleurCaractèresContrôle | La propriété CouleurCaractèresContrôle permet de : - connaître la couleur des caractères de contrôle dans un champ Traitement de texte.
- modifier la couleur des caractères de contrôle dans un champ Traitement de texte.
| EditionHTML | La propriété EditionHTML permet de : - savoir si un champ Traitement de texte est affiché en mode optimisé pour l'édition HTML,
- modifier un champ Traitement de texte pour l'afficher ou non en mode optimisé pour l'édition HTML.
| LienAutomatique | La propriété LienAutomatique permet de : - savoir si le mode de détection automatique des liens est activé,
- activer ou non le mode de détection automatique des liens.
| LongueurSélection | La propriété LongueurSélection permet de connaître et de modifier la longueur de la sélection effectuée dans un champ Traitement de texte. | ModeAffichage | La propriété ModeAffichage permet de connaître et de modifier le mode d'affichage d'un champ Traitement de texte ou d'un champ Lecteur PDF. | NombrePage | La propriété NombrePage permet de connaître : - le nombre de pages présentes dans un fichier image de type "multi-pages". Cette image est affichée soit dans un champ Image, soit dans le fond d'un champ Graphe.
- le nombre de pages présentes dans un fichier PDF affiché dans un champ Image.
- le nombre de pages présentes dans un fichier PDF affiché dans un champ Lecteur PDF.
- le nombre de pages présentes dans un fichier DOCX affiché dans un champ Traitement de texte.
| NombrePageAccessible | La propriété NombrePageAccessible permet de connaître le nombre de pages actuellement chargées dans le champ Lecteur PDF ou dans le champ Traitement de texte. | NuméroPageAffichée | La propriété NuméroPageAffichée permet de connaître et de modifier le numéro de la page actuellement affichée dans le champ Lecteur PDF ou dans le champ Traitement de texte. | RègleVisible | La propriété RègleVisible permet de : - Savoir si les règles sont visibles ou invisibles dans un champ Traitement de texte.
- Rendre les règles visibles ou invisibles dans un champ Traitement de texte.
| Sélection | La propriété Sélection permet d'obtenir les caractéristiques de la sélection (ou du curseur) : - dans un champ Traitement de texte.
Remarque : Cette sélection est située dans la partie en cours d'édition dans le champ (corps, entête ou pied de page). - dans un champ Tableur.
- dans un champ Editeur HTML.
- dans un champ Editeur de diagrammes.
|
Liste des exemples associés :
|
Exemples unitaires (WINDEV) : Le champ Traitement de texte
[ + ] Cet exemple vous montre comment manipuler un champ traitement de texte par programmation. Il est possible d'ajouter du texte et de le mettre en forme par programmation.
|
|
|
|
|
|
|
|