DocumentBuilder

DocumentBuilder class

Fornisce metodi per inserire testo, immagini e altri contenuti, specificare carattere, formattazione di paragrafi e sezioni.

Per saperne di più, visita ilPanoramica del generatore di documenti articolo di documentazione.

public class DocumentBuilder

Costruttori

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

Proprietà

NomeDescrizione
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 corrente.
CurrentNode { get; }Ottiene il nodo attualmente selezionato in questo DocumentBuilder.
CurrentParagraph { get; }Ottiene il paragrafo attualmente selezionato in thisDocumentBuilder .
CurrentSection { get; }Ottiene la sezione attualmente selezionata in thisDocumentBuilder .
CurrentStory { get; }Ottiene la storia attualmente selezionata in questoDocumentBuilder .
CurrentStructuredDocumentTag { get; }Ottiene il tag del documento strutturato attualmente selezionato in thisDocumentBuilder .
Document { get; set; }Ottiene o imposta il fileDocumentoggetto a cui è collegato questo oggetto.
Font { get; }Restituisce un oggetto che rappresenta le proprietà di formattazione del carattere corrente.
IsAtEndOfParagraph { get; }RestituisceVERO se il cursore è alla fine del paragrafo corrente.
IsAtEndOfStructuredDocumentTag { get; }RestituisceVERO se il cursore è alla fine di un tag di documento strutturato.
IsAtStartOfParagraph { get; }RestituisceVERO se il cursore è all’inizio del paragrafo corrente (nessun testo prima del cursore).
Italic { get; set; }Vero se il carattere è formattato come corsivo.
ListFormat { get; }Restituisce un oggetto che rappresenta le proprietà di formattazione dell’elenco corrente.
PageSetup { get; }Restituisce un oggetto che rappresenta l’impostazione della 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 carattere corrente.

Metodi

NomeDescrizione
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 segnalibro di colonna. La posizione deve essere in una cella della tabella.
EndEditableRange()Contrassegna la posizione corrente nel documento come fine dell’intervallo modificabile.
EndEditableRange(EditableRangeStart)Contrassegna la posizione corrente nel documento come fine dell’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(ChartTypeRelativeHorizontalPosition, 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 con casella di controllo nella posizione corrente.
InsertCheckBox(string, bool, bool, int)Inserisce un campo modulo con casella di controllo nella posizione corrente.
InsertComboBox(string, string[], int)Inserisce un campo modulo combobox nella posizione corrente.
InsertDocument(DocumentImportFormatMode)Inserisce un documento nella posizione del cursore.
InsertDocument(DocumentImportFormatModeImportFormatOptions)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 di chiusura nel documento.
InsertFootnote(FootnoteType, string, string)Inserisce una nota a piè di pagina o di chiusura nel documento.
InsertHorizontalRule()Inserisce una forma di filetto 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. Permette 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 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 un URL nel documento. L’immagine viene inserita in linea e in scala 100%.
InsertImage(byte[], double, double)Inserisce un’immagine in linea da un array di byte nel documento e la ridimensiona alla dimensione specificata.
InsertImage(Image, double, double)Inserisce un’immagine in linea da un .NETImage nel documento e lo ridimensiona alla dimensione specificata.
InsertImage(Stream, double, double)Inserisce un’immagine in linea da uno stream 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 .NETImageOggetto 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 da un URL nella posizione e dimensione specificate.
InsertNode(Node)Inserisce un nodo prima del cursore.
InsertOleObject(Stream, string, bool, Stream)Inserisce un oggetto OLE incorporato da uno stream 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 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. Permette di specificare il file dell’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. Permette di specificare il file dell’icona e la didascalia. Rileva il tipo di oggetto OLE utilizzando l’estensione file.
InsertOleObjectAsIcon(string, string, bool, string, string)Inserisce un oggetto OLE incorporato o collegato come icona nel documento. Permette di specificare il file dell’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 una forma in linea con tipo e dimensione specificati.
InsertShape(ShapeTypeRelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType)Inserisce una forma mobile con posizione, dimensione e tipo di testo a capo specificati.
InsertSignatureLine(SignatureLineOptions)Inserisce una riga per la firma nella posizione corrente.
InsertSignatureLine(SignatureLineOptionsRelativeHorizontalPosition, 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 (tabella dei contenuti) 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 nel documento.
MoveToHeaderFooter(HeaderFooterType)Sposta il cursore all’inizio di un’intestazione o 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 della sezione corrente.
MoveToSection(int)Sposta il cursore all’inizio del corpo in una sezione specificata.
MoveToStructuredDocumentTag(int, int)Sposta il cursore su un tag di documento strutturato nella sezione corrente.
MoveToStructuredDocumentTag(StructuredDocumentTag, int)Sposta il cursore sul tag del documento strutturato.
PopFont()Recupera la formattazione dei caratteri precedentemente salvata nello stack.
PushFont()Salva la formattazione corrente del carattere 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 della tabella.
StartEditableRange()Contrassegna la posizione corrente nel documento come inizio di un 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

DocumentBuilder rende il processo di costruzione aDocument più facile. Document è un oggetto composito costituito da un albero di nodi e sebbene sia possibile inserire content nodes direttamente nell’albero, richiede una buona conoscenza della struttura ad albero. DocumentBuilder è una “facciata” per la complessa struttura dell’Document e consente di inserire contenuti e formattazioni in modo rapido e semplice.

Creare unDocumentBuilder e associarlo ad aDocument.

ILDocumentBuilder ha un cursore interno in cui verrà inserito il testo quando chiamiWrite ,Writeln ,InsertBreak e altri metodi. Puoi navigare nelDocumentBuilder cursore in una posizione diversa in un documento utilizzando vari metodi MoveToXXX.

Usa ilFontproprietà per specificare la formattazione dei caratteri che verrà applicata a tutto il testo inserito dalla posizione corrente nel documento in poi.

Usa ilParagraphFormat proprietà per specificare la formattazione del paragrafo per current e tutti i paragrafi che verranno inseriti.

Usa ilPageSetup property per specificare le proprietà della pagina e della sezione per la sezione current e tutte le sezioni che verranno inserite.

Usa 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 cheFont ,ParagraphFormat EPageSetup le proprietà vengono aggiornate ogni volta che ti sposti 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);

// Inizia la tabella, quindi compila 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 pagine, pari e dispari.
builder.PageSetup.DifferentFirstPageHeaderFooter = true;
builder.PageSetup.OddAndEvenPagesHeaderFooter = true;

// Crea le intestazioni, quindi aggiungi tre pagine al documento per visualizzare ciascun 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 creeremo successivamente con il builder.
// Ciò non influenzerà le 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