DocumentBuilder

DocumentBuilder class

Bietet Methoden zum Einfügen von Text, Bildern und anderen Inhalten sowie zum Festlegen von Schriftarten, Absatz- und Abschnittsformatierungen.

Um mehr zu erfahren, besuchen Sie dieÜbersicht über den Document Builder Dokumentationsartikel.

public class DocumentBuilder

Konstrukteure

NameBeschreibung
DocumentBuilder()Initialisiert eine neue Instanz dieser Klasse.
DocumentBuilder(Document)Initialisiert eine neue Instanz dieser Klasse.

Eigenschaften

NameBeschreibung
Bold { get; set; }True, wenn die Schriftart fett formatiert ist.
CellFormat { get; }Gibt ein Objekt zurück, das die aktuellen Formatierungseigenschaften der Tabellenzelle darstellt.
CurrentNode { get; }Ruft den Knoten ab, der aktuell in diesem DocumentBuilder ausgewählt ist.
CurrentParagraph { get; }Ruft den Absatz ab, der aktuell darin ausgewählt istDocumentBuilder .
CurrentSection { get; }Ruft den Abschnitt ab, der aktuell darin ausgewählt istDocumentBuilder .
CurrentStory { get; }Ruft die aktuell ausgewählte Story abDocumentBuilder .
CurrentStructuredDocumentTag { get; }Ruft das strukturierte Dokument-Tag ab, das derzeit hier ausgewählt istDocumentBuilder .
Document { get; set; }Ruft das ab oder legt es festDocumentObjekt, an das dieses Objekt angehängt ist.
Font { get; }Gibt ein Objekt zurück, das die aktuellen Schriftartformatierungseigenschaften darstellt.
IsAtEndOfParagraph { get; }Gibt zurückWAHR wenn sich der Cursor am Ende des aktuellen Absatzes befindet.
IsAtEndOfStructuredDocumentTag { get; }Gibt zurückWAHR wenn sich der Cursor am Ende eines strukturierten Dokument-Tags befindet.
IsAtStartOfParagraph { get; }Gibt zurückWAHR wenn sich der Cursor am Anfang des aktuellen Absatzes befindet (kein Text vor dem Cursor).
Italic { get; set; }True, wenn die Schriftart kursiv formatiert ist.
ListFormat { get; }Gibt ein Objekt zurück, das die aktuellen Listenformatierungseigenschaften darstellt.
PageSetup { get; }Gibt ein Objekt zurück, das die aktuellen Seiteneinstellungen und Abschnittseigenschaften darstellt.
ParagraphFormat { get; }Gibt ein Objekt zurück, das die aktuellen Absatzformatierungseigenschaften darstellt.
RowFormat { get; }Gibt ein Objekt zurück, das die Formatierungseigenschaften der aktuellen Tabellenzeile darstellt.
Underline { get; set; }Ruft den Unterstreichungstyp für die aktuelle Schriftart ab bzw. legt diesen fest.

Methoden

NameBeschreibung
DeleteRow(int, int)Löscht eine Zeile aus einer Tabelle.
EndBookmark(string)Markiert die aktuelle Position im Dokument als Lesezeichenende.
EndColumnBookmark(string)Markiert die aktuelle Position im Dokument als Spalten-Lesezeichenende. Die Position muss in einer Tabellenzelle liegen.
EndEditableRange()Markiert die aktuelle Position im Dokument als bearbeitbares Bereichsende.
EndEditableRange(EditableRangeStart)Markiert die aktuelle Position im Dokument als bearbeitbares Bereichsende.
EndRow()Beendet eine Tabellenzeile im Dokument.
EndTable()Beendet eine Tabelle im Dokument.
InsertBreak(BreakType)Fügt einen Umbruch des angegebenen Typs in das Dokument ein.
InsertCell()Fügt eine Tabellenzelle in das Dokument ein.
InsertChart(ChartType, double, double)Fügt ein Diagrammobjekt in das Dokument ein und skaliert es auf die angegebene Größe.
InsertChart(ChartTypeRelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType)Fügt ein Diagrammobjekt in das Dokument ein und skaliert es auf die angegebene Größe.
InsertCheckBox(string, bool, int)Fügt ein Kontrollkästchen-Formularfeld an der aktuellen Position ein.
InsertCheckBox(string, bool, bool, int)Fügt ein Kontrollkästchen-Formularfeld an der aktuellen Position ein.
InsertComboBox(string, string[], int)Fügt ein Combobox-Formularfeld an der aktuellen Position ein.
InsertDocument(DocumentImportFormatMode)Fügt ein Dokument an der Cursorposition ein.
InsertDocument(DocumentImportFormatModeImportFormatOptions)Fügt ein Dokument an der Cursorposition ein.
InsertField(string)Fügt ein Word-Feld in ein Dokument ein und aktualisiert das Feldergebnis.
InsertField(FieldType, bool)Fügt ein Word-Feld in ein Dokument ein und aktualisiert optional das Feldergebnis.
InsertField(string, string)Fügt ein Word-Feld in ein Dokument ein, ohne das Feldergebnis zu aktualisieren.
InsertFootnote(FootnoteType, string)Fügt eine Fußnote oder Endnote in das Dokument ein.
InsertFootnote(FootnoteType, string, string)Fügt eine Fußnote oder Endnote in das Dokument ein.
InsertHorizontalRule()Fügt eine horizontale Regelform in das Dokument ein.
InsertHtml(string)Fügt einen HTML-String in das Dokument ein.
InsertHtml(string, bool)Fügt einen HTML-String in das Dokument ein.
InsertHtml(string, HtmlInsertOptions)Fügt eine HTML-Zeichenfolge in das Dokument ein. Ermöglicht die Angabe zusätzlicher Optionen.
InsertHyperlink(string, string, bool)Fügt einen Hyperlink in das Dokument ein.
InsertImage(byte[])Fügt ein Bild aus einem Byte-Array in das Dokument ein. Das Bild wird inline und im Maßstab 100 % eingefügt.
InsertImage(Image)Fügt ein Bild aus einem .NET einImage -Objekt in das Dokument einfügen. Das Bild wird inline und im Maßstab 100 % eingefügt.
InsertImage(Stream)Fügt ein Bild aus einem Stream in das Dokument ein. Das Bild wird inline und im Maßstab 100 % eingefügt.
InsertImage(string)Fügt ein Bild aus einer Datei oder URL in das Dokument ein. Das Bild wird inline und im Maßstab 100 % eingefügt.
InsertImage(byte[], double, double)Fügt ein Inline-Bild aus einem Byte-Array in das Dokument ein und skaliert es auf die angegebene Größe.
InsertImage(Image, double, double)Fügt ein Inline-Bild aus einem .NET einImage -Objekt in das Dokument ein und skaliert es auf die angegebene Größe.
InsertImage(Stream, double, double)Fügt ein Inline-Bild aus einem Stream in das Dokument ein und skaliert es auf die angegebene Größe.
InsertImage(string, double, double)Fügt ein Inline-Bild aus einer Datei oder URL in das Dokument ein und skaliert es auf die angegebene Größe.
InsertImage(byte[], RelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType)Fügt ein Bild aus einem Byte-Array an der angegebenen Position und Größe ein.
InsertImage(Image, RelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType)Fügt ein Bild aus einem .NET einImage Objekt an der angegebenen Position und Größe.
InsertImage(Stream, RelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType)Fügt ein Bild aus einem Stream an der angegebenen Position und Größe ein.
InsertImage(string, RelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType)Fügt ein Bild aus einer Datei oder URL an der angegebenen Position und Größe ein.
InsertNode(Node)Fügt einen Knoten vor dem Cursor ein.
InsertOleObject(Stream, string, bool, Stream)Fügt ein eingebettetes OLE-Objekt aus einem Stream in das Dokument ein.
InsertOleObject(string, bool, bool, Stream)Fügt ein eingebettetes oder verknüpftes OLE-Objekt aus einer Datei in das Dokument ein. Erkennt den OLE-Objekttyp anhand der Dateierweiterung.
InsertOleObject(string, string, bool, bool, Stream)Fügt ein eingebettetes oder verknüpftes OLE-Objekt aus einer Datei in das Dokument ein. Erkennt den OLE-Objekttyp mithilfe des angegebenen progID-Parameters.
InsertOleObjectAsIcon(Stream, string, string, string)Fügt ein eingebettetes OLE-Objekt als Symbol aus einem Stream in das Dokument ein. Ermöglicht die Angabe einer Symboldatei und einer Beschriftung. Erkennt den OLE-Objekttyp mithilfe des angegebenen progID-Parameters.
InsertOleObjectAsIcon(string, bool, string, string)Fügt ein eingebettetes oder verknüpftes OLE-Objekt als Symbol in das Dokument ein. Ermöglicht die Angabe einer Symboldatei und einer Beschriftung. Erkennt den OLE-Objekttyp anhand der Dateierweiterung.
InsertOleObjectAsIcon(string, string, bool, string, string)Fügt ein eingebettetes oder verknüpftes OLE-Objekt als Symbol in das Dokument ein. Ermöglicht die Angabe einer Symboldatei und einer Beschriftung. Erkennt den OLE-Objekttyp mithilfe des angegebenen progID-Parameters.
InsertOnlineVideo(string, double, double)Fügt ein Online-Videoobjekt in das Dokument ein und skaliert es auf die angegebene Größe.
InsertOnlineVideo(string, string, byte[], double, double)Fügt ein Online-Videoobjekt in das Dokument ein und skaliert es auf die angegebene Größe.
InsertOnlineVideo(string, RelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType)Fügt ein Online-Videoobjekt in das Dokument ein und skaliert es auf die angegebene Größe.
InsertOnlineVideo(string, string, byte[], RelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType)Fügt ein Online-Videoobjekt in das Dokument ein und skaliert es auf die angegebene Größe.
InsertParagraph()Fügt einen Absatzumbruch in das Dokument ein.
InsertShape(ShapeType, double, double)Fügt eine Inline-Form mit dem angegebenen Typ und der angegebenen Größe ein.
InsertShape(ShapeTypeRelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType)Fügt eine frei schwebende Form mit angegebener Position, Größe und Textumbruchtyp ein.
InsertSignatureLine(SignatureLineOptions)Fügt eine Signaturzeile an der aktuellen Position ein.
InsertSignatureLine(SignatureLineOptionsRelativeHorizontalPosition, double, RelativeVerticalPosition, double, WrapType)Fügt eine Signaturzeile an der angegebenen Position ein.
InsertStyleSeparator()Fügt Stiltrennzeichen in das Dokument ein.
InsertTableOfContents(string)Fügt ein TOC-Feld (Inhaltsverzeichnis) in das Dokument ein.
InsertTextInput(string, TextFormFieldType, string, string, int)Fügt ein Textformularfeld an der aktuellen Position ein.
MoveTo(Node)Bewegt den Cursor zu einem Inline-Knoten oder zum Ende eines Absatzes.
MoveToBookmark(string)Bewegt den Cursor zu einem Lesezeichen.
MoveToBookmark(string, bool, bool)Bewegt den Cursor mit größerer Präzision zu einem Lesezeichen.
MoveToCell(int, int, int, int)Bewegt den Cursor zu einer Tabellenzelle im aktuellen Abschnitt.
MoveToDocumentEnd()Bewegt den Cursor an das Ende des Dokuments.
MoveToDocumentStart()Bewegt den Cursor an den Anfang des Dokuments.
MoveToField(Field, bool)Bewegt den Cursor auf ein Feld im Dokument.
MoveToHeaderFooter(HeaderFooterType)Bewegt den Cursor an den Anfang einer Kopf- oder Fußzeile im aktuellen Abschnitt.
MoveToMergeField(string)Bewegt den Cursor an eine Position direkt hinter dem angegebenen Zusammenführungsfeld und entfernt das Zusammenführungsfeld.
MoveToMergeField(string, bool, bool)Verschiebt das Zusammenführungsfeld in das angegebene Zusammenführungsfeld.
MoveToParagraph(int, int)Bewegt den Cursor zu einem Absatz im aktuellen Abschnitt.
MoveToSection(int)Bewegt den Cursor an den Anfang des Körpers in einem angegebenen Abschnitt.
MoveToStructuredDocumentTag(int, int)Bewegt den Cursor zu einem strukturierten Dokument-Tag im aktuellen Abschnitt.
MoveToStructuredDocumentTag(StructuredDocumentTag, int)Bewegt den Cursor zum Tag des strukturierten Dokuments.
PopFont()Ruft die zuvor auf dem Stapel gespeicherte Zeichenformatierung ab.
PushFont()Speichert die aktuelle Zeichenformatierung auf dem Stapel.
StartBookmark(string)Markiert die aktuelle Position im Dokument als Lesezeichen start.
StartColumnBookmark(string)Markiert die aktuelle Position im Dokument als Spaltenanfang eines Lesezeichens. Die Position muss in einer Tabellenzelle liegen.
StartEditableRange()Markiert die aktuelle Position im Dokument als bearbeitbaren Bereichsstart.
StartTable()Startet eine Tabelle im Dokument.
Write(string)Fügt an der aktuellen Einfügeposition eine Zeichenfolge in das Dokument ein.
Writeln()Fügt einen Absatzumbruch in das Dokument ein.
Writeln(string)Fügt eine Zeichenfolge und einen Absatzumbruch in das Dokument ein.

Bemerkungen

DocumentBuilder macht den Prozess des Aufbaus einesDocument einfacher. Document ist ein zusammengesetztes Objekt, das aus einem Knotenbaum besteht. Das direkte Einfügen von Content -Knoten in den Baum ist zwar möglich, erfordert jedoch ein gutes Verständnis der Baumstruktur. DocumentBuilder ist eine „Fassade“ für die komplexe Struktur vonDocument und erlaubt das schnelle und einfache Einfügen von Inhalten und Formatierungen.

Ein … kreierenDocumentBuilder und assoziiere es mit aDocument.

DerDocumentBuilder verfügt über einen internen Cursor, in den der Text eingefügt wird , wenn Sie ihn aufrufenWrite ,Writeln ,InsertBreak und andere Methoden. Sie können durch navigierenDocumentBuilder Bewegen Sie den Cursor mithilfe verschiedener MoveToXXX-Methoden an eine andere Position in einem Dokument.

Benutzen Sie dieFont-Eigenschaft, um die Zeichenformatierung anzugeben, die für den gesamten Text gilt, der ab der aktuellen Position im Dokument eingefügt wird.

Benutzen Sie dieParagraphFormat -Eigenschaft, um die Absatzformatierung für current und alle einzufügenden Absätze anzugeben.

Benutzen Sie diePageSetup -Eigenschaft, um Seiten- und Abschnittseigenschaften für den Abschnitt „current “ und alle Abschnitte anzugeben, die eingefügt werden.

Benutzen Sie dieCellFormat UndRowFormat Eigenschaften zum Angeben Formatierungseigenschaften für Tabellenzellen und -zeilen. Benutzer dieInsertCell and EndRow Methoden zum Erstellen einer Tabelle.

Beachten Sie, dassFont ,ParagraphFormat UndPageSetup Eigenschaften werden immer dann aktualisiert, wenn Sie zu einer anderen Stelle im Dokument navigieren, um die an der neuen Stelle verfügbaren Formatierungseigenschaften widerzuspiegeln.

Beispiele

Zeigt, wie Sie mit einem Document Builder eine Tabelle erstellen.

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

// Starten Sie die Tabelle und füllen Sie dann die erste Zeile mit zwei Zellen.
builder.StartTable();
builder.InsertCell();
builder.Write("Row 1, Cell 1.");
builder.InsertCell();
builder.Write("Row 1, Cell 2.");

// Rufen Sie die „EndRow“-Methode des Builders auf, um eine neue Zeile zu beginnen.
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");

Zeigt, wie man mit DocumentBuilder Kopf- und Fußzeilen in einem Dokument erstellt.

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

// Geben Sie an, dass wir unterschiedliche Kopf- und Fußzeilen für die erste, gerade und ungerade Seite wünschen.
builder.PageSetup.DifferentFirstPageHeaderFooter = true;
builder.PageSetup.OddAndEvenPagesHeaderFooter = true;

// Erstellen Sie die Kopfzeilen und fügen Sie dann drei Seiten zum Dokument hinzu, um jeden Kopfzeilentyp anzuzeigen.
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");

Zeigt, wie man eine Tabelle mit benutzerdefinierten Rändern erstellt.

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

builder.StartTable();

// Festlegen von Tabellenformatierungsoptionen für einen Dokumentersteller
// wendet sie auf jede Zeile und Zelle an, die wir damit hinzufügen.
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();

// Wenn Sie die Formatierung ändern, wird sie auf die aktuelle Zelle angewendet.
// und alle neuen Zellen, die wir anschließend mit dem Builder erstellen.
// Dies hat keine Auswirkungen auf die Zellen, die wir zuvor hinzugefügt haben.
builder.CellFormat.Shading.ClearFormatting();

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

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

builder.EndRow();

// Zeilenhöhe erhöhen, um sie an den vertikalen Text anzupassen.
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");

Siehe auch