DocumentBuilder

DocumentBuilder class

Proporciona métodos para insertar texto, imágenes y otro contenido, especificar formato de fuente, párrafo y 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.

Propiedades

NombreDescripción
Bold { get; set; }Verdadero si la fuente tiene el formato negrita.
CellFormat { get; }Devuelve un objeto que representa las propiedades de formato de celda de la tabla actual.
CurrentNode { get; }Obtiene el nodo actualmente seleccionado en este DocumentBuilder.
CurrentParagraph { get; }Obtiene el párrafo actualmente seleccionado en esteDocumentBuilder .
CurrentSection { get; }Obtiene la sección actualmente seleccionada en esteDocumentBuilder .
CurrentStory { get; }Obtiene la historia actualmente seleccionada en esteDocumentBuilder .
CurrentStructuredDocumentTag { get; }Obtiene la etiqueta del documento estructurado que está seleccionado actualmente en esteDocumentBuilder .
Document { get; set; }Obtiene o establece elDocumentobjeto al que está adjunto este objeto.
Font { get; }Devuelve un objeto que representa las propiedades de formato de fuente actuales.
IsAtEndOfParagraph { get; }Devolucionesverdadero si el cursor está al final del párrafo actual.
IsAtEndOfStructuredDocumentTag { get; }Devolucionesverdadero si el cursor está al final de una etiqueta de documento estructurado.
IsAtStartOfParagraph { get; }Devolucionesverdadero si el cursor está al principio del párrafo actual (no hay texto antes del cursor).
Italic { get; set; }Verdadero si la fuente tiene el formato de cursiva.
ListFormat { get; }Devuelve un objeto que representa las propiedades de formato de la lista actual.
PageSetup { get; }Devuelve un objeto que representa la configuración de página actual y las propiedades de la sección.
ParagraphFormat { get; }Devuelve un objeto que representa las propiedades de formato del párrafo actual.
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 final del marcador.
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 la 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 una ruptura 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(ChartTypeRelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType)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.
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.
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 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 escala del 100%.
InsertImage(string)Inserta una imagen de un archivo o URL en el documento. La imagen se inserta en línea y a escala del 100%.
InsertImage(byte[], double, double)Inserta una imagen en línea de 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 .NETImage objeto en el documento y lo escala al tamaño especificado.
InsertImage(Stream, double, double)Inserta una imagen en línea de una secuencia en el documento y la escala al tamaño especificado.
InsertImage(string, double, double)Inserta una imagen en línea de 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 el 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 de una secuencia en la posición y el tamaño especificados.
InsertImage(string, RelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType)Inserta una imagen de 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 de 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 usando la extensión de 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 utilizando el parámetro progID dado.
InsertOleObjectAsIcon(Stream, string, string, string)Inserta un objeto OLE incrustado como icono de una secuencia en el documento. Permite especificar el archivo de icono y el título. Detecta el tipo de objeto OLE utilizando el parámetro progID dado.
InsertOleObjectAsIcon(string, bool, string, string)Inserta un objeto OLE incrustado o vinculado como icono en el documento. Permite especificar el archivo de icono y el título. Detecta el tipo de objeto OLE usando la extensión de archivo.
InsertOleObjectAsIcon(string, string, bool, string, string)Inserta un objeto OLE incrustado o vinculado como icono en el documento. Permite especificar el archivo de icono y el título. Detecta el tipo de objeto OLE utilizando el parámetro progID dado.
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 una posición, tamaño y 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.
InsertStyleSeparator()Inserta un separador de estilo en el documento.
InsertTableOfContents(string)Inserta un campo TOC (tabla de contenido) 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 del documento.
MoveToHeaderFooter(HeaderFooterType)Mueve el cursor al principio 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 caracteres previamente guardado en la pila.
PushFont()Guarda el formato de caracteres 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 la tabla.
StartEditableRange()Marca la posición actual en el documento como un 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 unDocument más fácil. Document es un objeto compuesto que consta de un árbol de nodos y, si bien es posible insertar content nodos directamente en el árbol, 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 formatear de forma rápida y sencilla.

Crear unDocumentBuilder 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.

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

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

Utilizar 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.

Utilizar elCellFormat yRowFormat properties para especificar propiedades de formato para celdas y filas de la tabla. Usuario elInsertCell 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, luego complete 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 iniciar 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 usando DocumentBuilder.

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

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

// Cree los encabezados, 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();

// Configurar opciones de formato de tabla para un creador de documentos
// los aplicará a cada fila y celda que agreguemos con ella.
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 lo aplicará a la celda actual,
// y cualquier celda nueva que creemos con el constructor posteriormente.
// Esto no afectará a las celdas que hayamos añadido anteriormente.
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