PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE


  • Imprimer un texte RTF justifié
  • Imprimer un texte RTF contenant des sauts de page
  • Imprimer un texte RTF
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget iOSApple WatchCatalystUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
Imprime un texte au format RTF dans une zone rectangulaire. L'impression n'est pas lancée (seule la fonction iFinImprime permet de lancer l'impression).
iImprimeZoneRTF(TexteRTF, 0, 0, dHauteur, 200)
Syntaxe
<Résultat> = iImprimeZoneRTF(<Texte RTF> , <X1> , <Y1> , <X2> , <Y2> [, <Début> [, <Fin>]])
<Résultat> : Entier
Nombre de caractères imprimés dans la zone rectangulaire. Si la totalité du texte a été imprimée, <Résultat> correspond à la taille du <Texte RTF>.
<Texte RTF> : Chaîne de caractères
Chaîne de caractères au format RTF à imprimer dans une zone spécifique.
<X1> : Réel
Coordonnée horizontale (colonne ou abscisse) du coin haut gauche de la zone d'impression (en millimètres).
Valeur comprise entre 0 et la largeur de la page (donnée par iLargeurPage).
<Y1> : Réel
Coordonnée verticale (ligne ou ordonnée) du coin haut gauche de la zone d'impression (en millimètres).
Valeur comprise entre 0 et la hauteur de la page (donnée par iHauteurPage).
<X2> : Réel
Coordonnée horizontale (colonne ou abscisse) du coin bas droit de la zone d'impression (en millimètres).
Valeur comprise entre 0 et la largeur de la page (donnée par iLargeurPage).
<Y2> : Réel
Coordonnée verticale (ligne ou ordonnée) du coin bas droit de la zone d'impression (en millimètres).
Valeur comprise entre 0 et la hauteur de la page (donnée par iHauteurPage).
<Début> : Entier optionnel
Indice du premier caractère du <Texte RTF> à imprimer. Si ce paramètre n'est pas indiqué, le <Texte RTF> est imprimé depuis le premier caractère.
<Fin> : Entier optionnel
Indice du dernier caractère du <Texte RTF> à imprimer. Si ce paramètre n'est pas indiqué, le <Texte RTF> est imprimé jusqu'au dernier caractère.
Remarques

Imprimer un texte RTF justifié

Pour imprimer un texte en conservant sa justification avec la fonction iImprimeZoneRTF, il est nécessaire d'utiliser préalablement la fonction iParamètre de la façon suivante :
iParamètre("JustificationRTF=Oui")
Si les paramètres permettant de découper le texte RTF sont utilisés (paramètres <Début> et <Fin>), la justification du texte sera conservée.

Imprimer un texte RTF contenant des sauts de page

Le code suivant permet d'imprimer un texte RTF contenant des sauts de page en impression programmée :
// Affiche le visualisateur de rapports
iDestination(iVisualisateur)
// Conversion du texte
sTexte est une chaîne = RTFVersTexte(SAI_SaisieTexte)
// Taille du texte
nTailleTexte est un entier = Taille(sTexte)
// Suppression du nombre de sauts de page à la taille du texte
nTailleTexte -= ChaîneOccurrence(sTexte, Caract(12))
// Le RC doit correspondre à un seul caractères
nTailleTexte -= ChaîneOccurrence(sTexte, Caract(13))
 
// Boucle sur toutes les pages
nDébut est un entier
nTaille est un entier = -1
BOUCLE
// Imprime la page
nDébut = nTaille + 1
nTaille = iImprimeZoneRTF(SAI_SaisieTexte, 0, 0, iLargeurPage(), iHauteurPage(), nDébut, -1)
// Saute la page si il reste des pages
SI nTaille < nTailleTexte ET nTaille > nDébut ALORS
iSautePage()
FIN
À FAIRE TANTQUE nTaille < nTailleTexte ET nTaille > nDébut
// Fin de l'impression
iFinImprime()

Imprimer un texte RTF

Pour que la fonction iImprimeZoneRTF fonctionne, le fichier "RICHED20.DLL" doit être présent sur le poste en cours.
Le fichier "RICHED20.DLL" est généralement présent dans le répertoire système de Windows.
Composante : wd250prn.dll
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Problématique de sauts de pages
Synthèse d'un échange avec le support suite à un problème rencontré pour la gestion des sauts de page avec la fonction iImprimeZoneRTF :

La commande iImprimeZoneRTF ne compte pas les RC dans le texte imprimé. C’est lié à une anomalie des modules RTF de Windows sur lequel Windev s'appuie.

Le code fourni en exemple ci dessus peut tel qu'il est générer des sauts de page de trop : Code corrigé (la différence est dans le <nTailleTexte est un entier = Taille ( sTexte )- ChaîneOccurrence ( sTexte , RC )> )

// Affiche la fenêtre d'aperçu

iAperçu ()

// Conversion du texte

s Texte est une chaîne = RTFVersTexte ( SAI_SaisieTexte )

// Taille du texte

n TailleTexte est un entier = Taille ( s Texte )- ChaîneOccurrence ( s Texte , RC )

 

// Boucle sur toutes les pages

n Début est un entier

n Taille est un entier = - 1

BOUCLE

       // Imprime la page

       n Début = n Taille + 1

       n Taille = iImprimeZoneRTF ( SAI_SaisieTexte , 0 , 0 , iLargeurPage (), iHauteurPage (), n Début , - 1 )

       // Saute la page si il reste des pages

       SI n Taille < n TailleTexte ET n Taille > n Début ALORS

             iSautePage ()

       FIN

A FAIRE TANTQUE n Taille < n TailleTexte ET n Taille > n Début

// Fin de l'impression

iFinImprime ()
Yves C
19 mar. 2013