Structure du corps du document
IDocumentBody
IDocumentBody stocke le contenu du flux principal d’un document Univer Docs.
Le texte proprement dit est stocké dans dataStream. Les styles et les informations structurelles sont stockés dans des tableaux parallèles et reliés au texte au moyen d’index.
Propriétés
| Propriété | Type | Description |
|---|---|---|
| dataStream | string | Flux de texte brut du corps du document. Des caractères spéciaux marquent les paragraphes, les sauts de section, les tableaux et les blocs personnalisés. |
| textRuns? | ITextRun[] | Plages de style en ligne. |
| paragraphs? | IParagraph[] | Métadonnées et styles des paragraphes. |
| sectionBreaks? | ISectionBreak[] | Métadonnées des sauts de section. |
| customBlocks? | ICustomBlock[] | Espaces réservés pour les blocs définis par les plugins. |
| tables? | ICustomTable[] | Marqueurs de tableau dans le corps du document. Les définitions des tableaux se trouvent dans IDocumentData.tableSource. |
| columnGroups? | ICustomColumnGroup[] | Marqueurs de groupes de colonnes. |
| blockRanges? | IDocumentBlockRange[] | Plages de blocs structurés, comme les encadrés, les citations et les blocs de code. |
| customRanges? | ICustomRange[] | Plages spéciales, comme les liens hypertextes, les champs, les signets, les commentaires, les mentions et les plages définies par les plugins. |
| customDecorations? | ICustomDecoration[] | Plages de décoration, comme la mise en évidence des commentaires. |
| payloads? | Record<string, string> | Charges utiles temporaires pour le copier-coller. Ce champ n’est pas conservé. |
dataStream
dataStream est la source de vérité pour le texte du corps. Un paragraphe se termine généralement par \r\n.
const body: IDocumentBody = { dataStream: 'Title\r\nHello Univer\r\n', paragraphs: [ { startIndex: 5, paragraphId: 'p-title' }, { startIndex: 19, paragraphId: 'p-body' }, ],}Caractères spéciaux
Certains éléments du document sont représentés par des caractères de contrôle dans dataStream, puis développés par le moteur de rendu :
| Caractère | Signification |
|---|---|
\r\n | Saut de paragraphe |
\n | Saut de section |
\f | Saut de page |
\v | Saut de colonne |
\t | Tabulation |
\0 | Fin du document |
\b | Espace réservé pour un bloc personnalisé |
Les tableaux et les plages personnalisées utilisent également des caractères de contrôle en interne. Lorsque vous travaillez avec des tableaux, des liens, des commentaires et des fonctionnalités au niveau des blocs, privilégiez les API Facade ou les commandes plutôt que la saisie manuelle de caractères de contrôle.
Relation avec IDocumentData
IDocumentBody stocke uniquement le flux principal du document. Les ressources externes sont stockées dans IDocumentData :
tableSourcestocke les définitions des tableaux.drawingsstocke les images et les objets de dessin.headersetfooterscontiennent chacun leur propreIDocumentBody.listsstocke les définitions de listes auxquelles font référence les puces des paragraphes.resourcesstocke les données définies par les plugins.
Que pensez-vous de ce guide ?