DocumentBuilder

DocumentBuilder class

Proporciona métodos para insertar texto, imágenes y otro contenido, especificar fuente, párrafo y formato de sección.

Para obtener más información, visite elDescripción general del generador de documentos Artículo de documentación.

public class DocumentBuilder

Constructores

NombreDescripción
DocumentBuilder()Inicializa una nueva instancia de esta clase.
DocumentBuilder(Document)Inicializa una nueva instancia de esta clase.
DocumentBuilder(DocumentBuilderOptions)Inicializa una nueva instancia de esta clase.
DocumentBuilder(DocumentDocumentBuilderOptions)Inicializa una nueva instancia de esta clase.

Propiedades

NombreDescripción
Bold { get; set; }Verdadero si la fuente está formateada en negrita.
CellFormat { get; }Devuelve un objeto que representa las propiedades de formato de celda de la tabla actual.
CurrentNode { get; }Obtiene el nodo que está seleccionado actualmente en este DocumentBuilder.
CurrentParagraph { get; }Obtiene el párrafo que está seleccionado actualmente en esteDocumentBuilder .
CurrentSection { get; }Obtiene la sección que está seleccionada actualmente en esteDocumentBuilder .
CurrentStory { get; }Obtiene la historia que está seleccionada actualmente en esteDocumentBuilder .
CurrentStructuredDocumentTag { get; }Obtiene la etiqueta del documento estructurado que está seleccionada actualmente en esteDocumentBuilder .
Document { get; set; }Obtiene o establece elDocument objeto al que está adjunto este objeto.
Font { get; }Devuelve un objeto que representa las propiedades de formato de fuente actuales.
IsAtEndOfParagraph { get; }Devuelveverdadero si el cursor está al final del párrafo actual.
IsAtEndOfStructuredDocumentTag { get; }Devuelveverdadero si el cursor está al final de una etiqueta de documento estructurado.
IsAtStartOfParagraph { get; }Devuelveverdaderosi el cursor está al principio del párrafo actual (no hay texto antes del cursor).
Italic { get; set; }Verdadero si la fuente está formateada como cursiva.
ListFormat { get; }Devuelve un objeto que representa las propiedades de formato de lista actuales.
PageSetup { get; }Devuelve un objeto que representa la configuración de la página actual y las propiedades de la sección.
ParagraphFormat { get; }Devuelve un objeto que representa las propiedades de formato de párrafo actuales.
RowFormat { get; }Devuelve un objeto que representa las propiedades de formato de fila de la tabla actual.
Underline { get; set; }Obtiene/establece el tipo de subrayado para la fuente actual.

Métodos

NombreDescripción
DeleteRow(int, int)Elimina una fila de una tabla.
EndBookmark(string)Marca la posición actual en el documento como un marcador final.
EndColumnBookmark(string)Marca la posición actual en el documento como final de marcador de columna. La posición debe estar en una celda de tabla.
EndEditableRange()Marca la posición actual en el documento como un final de rango editable.
EndEditableRange(EditableRangeStart)Marca la posición actual en el documento como un final de rango editable.
EndRow()Finaliza una fila de la tabla en el documento.
EndTable()Finaliza una tabla en el documento.
InsertBreak(BreakType)Inserta un salto del tipo especificado en el documento.
InsertCell()Inserta una celda de tabla en el documento.
InsertChart(ChartType, double, double)Inserta un objeto de gráfico en el documento y lo escala al tamaño especificado.
InsertChart(ChartType, double, double, ChartStyle)Inserta un objeto de gráfico en el documento y lo escala al tamaño especificado.
InsertChart(ChartTypeRelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType)Inserta un objeto de gráfico en el documento y lo escala al tamaño especificado.
InsertChart(ChartTypeRelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapTypeChartStyle)Inserta un objeto de gráfico en el documento y lo escala al tamaño especificado.
InsertCheckBox(string, bool, int)Inserta un campo de formulario de casilla de verificación en la posición actual.
InsertCheckBox(string, bool, bool, int)Inserta un campo de formulario de casilla de verificación en la posición actual.
InsertComboBox(string, string[], int)Inserta un campo de formulario de cuadro combinado en la posición actual.
InsertDocument(DocumentImportFormatMode)Inserta un documento en la posición del cursor.
InsertDocument(DocumentImportFormatModeImportFormatOptions)Inserta un documento en la posición del cursor.
InsertDocumentInline(DocumentImportFormatModeImportFormatOptions)Inserta un documento en línea en la posición del cursor.
InsertField(string)Inserta un campo de Word en un documento y actualiza el resultado del campo.
InsertField(FieldType, bool)Inserta un campo de Word en un documento y, opcionalmente, actualiza el resultado del campo.
InsertField(string, string)Inserta un campo de Word en un documento sin actualizar el resultado del campo.
InsertFootnote(FootnoteType, string)Inserta una nota al pie o una nota final en el documento.
InsertFootnote(FootnoteType, string, string)Inserta una nota al pie o una nota final en el documento.
InsertForms2OleControl(Forms2OleControl)InsercionesForms2OleControl objeto en la posición actual.
InsertGroupShape(params ShapeBase[])Agrupa las formas pasadas como parámetro en un nuevo nodo GroupShape que se inserta en la posición actual.
InsertGroupShape(double, double, double, double, params ShapeBase[])Agrupa las formas pasadas como parámetro en un nuevo nodo GroupShape del tamaño especificado que se inserta en la posición especificada.
InsertHorizontalRule()Inserta una forma de regla horizontal en el documento.
InsertHtml(string)Inserta una cadena HTML en el documento.
InsertHtml(string, bool)Inserta una cadena HTML en el documento.
InsertHtml(string, HtmlInsertOptions)Inserta una cadena HTML en el documento. Permite especificar opciones adicionales.
InsertHyperlink(string, string, bool)Inserta un hipervínculo en el documento.
InsertImage(byte[])Inserta una imagen de una matriz de bytes en el documento. La imagen se inserta en línea y a una escala del 100%.
InsertImage(Image)Inserta una imagen desde un .NETImage Objeto en el documento. La imagen se inserta en línea y a escala del 100 %.
InsertImage(Stream)Inserta una imagen de una secuencia en el documento. La imagen se inserta en línea y a una escala del 100%.
InsertImage(string)Inserta una imagen desde un archivo o URL en el documento. La imagen se inserta en línea y a una escala del 100%.
InsertImage(byte[], double, double)Inserta una imagen en línea desde una matriz de bytes en el documento y la escala al tamaño especificado.
InsertImage(Image, double, double)Inserta una imagen en línea desde un .NETImage objeto en el documento y lo escala al tamaño especificado.
InsertImage(Stream, double, double)Inserta una imagen en línea desde una secuencia en el documento y la escala al tamaño especificado.
InsertImage(string, double, double)Inserta una imagen en línea desde un archivo o URL en el documento y la escala al tamaño especificado.
InsertImage(byte[], RelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType)Inserta una imagen de una matriz de bytes en la posición y tamaño especificados.
InsertImage(Image, RelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType)Inserta una imagen desde un .NETImage objeto en la posición y tamaño especificados.
InsertImage(Stream, RelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType)Inserta una imagen desde una secuencia en la posición y tamaño especificados.
InsertImage(string, RelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType)Inserta una imagen desde un archivo o URL en la posición y tamaño especificados.
InsertNode(Node)Inserta un nodo antes del cursor.
InsertOleObject(Stream, string, bool, Stream)Inserta un objeto OLE incrustado desde una secuencia en el documento.
InsertOleObject(string, bool, bool, Stream)Inserta un objeto OLE incrustado o vinculado desde un archivo en el documento. Detecta el tipo de objeto OLE mediante la extensión del archivo.
InsertOleObject(string, string, bool, bool, Stream)Inserta un objeto OLE incrustado o vinculado desde un archivo en el documento. Detecta el tipo de objeto OLE mediante el parámetro progID especificado.
InsertOleObjectAsIcon(Stream, string, string, string)Inserta un objeto OLE incrustado como icono desde una secuencia en el documento. Permite especificar el archivo y el título del icono. Detecta el tipo de objeto OLE mediante el parámetro progID especificado.
InsertOleObjectAsIcon(string, bool, string, string)Inserta un objeto OLE incrustado o vinculado como icono en el documento. Permite especificar el archivo y el título del icono. Detecta el tipo de objeto OLE mediante la extensión del archivo.
InsertOleObjectAsIcon(string, string, bool, string, string)Inserta un objeto OLE incrustado o vinculado como icono en el documento. Permite especificar el archivo y el título del icono. Detecta el tipo de objeto OLE mediante el parámetro progID especificado.
InsertOnlineVideo(string, double, double)Inserta un objeto de vídeo en línea en el documento y lo escala al tamaño especificado.
InsertOnlineVideo(string, string, byte[], double, double)Inserta un objeto de vídeo en línea en el documento y lo escala al tamaño especificado.
InsertOnlineVideo(string, RelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType)Inserta un objeto de vídeo en línea en el documento y lo escala al tamaño especificado.
InsertOnlineVideo(string, string, byte[], RelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType)Inserta un objeto de vídeo en línea en el documento y lo escala al tamaño especificado.
InsertParagraph()Inserta un salto de párrafo en el documento.
InsertShape(ShapeType, double, double)Inserta una forma en línea con el tipo y tamaño especificados.
InsertShape(ShapeTypeRelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType)Inserta una forma flotante con la posición, el tamaño y el tipo de ajuste de texto especificados.
InsertSignatureLine(SignatureLineOptions)Inserta una línea de firma en la posición actual.
InsertSignatureLine(SignatureLineOptionsRelativeHorizontalPosition, double, RelativeVerticalPosition, double, WrapType)Inserta una línea de firma en la posición especificada.
InsertStructuredDocumentTag(SdtType)Inserta unStructuredDocumentTag en el documento.
InsertStyleSeparator()Inserta un separador de estilo en el documento.
InsertTableOfContents(string)Inserta un campo TOC (tabla de contenidos) en el documento.
InsertTextInput(string, TextFormFieldType, string, string, int)Inserta un campo de formulario de texto en la posición actual.
MoveTo(Node)Mueve el cursor a un nodo en línea o al final de un párrafo.
MoveToBookmark(string)Mueve el cursor a un marcador.
MoveToBookmark(string, bool, bool)Mueve el cursor a un marcador con mayor precisión.
MoveToCell(int, int, int, int)Mueve el cursor a una celda de la tabla en la sección actual.
MoveToDocumentEnd()Mueve el cursor al final del documento.
MoveToDocumentStart()Mueve el cursor al principio del documento.
MoveToField(Field, bool)Mueve el cursor a un campo en el documento.
MoveToHeaderFooter(HeaderFooterType)Mueve el cursor al comienzo de un encabezado o pie de página en la sección actual.
MoveToMergeField(string)Mueve el cursor a una posición justo más allá del campo de combinación especificado y elimina el campo de combinación.
MoveToMergeField(string, bool, bool)Mueve el campo de combinación al campo de combinación especificado.
MoveToParagraph(int, int)Mueve el cursor a un párrafo en la sección actual.
MoveToSection(int)Mueve el cursor al principio del cuerpo en una sección especificada.
MoveToStructuredDocumentTag(int, int)Mueve el cursor a una etiqueta de documento estructurado en la sección actual.
MoveToStructuredDocumentTag(StructuredDocumentTag, int)Mueve el cursor a la etiqueta del documento estructurado.
PopFont()Recupera el formato de carácter previamente guardado en la pila.
PushFont()Guarda el formato de carácter actual en la pila.
StartBookmark(string)Marca la posición actual en el documento como inicio de marcador.
StartColumnBookmark(string)Marca la posición actual en el documento como inicio de marcador de columna. La posición debe estar en una celda de tabla.
StartEditableRange()Marca la posición actual en el documento como inicio de rango editable.
StartTable()Inicia una tabla en el documento.
Write(string)Inserta una cadena en el documento en la posición de inserción actual.
Writeln()Inserta un salto de párrafo en el documento.
Writeln(string)Inserta una cadena y un salto de párrafo en el documento.

Observaciones

DocumentBuilder hace que el proceso de construcción de unaDocument más fácil. Document es un objeto compuesto que consiste en un árbol de nodos y, si bien es posible insertar nodos content directamente en el árbol, se requiere una buena comprensión de la estructura del árbol. DocumentBuilder es una “fachada” para la compleja estructura deDocument y permite a insertar contenido y formato de forma rápida y sencilla.

Crear unaDocumentBuilder y asociarlo con unDocument.

ElDocumentBuilder tiene un cursor interno donde se insertará el texto cuando llamesWrite ,Writeln ,InsertBreak y otros métodos. Puedes navegar por elDocumentBuilder cursor a una ubicación diferente en un documento usando varios métodos MoveToXXX.

Utilice elFont propiedad para especificar el formato de caracteres que se aplicará a todo el texto insertado desde la posición actual en el documento en adelante.

Utilice elParagraphFormat propiedad para especificar el formato de párrafo para current y todos los párrafos que se insertarán.

Utilice elPageSetup propiedad para especificar las propiedades de página y sección para la sección current y todas las secciones que se insertarán.

Utilice elCellFormat yRowFormat Propiedades para especificar las propiedades de formato x000d_ para celdas y filas de la tabla. UtiliceInsertCell y EndRow métodos para construir una tabla.

Tenga en cuenta queFont ,ParagraphFormat yPageSetup Las propiedades se actualizan cada vez que navega a un lugar diferente en el documento para reflejar las propiedades de formato disponibles en la nueva ubicación.

Ejemplos

Muestra cómo utilizar un generador de documentos para crear una tabla.

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

// Inicie la tabla y luego rellene la primera fila con dos celdas.
builder.StartTable();
builder.InsertCell();
builder.Write("Row 1, Cell 1.");
builder.InsertCell();
builder.Write("Row 1, Cell 2.");

// Llame al método "EndRow" del constructor para comenzar una nueva fila.
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");

Muestra cómo crear encabezados y pies de página en un documento utilizando DocumentBuilder.

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

// Especificamos que queremos encabezados y pies de página diferentes para la primera página, páginas pares e impares.
builder.PageSetup.DifferentFirstPageHeaderFooter = true;
builder.PageSetup.OddAndEvenPagesHeaderFooter = true;

// Cree los encabezados y luego agregue tres páginas al documento para mostrar cada tipo de encabezado.
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");

Muestra cómo crear una tabla con bordes personalizados.

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

builder.StartTable();

// Configuración de opciones de formato de tabla para un generador de documentos
// los aplicará a cada fila y celda que agreguemos.
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();

//Cambiar el formato se aplicará a la celda actual,
// y cualquier celda nueva que creemos con el constructor posteriormente.
//Esto no afectará las celdas que hemos agregado previamente.
builder.CellFormat.Shading.ClearFormatting();

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

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

builder.EndRow();

// Aumenta la altura de la fila para que se ajuste al texto 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");

Ver también