13 votes

Exemple de liste de puces RTF

Il semble impossible de trouver un exemple fonctionnel très simple pour une liste à puces RTF qui ressemble à ceci :

  • Bonjour
  • Monde
    • Emboîtés (mais avec carré comme balle s'il vous plaît)
    • Également imbriqué (également balle carrée)
  • et régulier à nouveau

J'ai essayé de créer un petit échantillon en utilisant Word ou TextEdit.app mais ils produisent beaucoup de déchets. Quelqu'un peut-il m'aider ?

10voto

ToastyMallows Points 3975

Si vous regardez assez longtemps dans le RTF formaté par Word ou Wordpad, vous trouverez des lignes qui ressemblent à ceci :

{ \f2 { \pntext \'B7 \tab }{* \pn\pnlvlblt\pnstart1 { \pntxtb\ 'B7}}{ \ltrch C'est un test.} \li720\ri0\sa0\sb0\jclisttab\tx720\fi -360 \ql\par }

{ \f2 { \pntext \'B7 \tab }{* \pn\pnlvlblt\pnstart1 { \pntxtb\ 'B7}}{ \ltrch Et ça aussi.} \li720\ri0\sa0\sb0\jclisttab\tx720\fi -360 \ql\par }

Le format sera le suivant

  • C'est un test.
  • Tout comme ceci.

Les listes imbriquées sont probablement un peu plus difficiles, mais c'est ce que vous voudrez si vous n'avez pas de listes imbriquées.

Maintenant, ça dépend de ce que vous voulez faire avec ça. Si vous ne faites que l'afficher, chaque balise signifie quelque chose d'utile. Quand je travaillais avec des listes, je les convertissais en HTML, donc beaucoup de balises de formatage ( \li , \ri , \tx etc.), dont je n'avais pas besoin pour mon application car j'utilisais simplement <ol> , <ul> y <li> tags. La principale chose à voir est la balise \pnlvlblt ce qui fait de cette liste une liste à puces. Aussi, \'B7 est la balise unicode réelle de la balle, -

La spécification la plus récente du RTF se trouve ici :

https://www.microsoft.com/en-us/download/details.aspx?id=10725

2voto

user922020 Points 13

J'ai essayé la réponse de Saur mais la ligne "Also nested (also square bullet)" avait le A de Also recouvert par le carré. Je ne sais pas pourquoi cela s'est produit.
lso emboîté (également balle carrée)

J'aime utiliser les commandes d'indentation de la ligne de sorte que si un retour à la ligne se produit, le texte entouré est également indenté. Lorsque vous faites \line \tab Ainsi, tout ce qui dépasse de la fin de la page imprimée commencera dans la marge de gauche au lieu de l'endroit d'où partait votre texte en retrait. Ce système est généré par un System.Windows.Forms.RichTextBox que j'ai collé (à partir de MS-Word) et que j'ai ensuite appelé RichTextBox.RTF pour obtenir le code.

{\rtf1\fbidis\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\froman\fprq2\fcharset2 Symbol;}{\f1\froman\fprq2\fcharset0 Times New Roman;}{\f2\fnil\fprq2\fcharset2 Wingdings;}{\f3\fnil\fcharset0 Microsoft Sans Serif;}}
\viewkind4\uc1\pard\ltrpar\fi-360\li360\f0\fs20\'b7\tab\f1 Hello\par
\f0\'b7\tab\f1 World\par
\pard\ltrpar\fi-360\li990\f2\'a7\tab\f1 Nested (but with square as bullet please)\par
\f2\'a7\tab\f1 Also nested (also square bullet)\par
\pard\ltrpar\fi-360\li360\sa200\sl276\slmult1\f0\'b7\tab\f1 and regular again\lang1024\par
\pard\ltrpar\lang1033\f3\fs17\par
}

2voto

Mike Blyth Points 1491

Voici une autre façon simple de procéder, pour ce qui est de l'affichage correct sur la page. Tout ce que vous avez à faire est de définir une indentation de bloc avec \li et un retrait négatif de la première ligne avec \fi et utiliser \bullet\tab au début de la ligne.

{\rtf1\ansi\deff0
{\pard\fi-300\li300\bullet\tab Having demonstrated his model time machine to a handful of reliable witnesses, The Time Traveller, within the week, 
\par}

{\pard\fi-300\li600\bullet\tab Having demonstrated his model time machine to a handful of reliable witnesses, The Time Traveller, within the week, 
\par}
}

enter image description here

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X