DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / Développer une application ou un site / Champs, fenêtres et pages / Champs : Types disponibles / Champ Traitement de texte
  • 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
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Présentation
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 docFragment = 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ôleLa 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.
AffichageSignetsLa 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.
BarreOutilsVisibleLa 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.
CheminFichierLa propriété CheminFichier permet de connaître :
  • le nom du fichier xlsx associé à un champ Tableur.
  • le nom du fichier associé à un champ Editeur d'images.
  • le nom du fichier PDF associée à un champ Lecteur PDF.
  • le nom du fichier DOCX associé à un champ Traitement de texte.
  • le nom du fichier wddiag associé à un champ Editeur de diagrammes.
CorrectionAutomatiqueLa propriété CorrectionAutomatique permet de définir un dictionnaire des corrections automatiques à appliquer dans un champ Traitement de texte pendant la saisie.
CouleurCaractèresContrôleLa 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.
EditionHTMLLa 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.
LienAutomatiqueLa 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électionLa 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.
ModeAffichageLa propriété ModeAffichage permet de connaître et de modifier :
  • le mode d'affichage d'un champ Traitement de texte,
  • le mode d'affichage d'un champ Lecteur PDF
  • le mode d'affichage d'un champ Editeur HTML,
  • le mode d'affichage d'un champ Kanban.
NombrePageLa 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.
NombrePageAccessibleLa 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éeLa 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ègleVisibleLa 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électionLa 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.
Pour connaître la liste complète des propriétés du WLangage pouvant être utilisées avec un champ de type Traitement de texte, consultez Propriétés associées au champ Traitement de texte.
Liste des exemples associés :
Le champ Traitement de texte 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.
Version minimum requise
  • Version 22
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 29/02/2024

Signaler une erreur ou faire une suggestion | Aide en ligne locale