DocumentBuilder

DocumentBuilder class

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

Per saperne di più, visita ilPanoramica di Document Builder 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.
DocumentBuilder(DocumentBuilderOptions)Inizializza una nuova istanza di questa classe.
DocumentBuilder(DocumentDocumentBuilderOptions)Inizializza una nuova istanza di questa classe.

Proprietà

NomeDescrizione
Bold { get; set; }Vero se il font è formattato in grassetto.
CellFormat { get; }Restituisce un oggetto che rappresenta le proprietà di formattazione delle celle della tabella corrente.
CurrentNode { get; }Ottiene il nodo attualmente selezionato in questo DocumentBuilder.
CurrentParagraph { get; }Ottiene il paragrafo attualmente selezionato in questoDocumentBuilder .
CurrentSection { get; }Ottiene la sezione attualmente selezionata in questoDocumentBuilder .
CurrentStory { get; }Ottiene la storia attualmente selezionata in questoDocumentBuilder .
CurrentStructuredDocumentTag { get; }Ottiene il tag del documento strutturato attualmente selezionato in questoDocumentBuilder .
Document { get; set; }Ottiene o imposta ilDocument oggetto 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 si trova alla fine del paragrafo corrente.
IsAtEndOfStructuredDocumentTag { get; }RestituisceVERO se il cursore si trova alla fine di un tag di documento strutturato.
IsAtStartOfParagraph { get; }RestituisceVEROse il cursore si trova all’inizio del paragrafo corrente (nessun testo prima del cursore).
Italic { get; set; }Vero se il font è 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 delle righe della tabella corrente.
Underline { get; set; }Ottiene/imposta il tipo di sottolineatura per il font 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 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 della tabella nel documento.
InsertChart(ChartType, double, double)Inserisce un oggetto grafico nel documento e lo ridimensiona alla dimensione specificata.
InsertChart(ChartType, double, double, ChartStyle)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.
InsertChart(ChartTypeRelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapTypeChartStyle)Inserisce un oggetto grafico nel documento e lo ridimensiona alla dimensione specificata.
InsertCheckBox(string, bool, int)Inserisce un campo modulo casella di controllo nella posizione corrente.
InsertCheckBox(string, bool, bool, int)Inserisce un campo modulo 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.
InsertDocumentInline(DocumentImportFormatModeImportFormatOptions)Inserisce un documento in linea 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.
InsertForms2OleControl(Forms2OleControl)InserimentiForms2OleControl oggetto nella posizione corrente.
InsertGroupShape(params ShapeBase[])Raggruppa le forme passate come parametro in un nuovo nodo GroupShape che viene inserito nella posizione corrente.
InsertGroupShape(double, double, double, double, params ShapeBase[])Raggruppa le forme passate come parametro in un nuovo nodo GroupShape della dimensione specificata che viene inserito nella posizione specificata.
InsertHorizontalRule()Inserisce una forma di regola 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 al 100%.
InsertImage(Image)Inserisce un’immagine da un file .NETImage Oggetto nel documento. L’immagine viene inserita in linea e in scala al 100%.
InsertImage(Stream)Inserisce un’immagine da un flusso nel documento. L’immagine viene inserita in linea e in scala al 100%.
InsertImage(string)Inserisce un’immagine da un file o da un URL nel documento. L’immagine viene inserita in linea e in scala al 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 file .NETImage oggetto 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 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 file .NETImage oggetto nella posizione e dimensione specificate.
InsertImage(Stream, RelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType)Inserisce un’immagine da un flusso nella posizione e dimensione specificate.
InsertImage(string, RelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType)Inserisce un’immagine da un file o 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 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 tramite 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 un flusso nel documento. Consente 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. Consente di specificare il file dell’icona e la didascalia. Rileva il tipo di oggetto OLE tramite 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 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 il tipo e le dimensioni specificati.
InsertShape(ShapeTypeRelativeHorizontalPosition, double, RelativeVerticalPosition, double, double, double, WrapType)Inserisce una forma mobile con posizione, dimensione e tipo di avvolgimento del testo specificati.
InsertSignatureLine(SignatureLineOptions)Inserisce una riga di firma nella posizione corrente.
InsertSignatureLine(SignatureLineOptionsRelativeHorizontalPosition, double, RelativeVerticalPosition, double, WrapType)Inserisce una riga di firma nella posizione specificata.
InsertStructuredDocumentTag(SdtType)Inserisce unStructuredDocumentTag nel documento.
InsertStyleSeparator()Inserisce un 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 nel documento.
MoveToHeaderFooter(HeaderFooterType)Sposta il cursore all’inizio di un’intestazione o di 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.
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 del 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 di unDocument più facile. Document è un oggetto composito costituito da un albero di nodi e, sebbene sia possibile inserire nodi content direttamente nell’albero, è richiesta una buona comprensione della struttura dell’albero. DocumentBuilder è una “facciata” per la complessa struttura diDocument e consente a di inserire contenuti e formattazione in modo rapido e semplice.

Crea unDocumentBuilder e associarlo ad unDocument.

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

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

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

Utilizzare ilPageSetup proprietà per specificare le proprietà di pagina e sezione per la sezione current e tutte le sezioni che verranno inserite.

Utilizzare ilCellFormat ERowFormat proprietà per specificare le proprietà di formattazione per le celle e le righe della tabella. Utilizzare l’InsertCell e EndRow metodi per costruire una tabella.

Notare cheFont ,ParagraphFormat EPageSetup le proprietà vengono aggiornate ogni volta che si passa a un punto diverso del 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);

// Specificare che si vogliono intestazioni e piè di pagina diversi per la prima pagina, le pagine pari e quelle 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 applicheremo a ogni riga e cella che aggiungeremo.
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 verrà applicata alla cella corrente,
// e tutte le nuove celle che creeremo in seguito con il builder.
// Ciò non influirà sulle celle aggiunte 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