DocumentBuilder

DocumentBuilder class

Fournit des méthodes pour insérer du texte, des images et d’autres contenus, spécifier le formatage de la police, des paragraphes et des sections.

Pour en savoir plus, visitez lePrésentation du générateur de documents article documentaire.

public class DocumentBuilder

Constructeurs

NomLa description
DocumentBuilder()Initialise une nouvelle instance de cette classe.
DocumentBuilder(Document)Initialise une nouvelle instance de cette classe.

Propriétés

NomLa description
Bold { get; set; }True si la police est formatée en gras.
CellFormat { get; }Renvoie un objet qui représente les propriétés actuelles de formatage des cellules du tableau.
CurrentNode { get; }Obtient le nœud actuellement sélectionné dans ce DocumentBuilder.
CurrentParagraph { get; }Obtient le paragraphe actuellement sélectionné dans ceDocumentBuilder .
CurrentSection { get; }Obtient la section actuellement sélectionnée dans ceDocumentBuilder .
CurrentStory { get; }Obtient l’histoire actuellement sélectionnée dans ceDocumentBuilder .
CurrentStructuredDocumentTag { get; }Obtient la balise de document structuré actuellement sélectionnée dans ceDocumentBuilder .
Document { get; set; }Obtient ou définit leDocumentobjet auquel cet objet est attaché.
Font { get; }Renvoie un objet qui représente les propriétés actuelles de formatage de la police.
IsAtEndOfParagraph { get; }Retoursvrai si le curseur est à la fin du paragraphe en cours.
IsAtEndOfStructuredDocumentTag { get; }Retoursvrai si le curseur est à la fin d’une balise de document structuré.
IsAtStartOfParagraph { get; }Retoursvrai si le curseur est au début du paragraphe en cours (pas de texte avant le curseur).
Italic { get; set; }True si la police est au format italique.
ListFormat { get; }Renvoie un objet qui représente les propriétés de formatage de liste actuelles.
PageSetup { get; }Renvoie un objet qui représente la mise en page actuelle et les propriétés de section.
ParagraphFormat { get; }Renvoie un objet qui représente les propriétés de formatage actuelles du paragraphe.
RowFormat { get; }Renvoie un objet qui représente les propriétés actuelles de formatage des lignes du tableau.
Underline { get; set; }Obtient/définit le type de soulignement pour la police actuelle.

Méthodes

NomLa description
DeleteRow(int, int)Supprime une ligne d’un tableau.
EndBookmark(string)Marque la position actuelle dans le document comme fin de signet.
EndColumnBookmark(string)Marque la position actuelle dans le document comme fin de signet de colonne. La position doit être dans une cellule du tableau.
EndEditableRange()Marque la position actuelle dans le document comme fin de plage modifiable.
EndEditableRange(EditableRangeStart)Marque la position actuelle dans le document comme fin de plage modifiable.
EndRow()Termine une ligne de tableau dans le document.
EndTable()Termine un tableau dans le document.
InsertBreak(BreakType)Insère un saut du type spécifié dans le document.
InsertCell()Insère une cellule de tableau dans le document.
InsertChart(ChartType, double, double)Insère un objet graphique dans le document et le redimensionne à la taille spécifiée.
InsertChart(ChartTypeRelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType)Insère un objet graphique dans le document et le redimensionne à la taille spécifiée.
InsertCheckBox(string, bool, int)Insère un champ de formulaire de case à cocher à la position actuelle.
InsertCheckBox(string, bool, bool, int)Insère un champ de formulaire de case à cocher à la position actuelle.
InsertComboBox(string, string[], int)Insère un champ de formulaire combobox à la position actuelle.
InsertDocument(DocumentImportFormatMode)Insère un document à la position du curseur.
InsertDocument(DocumentImportFormatModeImportFormatOptions)Insère un document à la position du curseur.
InsertField(string)Insère un champ Word dans un document et met à jour le résultat du champ.
InsertField(FieldType, bool)Insère un champ Word dans un document et met éventuellement à jour le résultat du champ.
InsertField(string, string)Insère un champ Word dans un document sans mettre à jour le résultat du champ.
InsertFootnote(FootnoteType, string)Insère une note de bas de page ou de fin dans le document.
InsertFootnote(FootnoteType, string, string)Insère une note de bas de page ou de fin dans le document.
InsertHorizontalRule()Insère une forme de règle horizontale dans le document.
InsertHtml(string)Insère une chaîne HTML dans le document.
InsertHtml(string, bool)Insère une chaîne HTML dans le document.
InsertHtml(string, HtmlInsertOptions)Insère une chaîne HTML dans le document. Permet de spécifier des options supplémentaires.
InsertHyperlink(string, string, bool)Insère un lien hypertexte dans le document.
InsertImage(byte[])Insère une image d’un tableau d’octets dans le document. L’image est insérée en ligne et à une échelle de 100 %.
InsertImage(Image)Insère une image à partir d’un .NETImage objet dans le document. L’image est insérée en ligne et à une échelle de 100 %.
InsertImage(Stream)Insère une image d’un flux dans le document. L’image est insérée en ligne et à une échelle de 100 %.
InsertImage(string)Insère une image à partir d’un fichier ou d’une URL dans le document. L’image est insérée en ligne et à une échelle de 100 %.
InsertImage(byte[], double, double)Insère une image en ligne à partir d’un tableau d’octets dans le document et la met à l’échelle à la taille spécifiée.
InsertImage(Image, double, double)Insère une image en ligne à partir d’un .NETImage dans le document et le redimensionne à la taille spécifiée.
InsertImage(Stream, double, double)Insère une image en ligne d’un flux dans le document et la redimensionne à la taille spécifiée.
InsertImage(string, double, double)Insère une image en ligne à partir d’un fichier ou d’une URL dans le document et la redimensionne à la taille spécifiée.
InsertImage(byte[], RelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType)Insère une image à partir d’un tableau d’octets à la position et à la taille spécifiées.
InsertImage(Image, RelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType)Insère une image à partir d’un .NETImageObjet à la position et à la taille spécifiées.
InsertImage(Stream, RelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType)Insère une image d’un flux à la position et à la taille spécifiées.
InsertImage(string, RelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType)Insère une image à partir d’un fichier ou d’une URL à la position et à la taille spécifiées.
InsertNode(Node)Insère un nœud avant le curseur.
InsertOleObject(Stream, string, bool, Stream)Insère un objet OLE incorporé à partir d’un flux dans le document.
InsertOleObject(string, bool, bool, Stream)Insère un objet OLE incorporé ou lié à partir d’un fichier dans le document. Détecte le type d’objet OLE à l’aide de l’extension de fichier.
InsertOleObject(string, string, bool, bool, Stream)Insère un objet OLE incorporé ou lié à partir d’un fichier dans le document. Détecte le type d’objet OLE à l’aide du paramètre progID donné.
InsertOleObjectAsIcon(Stream, string, string, string)Insère un objet OLE intégré sous forme d’icône d’un flux dans le document. Permet de spécifier le fichier d’icône et la légende. Détecte le type d’objet OLE à l’aide du paramètre progID donné.
InsertOleObjectAsIcon(string, bool, string, string)Insère un objet OLE intégré ou lié sous forme d’icône dans le document. Permet de spécifier le fichier d’icône et la légende. Détecte le type d’objet OLE à l’aide de l’extension de fichier.
InsertOleObjectAsIcon(string, string, bool, string, string)Insère un objet OLE intégré ou lié sous forme d’icône dans le document. Permet de spécifier le fichier d’icône et la légende. Détecte le type d’objet OLE à l’aide du paramètre progID donné.
InsertOnlineVideo(string, double, double)Insère un objet vidéo en ligne dans le document et le redimensionne à la taille spécifiée.
InsertOnlineVideo(string, string, byte[], double, double)Insère un objet vidéo en ligne dans le document et le redimensionne à la taille spécifiée.
InsertOnlineVideo(string, RelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType)Insère un objet vidéo en ligne dans le document et le redimensionne à la taille spécifiée.
InsertOnlineVideo(string, string, byte[], RelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType)Insère un objet vidéo en ligne dans le document et le redimensionne à la taille spécifiée.
InsertParagraph()Insère un saut de paragraphe dans le document.
InsertShape(ShapeType, double, double)Insère une forme en ligne avec le type et la taille spécifiés.
InsertShape(ShapeTypeRelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType)Insère une forme flottante avec une position, une taille et un type d’habillage de texte spécifiés.
InsertSignatureLine(SignatureLineOptions)Insère une ligne de signature à la position actuelle.
InsertSignatureLine(SignatureLineOptionsRelativeHorizontalPosition, double, RelativeVerticalPosition, double, WrapType)Insère une ligne de signature à la position spécifiée.
InsertStyleSeparator()Insère un séparateur de style dans le document.
InsertTableOfContents(string)Insère un champ TOC (table des matières) dans le document.
InsertTextInput(string, TextFormFieldType, string, string, int)Insère un champ de formulaire texte à la position actuelle.
MoveTo(Node)Déplace le curseur vers un nœud en ligne ou à la fin d’un paragraphe.
MoveToBookmark(string)Déplace le curseur vers un signet.
MoveToBookmark(string, bool, bool)Déplace le curseur vers un signet avec une plus grande précision.
MoveToCell(int, int, int, int)Déplace le curseur vers une cellule du tableau dans la section actuelle.
MoveToDocumentEnd()Déplace le curseur à la fin du document.
MoveToDocumentStart()Déplace le curseur au début du document.
MoveToField(Field, bool)Déplace le curseur vers un champ du document.
MoveToHeaderFooter(HeaderFooterType)Déplace le curseur au début d’un en-tête ou d’un pied de page dans la section actuelle.
MoveToMergeField(string)Déplace le curseur vers une position juste au-delà du champ de fusion spécifié et supprime le champ de fusion.
MoveToMergeField(string, bool, bool)Déplace le champ de fusion vers le champ de fusion spécifié.
MoveToParagraph(int, int)Déplace le curseur vers un paragraphe de la section actuelle.
MoveToSection(int)Déplace le curseur au début du corps dans une section spécifiée.
MoveToStructuredDocumentTag(int, int)Déplace le curseur vers une balise de document structuré dans la section actuelle.
MoveToStructuredDocumentTag(StructuredDocumentTag, int)Déplace le curseur vers la balise du document structuré.
PopFont()Récupère le formatage des caractères précédemment enregistré sur la pile.
PushFont()Enregistre le formatage actuel des caractères sur la pile.
StartBookmark(string)Marque la position actuelle dans le document comme début de signet.
StartColumnBookmark(string)Marque la position actuelle dans le document comme début de signet de colonne. La position doit être dans une cellule du tableau.
StartEditableRange()Marque la position actuelle dans le document comme début de plage modifiable.
StartTable()Démarre un tableau dans le document.
Write(string)Insère une chaîne dans le document à la position d’insertion actuelle.
Writeln()Insère un saut de paragraphe dans le document.
Writeln(string)Insère une chaîne et un saut de paragraphe dans le document.

Remarques

DocumentBuilder rend le processus de construction d’unDocument plus facile. Document est un objet composite constitué d’un arbre de nœuds et bien que l’insertion de nœuds content directement dans l’arborescence soit possible, cela nécessite une bonne compréhension de la structure arborescente. DocumentBuilder est une « façade » pour la structure complexe deDocument et permet d’insérer du contenu et du formatage rapidement et facilement.

Créer unDocumentBuilder et associez-le à unDocument.

LeDocumentBuilder a un curseur interne où le texte sera inséré lorsque vous appellerezWrite ,Writeln ,InsertBreak et d’autres méthodes. Vous pouvez naviguer dansDocumentBuilder curseur vers un autre emplacement dans un document à l’aide de diverses méthodes MoveToXXX.

Utilisez leFontpropriété pour spécifier le formatage des caractères qui s’appliquera à tout le texte inséré à partir de la position actuelle dans le document.

Utilisez leParagraphFormat propriété pour spécifier le formatage du paragraphe pour le current et tous les paragraphes qui seront insérés.

Utilisez lePageSetup propriété pour spécifier les propriétés de page et de section pour la section current et toutes les sections qui seront insérées.

Utilisez leCellFormat etRowFormat propriétés pour spécifier les propriétés de formatage pour les cellules et les lignes du tableau. Utilisateur leInsertCell et EndRow méthodes pour construire une table.

Noter queFont ,ParagraphFormat etPageSetup les propriétés sont mises à jour chaque fois que vous accédez à un autre endroit dans le document pour refléter les propriétés de formatage disponibles au nouvel emplacement.

Exemples

Montre comment utiliser un générateur de documents pour créer un tableau.

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Démarre le tableau, puis remplit la première ligne avec deux cellules.
builder.StartTable();
builder.InsertCell();
builder.Write("Row 1, Cell 1.");
builder.InsertCell();
builder.Write("Row 1, Cell 2.");

// Appelez la méthode "EndRow" du constructeur pour démarrer une nouvelle ligne.
builder.EndRow();
builder.InsertCell();
builder.Write("Row 2, Cell 1.");
builder.InsertCell();
builder.Write("Row 2, Cell 2.");
builder.EndTable();

doc.Save(ArtifactsDir + "DocumentBuilder.CreateTable.docx");

Montre comment créer des en-têtes et des pieds de page dans un document à l’aide de DocumentBuilder.

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Spécifie que nous voulons des en-têtes et pieds de page différents pour les premières pages, paires et impaires.
builder.PageSetup.DifferentFirstPageHeaderFooter = true;
builder.PageSetup.OddAndEvenPagesHeaderFooter = true;

// Créez les en-têtes, puis ajoutez trois pages au document pour afficher chaque type d'en-tête.
builder.MoveToHeaderFooter(HeaderFooterType.HeaderFirst);
builder.Write("Header for the first page");
builder.MoveToHeaderFooter(HeaderFooterType.HeaderEven);
builder.Write("Header for even pages");
builder.MoveToHeaderFooter(HeaderFooterType.HeaderPrimary);
builder.Write("Header for all other pages");

builder.MoveToSection(0);
builder.Writeln("Page1");
builder.InsertBreak(BreakType.PageBreak);
builder.Writeln("Page2");
builder.InsertBreak(BreakType.PageBreak);
builder.Writeln("Page3");

doc.Save(ArtifactsDir + "DocumentBuilder.HeadersAndFooters.docx");

Montre comment créer un tableau avec des bordures personnalisées.

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

builder.StartTable();

// Définition des options de formatage de tableau pour un générateur de documents
// les appliquera à chaque ligne et cellule que nous ajouterons avec.
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;

builder.CellFormat.ClearFormatting();
builder.CellFormat.Width = 150;
builder.CellFormat.VerticalAlignment = CellVerticalAlignment.Center;
builder.CellFormat.Shading.BackgroundPatternColor = Color.GreenYellow;
builder.CellFormat.WrapText = false;
builder.CellFormat.FitText = true;

builder.RowFormat.ClearFormatting();
builder.RowFormat.HeightRule = HeightRule.Exactly;
builder.RowFormat.Height = 50;
builder.RowFormat.Borders.LineStyle = LineStyle.Engrave3D;
builder.RowFormat.Borders.Color = Color.Orange;

builder.InsertCell();
builder.Write("Row 1, Col 1");

builder.InsertCell();
builder.Write("Row 1, Col 2");
builder.EndRow();

// Changer le formatage l'appliquera à la cellule actuelle,
// et toutes les nouvelles cellules que nous créons ensuite avec le constructeur.
// Cela n'affectera pas les cellules que nous avons ajoutées précédemment.
builder.CellFormat.Shading.ClearFormatting();

builder.InsertCell();
builder.Write("Row 2, Col 1");

builder.InsertCell();
builder.Write("Row 2, Col 2");

builder.EndRow();

// Augmente la hauteur de la ligne pour l'adapter au texte vertical.
builder.InsertCell();
builder.RowFormat.Height = 150;
builder.CellFormat.Orientation = TextOrientation.Upward;
builder.Write("Row 3, Col 1");

builder.InsertCell();
builder.CellFormat.Orientation = TextOrientation.Downward;
builder.Write("Row 3, Col 2");

builder.EndRow();
builder.EndTable();

doc.Save(ArtifactsDir + "DocumentBuilder.InsertTable.docx");

Voir également