Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v19
WP Lire position
|
WP Lire position ( objCible {; presentation} ) -> Résultat | ||||||||
Paramètre | Type | Description | ||||||
objCible | Objet |
![]() |
Plage ou élément ou document 4D Write Pro | |||||
presentation | Entier long |
![]() |
Mise en page de document 4D Write Pro utilisée pour la présentation : 0 (par défaut) = mise en page 4D Write Pro, 1 = HTML WYSIWYG | |||||
Résultat | Objet |
![]() |
Informations sur la position | |||||
La commande WP Lire position retourne un objet décrivant la position courante de objCible.
Dans le paramètre objCible vous pouvez passer :
L'objet retourné par la commande comporte les propriétés suivantes :
Nom de la propriété | Type | Description | |
section | Nombre | Numéro de la première section qui croise l'objCible | |
page | Nombre | Numéro de la première page qui croise l'objCible | |
column | Nombre | Index de la première colonne qui croise l'objCible (base 1) | |
line | Nombre | Index de la première ligne qui croise l'objCible (par rapport à la colonne -ou la page si aucune colonne- base 1) | |
position | Nombre | Position dans la ligne du premier caractère de l'objCible (base 1) | |
bounds | Objet | Coordonnées du rectangle englobant d'objCible, exprimées dans l'unité du document courant et relativement à l'extrémité supérieure gauche de la page. Le padding et les tailles des bordures (le cas échéant) sont pris en compte ; les marges et les règles ne le sont pas. | |
top | Nombre | Coordonnée supérieure du rectangle | |
left | Nombre | Coordonnée gauche du rectangle | |
bottom | Nombre | Coordonnée inférieure du rectangle | |
right | Numbre | Coordonnée droite du rectangle | |
rangeHeight | Nombre | Hauteur du rectangle englobant de l'objCible. Cette valeur peut être différente de bounds.bottom-bounds.top si objCible s'étend sur plusieurs colonnes (voir l'exemple 4). |
Si objCible est une plage vide, WP Lire position retourne des informations sur la position du début de la plage. Notez que lorsqu'une plage de type par défaut (texte) est vide, la hauteur de la plage (range ou bounds.bottom-bounds.top) correspond à la hauteur du curseur et la largeur de la plage (bounds.right-bounds.left) est de 1 pixel.
Si objCible est un texte en en-tête ou en pied, WP Lire position retourne des informations sur la position où l'en-tête et le pied de page sont affichés dans la première section/page.
Si objCible est une image ancrée (qui peut être répliquée sur plusieurs pages), WP Lire position renvoie des informations sur la position où l'image est ancrée dans la première section/page.
Si objCible est une sous-section, WP Lire position renvoie des informations sur la position de la première page de la section parente.
Le paramètre presentation peut être utilisé pour définir du wysiwyg HTML pour l'évaluation de l'objCible. Vous pouvez passer une des constantes suivantes du thème "4D Write Pro" :
Constante | Type | Valeur | Comment |
wk 4D Write Pro layout | Entier long | 0 | Format 4D Write Pro standard, pouvant inclure des attributs de style spécifiques |
wk html wysiwyg | Entier long | 1 | Dans ce format, les éventuels attributs avancés de 4D Write Pro non disponibles dans tous les navigateurs sont supprimés (multi-colonnes, double interlignes...) |
Si presentation est omis, la présentation 4D Write Pro (0) est utilisée par défaut.
Notes sur les performances
Vous souhaitez connaître le numéro de page d'une plage :
C_OBJET($range;$rangePosition)
$range:=WP Plage texte(WParea) //plage de la sélection de l'utilisateur
$rangePosition:=WP Lire position($range;wk 4D Write Pro layout)
ALERTE("Votre sélection se trouve en page "+Chaine($rangePosition.page))
Vous voulez appliquer la couleur bleue pour le texte de la première et de la dernière page d'un document :
C_ENTIER LONG($nbPages)
C_OBJET($body)
C_COLLECTION($_paragraphs)
$nbPages:=WP Nombre de pages([DOC]Sample)
$body:=WP Lire corps([DOC]Sample)
$_paragraphs:=WP Lire elements($body;wk type paragraph)
Pour chaque($paragraph;$_paragraphs)
$info:=WP Lire position($paragraph)
Si($info.page=1)|($info.page=$nbPages) // pour la première et la dernière page, couleur du texte en bleu
WP FIXER ATTRIBUTS($paragraph;wk text color;"blue")
Sinon //pour les paragraphes des autres pages, le texte est en noir
WP FIXER ATTRIBUTS($paragraph;wk text color;"black")
Fin de si
Fin de chaque
Lors de la création d'un document, vous souhaitez éviter les fractionnements de paragraphes :
C_OBJET(WParea;$body)
C_COLLECTION($_paragraphs)
WParea:=WP Nouveau
$body:=WP Lire corps([DOC]Sample)
$_paragraphs:=WP Lire elements($body;wk type paragraph)
Pour chaque($paragraph;$_paragraphs)
$insert:=WP Nouveau($paragraph)
//mémorise la plage courante et le numéro de page
$rangeBefore:=WP Plage texte(WParea;wk end text;wk end text)
$info:=WP Lire position($rangeBefore)
$memoPage:=$info.page
//insère les contenus, sans toucher à la plage
WP INSERER DOCUMENT($rangeBefore;$insert;wk append;wk exclude from range)
//vérifie la position après l'insertion
$rangeAfter:=WP Plage texte(WParea;wk end text;wk end text)
$info:=WP Lire position($rangeAfter)
Si($memoPage#$info.page) // si la page a changé, insertion d'un saut de page
WP INSERER RUPTURE($rangeBefore;wk page break;wk replace)
fin de si
Fin de chaque
Les exemples suivants illustrent les coordonnées retournées du rectangle englobant, en fonction de objCible.
$default:=WP Plage texte(WPArea) //plage par défaut (texte)
$textCoordinates:=WP Lire position($default) //ligne pointillée rouge
$paragraph:=WP Creer plage paragraphes($default) //plage paragraphe
$paraCoordinates:=WP Lire position($paragraph) //ligne pointillée verte
Ligne pointillée rouge : valeurs $textCoordinates de l'objet
Ligne pointillée verte : valeurs $paraCoordinates de l'objet
Note : En cas d'affichage sur plusieurs colonnes, la propriété rangeHeight (lignes pleines) peut être plus importante que bounds.bottom-bounds.top (lignes pointillées) :
Produit : 4D
Thème : 4D Write Pro - Langage
Numéro :
1577
Nom intl. : WP Get position
Créé : 4D v17
Modifié : 4D v17 R3
Modifié : 4D v17 R4
4D Write Pro ( 4D v19)