DocumentBuilder

DocumentBuilder class

Fornisce metodi per inserire testo, immagini e altro contenuto, specificare font, paragrafo e formattazione della sezione.

public class DocumentBuilder

Costruttori

Nome Descrizione
DocumentBuilder() Inizializza una nuova istanza di questa classe.
DocumentBuilder(Document) Inizializza una nuova istanza di questa classe.

Proprietà

Nome Descrizione
Bold { get; set; } Vero se il carattere è formattato in grassetto.
CellFormat { get; } Restituisce un oggetto che rappresenta le proprietà di formattazione della cella della tabella correnti.
CurrentNode { get; } Ottiene il nodo attualmente selezionato in questo DocumentBuilder.
CurrentParagraph { get; } Ottiene il paragrafo attualmente selezionato in questo DocumentBuilder.
CurrentSection { get; } Ottiene la sezione attualmente selezionata in questo DocumentBuilder.
CurrentStory { get; } Ottiene la storia attualmente selezionata in questo DocumentBuilder.
Document { get; set; } Ottiene o imposta ilDocument oggetto a cui questo oggetto è collegato.
Font { get; } Restituisce un oggetto che rappresenta le proprietà di formattazione del carattere correnti.
IsAtEndOfParagraph { get; } Restituisce vero se il cursore si trova alla fine del paragrafo corrente.
IsAtStartOfParagraph { get; } Restituisce vero se il cursore si trova all’inizio del paragrafo corrente (nessun testo prima del cursore).
Italic { get; set; } Vero se il carattere è formattato in corsivo.
ListFormat { get; } Restituisce un oggetto che rappresenta le proprietà di formattazione dell’elenco corrente.
PageSetup { get; } Restituisce un oggetto che rappresenta l’impostazione di pagina corrente e le proprietà della sezione.
ParagraphFormat { get; } Restituisce un oggetto che rappresenta le proprietà di formattazione del paragrafo corrente.
RowFormat { get; } Restituisce un oggetto che rappresenta le proprietà di formattazione della riga della tabella corrente.
Underline { get; set; } Ottiene/imposta il tipo di sottolineatura per il font corrente.

Metodi

Nome Descrizione
DeleteRow(int, int) Elimina una riga da una tabella.
EndBookmark(string) Contrassegna la posizione corrente nel documento come fine segnalibro.
EndColumnBookmark(string) Contrassegna la posizione corrente nel documento come fine di un segnalibro di colonna. La posizione deve essere in una cella di tabella.
EndEditableRange() Contrassegna la posizione corrente nel documento come fine di un intervallo modificabile.
EndEditableRange(EditableRangeStart) Contrassegna la posizione corrente nel documento come fine di un intervallo modificabile.
EndRow() Termina una riga della tabella nel documento.
EndTable() Termina una tabella nel documento.
InsertBreak(BreakType) Inserisce un’interruzione del tipo specificato nel documento.
InsertCell() Inserisce una cella di tabella nel documento.
InsertChart(ChartType, double, double) Inserisce un oggetto grafico nel documento e lo ridimensiona alla dimensione specificata.
InsertChart(ChartType, RelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType) Inserisce un oggetto grafico nel documento e lo ridimensiona alla dimensione specificata.
InsertCheckBox(string, bool, int) Inserisce un campo modulo checkbox nella posizione corrente.
InsertCheckBox(string, bool, bool, int) Inserisce un campo modulo checkbox nella posizione corrente.
InsertComboBox(string, string[], int) Inserisce un campo modulo casella combinata nella posizione corrente.
InsertDocument(Document, ImportFormatMode) Inserisce un documento nella posizione del cursore.
InsertDocument(Document, ImportFormatMode, ImportFormatOptions) Inserisce un documento nella posizione del cursore.
InsertField(string) Inserisce un campo Word in un documento e aggiorna il risultato del campo.
InsertField(FieldType, bool) Inserisce un campo Word in un documento e facoltativamente aggiorna il risultato del campo.
InsertField(string, string) Inserisce un campo Word in un documento senza aggiornare il risultato del campo.
InsertFootnote(FootnoteType, string) Inserisce una nota a piè di pagina o una nota di chiusura nel documento.
InsertFootnote(FootnoteType, string, string) Inserisce una nota a piè di pagina o una nota di chiusura nel documento.
InsertHorizontalRule() Inserisce una forma a righello orizzontale nel documento.
InsertHtml(string) Inserisce una stringa HTML nel documento.
InsertHtml(string, bool) Inserisce una stringa HTML nel documento.
InsertHtml(string, HtmlInsertOptions) Inserisce una stringa HTML nel documento. Consente di specificare opzioni aggiuntive.
InsertHyperlink(string, string, bool) Inserisce un collegamento ipertestuale nel documento.
InsertImage(byte[]) Inserisce un’immagine da un array di byte nel documento. L’immagine viene inserita in linea e in scala 100%.
InsertImage(Image) Inserisce un’immagine da un .NETImage oggetto nel documento. L’immagine viene inserita in linea e in scala 100%.
InsertImage(Stream) Inserisce un’immagine da uno stream nel documento. L’immagine viene inserita in linea e in scala 100%.
InsertImage(string) Inserisce un’immagine da un file o da un URL nel documento. L’immagine viene inserita in linea e in scala 100%.
InsertImage(byte[], double, double) Inserisce un’immagine inline da una matrice di byte nel documento e la ridimensiona alla dimensione specificata.
InsertImage(Image, double, double) Inserisce un’immagine inline da un .NETImage nel documento e lo ridimensiona alla dimensione specificata.
InsertImage(Stream, double, double) Inserisce un’immagine in linea da un flusso nel documento e la ridimensiona alla dimensione specificata.
InsertImage(string, double, double) Inserisce un’immagine in linea da un file o un URL nel documento e la ridimensiona alla dimensione specificata.
InsertImage(byte[], RelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType) Inserisce un’immagine da un array di byte nella posizione e dimensione specificate.
InsertImage(Image, RelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType) Inserisce un’immagine da un .NETImage oggetto nella posizione e dimensione specificate.
InsertImage(Stream, RelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType) Inserisce un’immagine da uno stream nella posizione e dimensione specificate.
InsertImage(string, RelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType) Inserisce un’immagine da un file o un URL nella posizione e dimensione specificate.
InsertNode(Node) Inserisce un nodo a livello di testo all’interno del paragrafo corrente prima del cursore.
InsertOleObject(Stream, string, bool, Stream) Inserisce un oggetto OLE incorporato da un flusso nel documento.
InsertOleObject(string, bool, bool, Stream) Inserisce un oggetto OLE incorporato o collegato da un file nel documento. Rileva il tipo di oggetto OLE utilizzando l’estensione del file.
InsertOleObject(string, string, bool, bool, Stream) Inserisce un oggetto OLE incorporato o collegato da un file nel documento. Rileva il tipo di oggetto OLE utilizzando il parametro progID specificato.
InsertOleObjectAsIcon(Stream, string, string, string) Inserisce un oggetto OLE incorporato come icona da uno stream nel documento. Consente di specificare il file icona e la didascalia. Rileva il tipo di oggetto OLE utilizzando il parametro progID specificato.
InsertOleObjectAsIcon(string, bool, string, string) Inserisce un oggetto OLE incorporato o collegato come icona nel documento. Consente di specificare il file icona e la didascalia. Rileva il tipo di oggetto OLE utilizzando l’estensione del file.
InsertOleObjectAsIcon(string, string, bool, string, string) Inserisce un oggetto OLE incorporato o collegato come icona nel documento. Consente di specificare il file icona e la didascalia. Rileva il tipo di oggetto OLE utilizzando il parametro progID specificato.
InsertOnlineVideo(string, double, double) Inserisce un oggetto video online nel documento e lo ridimensiona alla dimensione specificata.
InsertOnlineVideo(string, string, byte[], double, double) Inserisce un oggetto video online nel documento e lo ridimensiona alla dimensione specificata.
InsertOnlineVideo(string, RelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType) Inserisce un oggetto video online nel documento e lo ridimensiona alla dimensione specificata.
InsertOnlineVideo(string, string, byte[], RelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType) Inserisce un oggetto video online nel documento e lo ridimensiona alla dimensione specificata.
InsertParagraph() Inserisce un’interruzione di paragrafo nel documento.
InsertShape(ShapeType, double, double) Inserisce la forma in linea con il tipo e la dimensione specificati.
InsertShape(ShapeType, RelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType) Inserisce una forma fluttuante con posizione, dimensione e tipo di avvolgimento del testo specificati.
InsertSignatureLine(SignatureLineOptions) Inserisce una linea di firma nella posizione corrente.
InsertSignatureLine(SignatureLineOptions, RelativeHorizontalPosition, double, RelativeVerticalPosition, double, WrapType) Inserisce una riga della firma nella posizione specificata.
InsertStyleSeparator() Inserisce il separatore di stile nel documento.
InsertTableOfContents(string) Inserisce un campo TOC (indice) nel documento.
InsertTextInput(string, TextFormFieldType, string, string, int) Inserisce un campo modulo di testo nella posizione corrente.
MoveTo(Node) Sposta il cursore su un nodo in linea o alla fine di un paragrafo.
MoveToBookmark(string) Sposta il cursore su un segnalibro.
MoveToBookmark(string, bool, bool) Sposta il cursore su un segnalibro con maggiore precisione.
MoveToCell(int, int, int, int) Sposta il cursore su una cella della tabella nella sezione corrente.
MoveToDocumentEnd() Sposta il cursore alla fine del documento.
MoveToDocumentStart() Sposta il cursore all’inizio del documento.
MoveToField(Field, bool) Sposta il cursore su un campo del documento.
MoveToHeaderFooter(HeaderFooterType) Sposta il cursore all’inizio di un’intestazione o un piè di pagina nella sezione corrente.
MoveToMergeField(string) Sposta il cursore in una posizione appena oltre il campo di unione specificato e rimuove il campo di unione.
MoveToMergeField(string, bool, bool) Sposta il campo di unione nel campo di unione specificato.
MoveToParagraph(int, int) Sposta il cursore su un paragrafo nella sezione corrente.
MoveToSection(int) Sposta il cursore all’inizio del corpo in una sezione specificata.
PopFont() Recupera la formattazione dei caratteri precedentemente salvata nello stack.
PushFont() Salva la formattazione del carattere corrente nello stack.
StartBookmark(string) Contrassegna la posizione corrente nel documento come inizio segnalibro.
StartColumnBookmark(string) Contrassegna la posizione corrente nel documento come inizio di un segnalibro di colonna. La posizione deve essere in una cella di tabella.
StartEditableRange() Contrassegna la posizione corrente nel documento come inizio intervallo modificabile.
StartTable() Avvia una tabella nel documento.
Write(string) Inserisce una stringa nel documento nella posizione di inserimento corrente.
Writeln() Inserisce un’interruzione di paragrafo nel documento.
Writeln(string) Inserisce una stringa e un’interruzione di paragrafo nel documento.

Osservazioni

Costruttore di documenti rende il processo di costruzione a Documento più facile. Documentoè un oggetto composto costituito da un albero di nodi e sebbene sia possibile inserire i nodi content direttamente nell’albero, richiede una buona comprensione della struttura ad albero. Costruttore di documenti è una “facciata” per la complessa struttura di Documento e permette di inserire contenuto e formattazione in modo rapido e semplice.

Creare un Costruttore di documenti e associarlo ad aDocument.

Il Costruttore di documenti ha un cursore interno dove verrà inserito il testo quando chiamiWrite ,Writeln ,InsertBreak e altri metodi. Puoi navigare nel Costruttore di documenti cursore in una posizione diversa in un documento utilizzando vari metodi MoveToXXX.

Utilizzare ilFont per specificare la formattazione dei caratteri che si applicherà a tutto il testo inserito dalla posizione corrente nel documento in poi.

Utilizzare ilParagraphFormat per specificare la formattazione del paragrafo per l’oggetto corrente e tutti i paragrafi che verranno inseriti.

Utilizzare ilPageSetupper specificare le proprietà della pagina e della sezione per la sezione corrente e per tutte le sezioni che verranno inserite.

Utilizzare ilCellFormat eRowFormat proprietà per specificare le proprietà di formattazione per le celle e le righe della tabella. Utente ilInsertCell e EndRow metodi per costruire una tabella.

Notare che Font , Formato paragrafo e Impostazione della pagina le proprietà vengono aggiornate ogni volta che ci si sposta in una posizione diversa nel documento per riflettere le proprietà di formattazione disponibili nella nuova posizione.

Esempi

Mostra come utilizzare un generatore di documenti per creare una tabella.

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

// Avvia la tabella, quindi popola la prima riga con due celle.
builder.StartTable();
builder.InsertCell();
builder.Write("Row 1, Cell 1.");
builder.InsertCell();
builder.Write("Row 1, Cell 2.");

// Chiama il metodo "EndRow" del builder per iniziare una nuova riga.
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");

Mostra come creare intestazioni e piè di pagina in un documento utilizzando DocumentBuilder.

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

// Specifica che vogliamo intestazioni e piè di pagina diversi per le prime, pari e dispari.
builder.PageSetup.DifferentFirstPageHeaderFooter = true;
builder.PageSetup.OddAndEvenPagesHeaderFooter = true;

// Crea le intestazioni, quindi aggiungi tre pagine al documento per visualizzare ogni tipo di intestazione.
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");

Mostra come creare una tabella con bordi personalizzati.

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

builder.StartTable();

// Impostazione delle opzioni di formattazione della tabella per un generatore di documenti
// li applicherà a ogni riga e cella che aggiungiamo con esso.
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();

// La modifica della formattazione la applicherà alla cella corrente,
// e tutte le nuove celle che creiamo con il builder in seguito.
// Ciò non influirà sulle celle che abbiamo aggiunto in precedenza.
builder.CellFormat.Shading.ClearFormatting();

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

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

builder.EndRow();

// Aumenta l'altezza della riga per adattarla al testo verticale.
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");

Guarda anche