Verwendung `DocumentBuilder` um ein Dokument zu ändern
Angabe der Formatierung
Schriftformatierung
Aktuelle Schriftformatierung wird durch eine Font
zurückgegebenes Objekt DocumentBuilder.Font
Eigentum. Die Font
Klasse enthält eine Vielzahl von Schrifteigenschaften möglich in Microsoft Word.
Das folgende Codebeispiel zeigt, wie die Schriftformatierung eingestellt werden soll. |
Zellformatierung
Die Zellformatierung wird beim Aufbau einer Tabelle verwendet. Es wird durch eine CellFormat
zurückgegebenes Objekt DocumentBuilder.CellFormat
Eigentum. CellFormat kapselt verschiedene Tabellenzelleneigenschaften wie Breite oder vertikale Ausrichtung.
Das folgende Codebeispiel zeigt, wie man eine Tabelle erstellt, die eine einzelne formatierte Zelle enthält. |
Row Formatierung
Die aktuelle Zeilenformatierung wird durch eine RowFormat
Objekt, das von der DocumentBuilder.RowFormat
Eigentum. Das Objekt kapselt Informationen über alle Tabellenzeilenformatierungen.
Dielow code Ein Beispiel zeigt, wie man eine Tabelle erstellt, die eine einzelne Zelle enthält und Zeilenformatierung anwendet. |
Liste Formatierung
Aspose.Words ermöglicht die einfache Erstellung von Listen durch Anwendung von Listenformatierung. DocumentBuilder bietet DocumentBuilder.ListFormat
Eigentum, das eine ListFormat
Objekt. Dieses Objekt hat mehrere Methoden, um eine Liste zu starten und zu beenden und den Gedankenstrich zu erhöhen/ zu verkleinern.
Es gibt zwei allgemeine Arten von Listen in Microsoft Word: geschossen und nummeriert. |
- Um eine Liste zu starten, rufen Sie an ListFormat.applyBulletDefault.
- Um eine nummerierte Liste zu starten, rufen Sie an ListFormat.applyNumberDefault.
Die Kugel oder Nummer und Formatierung werden dem aktuellen Absatz und allen weiteren Absätzen hinzugefügt, die mit DocumentBuilder bis ListFormat.removeNumbers wird aufgerufen, um die geschossene Listenformatierung zu stoppen.
In Word-Dokumenten können Listen aus bis zu neun Ebenen bestehen. Listenformatierung für jede Ebene gibt an, welche Kugel oder Nummer verwendet wird, linker Einschnitt, Raum zwischen der Kugel und Text usw.
- Ja. Um die Listenebene des aktuellen Absatzes um eine Ebene zu erhöhen, rufen Sie an ListFormat.listIndent.
- Ja. Um die Listenebene des aktuellen Absatzes um eine Ebene zu verringern, rufen Sie an ListFormat.listOutdent.
Die Methoden ändern die Listenebene und wenden die Formatierungseigenschaften der neuen Ebene an.
Das folgende Codebeispiel zeigt, wie man eine Multilevel-Liste erstellt.
Page Setup und Sektion Formatierung
Seitenaufbau und Profileigenschaften werden in der PageSetup
Objekt, das von der DocumentBuilder.PageSetup
Eigentum. Das Objekt enthält alle Seiten-Setup-Attribute eines Abschnitts (linker Rand, unterer Rand, Papiergröße und so weiter) als Eigenschaften.
Das folgende Codebeispiel zeigt, wie solche Eigenschaften wie Seitengröße und Orientierung für den aktuellen Abschnitt eingestellt werden. |
Einen Stil anwenden
Einige Formatierungsobjekte wie Font oder ParagraphFormat unterstützen Stile. Ein einzelner, eingebauter oder benutzerdefinierter Stil wird durch eine Style
Objekt, das die entsprechenden Stileigenschaften wie Name, Basisstil, Schriftart und Absatzformatierung des Stils enthält, und so weiter.
Ferner ist a Style Objekt liefert Style.getStyleIdentifier Eigenschaft, die eine lokal-unabhängige Stilkennung zurückgibt, die durch eine Style.StyleIdentifier Aufzählungswert. Der Punkt ist, dass die Namen der integrierten Stile in Microsoft Word werden für verschiedene Sprachen lokalisiert. Mit einer Stilkennung finden Sie unabhängig von der Dokumentsprache den richtigen Stil. Die Aufzählungswerte entsprechen der Microsoft Word Eingebaute Stile wie Normal, Heading 1, Heading 2 etc. Alle benutzerdefinierten Stile werden der StyleIdentifier. Benutzerwert.
Das folgende Codebeispiel zeigt, wie man einen Absatzstil anwendet. |
Grenzen und Schattierung
Die Grenzen sind durch die BorderCollection vertreten. Dies ist eine Sammlung von Border-Objekten, die durch Index oder per Grenzart zugegriffen werden. Der Bordtyp wird durch die BorderType
Aufzählung. Einige Werte der Aufzählung gelten für mehrere oder nur ein Dokumentelement. Zum Beispiel BorderType.Bottom
für einen Absatz oder eine Tabellenzelle gilt, während BorderType.DiagonalDown
gibt nur die Diagonalgrenze in einer Tischzelle an.
Sowohl die Grenzkollektion als auch jede einzelne Grenze haben ähnliche Attribute wie Farbe, Linienstil, Linienbreite, Abstand vom Text und optionaler Schatten. Sie sind durch Eigenschaften des gleichen Namens dargestellt. Sie können verschiedene Grenztypen erreichen, indem Sie Eigenschaftswerte kombinieren. Zusätzlich, beide BorderCollection und Border Objekte erlauben es Ihnen, diese Werte standardmäßig durch Aufruf der Border.clearFormatting Methode. Beachten Sie, dass bei Rücksetzen der Grenzeigenschaften auf Standardwerte die Grenze unsichtbar ist.
Die Shading Klasse enthält Shading-Attribute für Dokumentelemente. Sie können die gewünschte Schattierung Textur und die Farben festlegen, die auf den Hintergrund und den Vordergrund des Elements aufgebracht werden. |
Die Schattierung Textur wird mit einer TextureIndex Aufzählungswert, der die Anwendung verschiedener Muster auf die Shading Objekt. Zum Beispiel, um eine Hintergrundfarbe für ein Dokumentelement, verwenden Sie die TextureIndex.TextureSolid Wert und die Vordergrund-Schattierungsfarbe entsprechend einstellen.
Das nachfolgende Beispiel zeigt, wie man Grenzen anwendet und auf einen Absatz schattiert. |
Snap to Grid
Aspose.Words bietet zwei Eigenschaften ParagraphFormat.SnapToGrid
und Font.SnapToGrid
zu erhalten und setzen Absatz Immobilien Snap auf Gitter
Den Cursor bewegen
Erfassung der aktuellen Cursorposition
Sie können erhalten, wo der Cursor des Builders derzeit jederzeit positioniert ist. Die DocumentBuilder.getCurrentNode Eigenschaft gibt den Knoten zurück, der derzeit in diesem Builder ausgewählt wird. Der Knoten ist ein direktes Kind eines Absatzes. Alle Einsatzvorgänge, die Sie ausführen DocumentBuilder
wird vor der DocumentBuilder.CurrentNode
. Wenn der aktuelle Absatz leer ist oder der Cursor kurz vor dem Ende des Absatzes positioniert ist, DocumentBuilder.CurrentNode
gibt null zurück.
Auch können Sie die DocumentBuilder.getCurrentParagraph Eigenschaft, die den Absatz erhält, der derzeit in diesem DocumentBuilder. Dielow code Ein Beispiel zeigt, wie man auf den aktuellen Knoten in einem Dokumentbauer zugreifen kann.
Umzug zu jeder Node (Paragraphen und ihre Kinder)
Wenn Sie einen Dokumentobjekt-Knoten haben, der ein Absatz oder ein direktes Kind eines Absatzes ist, können Sie den Cursor des Builders auf diesen Knoten hinweisen. Verwenden Sie die DocumentBuilder.moveTo Verfahren zur Durchführung. Das folgende Codebeispiel zeigt, wie man eine Cursorposition zu einem bestimmten Knoten bewegt.
Wechsel zum Dokument Start/End
Wenn Sie zum Anfang des Dokuments wechseln müssen, rufen Sie an DocumentBuilder.moveToDocumentStart. Wenn Sie zum Ende des Dokuments bewegen müssen, rufen Sie an DocumentBuilder.moveToDocumentEnd.
Wechseln zu einem Abschnitt
Wenn Sie mit einem Dokument arbeiten, das mehrere Abschnitte enthält, können Sie in einen gewünschten Abschnitt mit DocumentBuilder.moveToSection. Dieses Verfahren bewegt den Cursor zu Beginn eines bestimmten Abschnitts und akzeptiert den Index des erforderlichen Abschnitts. Wenn der Abschnittsindex größer oder gleich 0 ist, gibt er einen Index vom Anfang des Dokuments an, wobei 0 der erste Abschnitt ist. Wenn der Abschnittsindex kleiner als 0 ist, gibt er einen Index vom Ende des Dokuments an, wobei -1 der letzte Abschnitt ist. Dielow code Ein Beispiel zeigt, wie man eine Cursorposition in den angegebenen Abschnitt bewegt. Sie können die Vorlagendatei dieses Beispiels herunterladen Hier.
Umzug zu einem Header/Footer
Wenn Sie einige Daten in einen Header oder Footer platzieren müssen, sollten Sie es zuerst mit DocumentBuilder.moveToHeaderFooter. Das Verfahren nimmt einen Aufzählungswert von HeaderFooterType an, der die Art des Headers oder Footers angibt, zu dem der Cursor bewegt werden soll.
Wenn Sie Header und Footer erstellen möchten, die für die erste Seite unterschiedlich sind, müssen Sie die PageSetup.getDifferentFirstPageHeaderFooter Eigentum an true. Wenn Sie Header und Footer erstellen möchten, die für gerade und seltsame Seiten unterschiedlich sind, müssen Sie festlegen PageSetup.getOddAndEvenPagesHeaderFooter bis true.
Wenn Sie zurück zur Hauptgeschichte, verwendenDocumentBuilder.moveToSection aus dem Kopf oder Fuß zu ziehen. Im folgenden Beispiel erstellen Kopfzeilen und Fußzeilen in einem Dokument mit DocumentBuilder.
Zu einem Absatz bewegen
VerwendungDocumentBuilder.moveToParagraph den Cursor auf einen gewünschten Absatz im aktuellen Abschnitt zu verschieben. Sie sollten zwei Parameter an diese Methode übergeben: ParagraphIndex (der Index des Absatzes zu bewegen) und ZeichenIndex (der Index des Zeichens innerhalb des Absatzes).
Die Navigation erfolgt innerhalb der aktuellen Geschichte des aktuellen Abschnitts. Das heißt, wenn Sie den Cursor auf den primären Header des ersten Abschnitts verschoben haben, dann gibt ParagraphIndex den Index des Absatzes innerhalb des Headers dieses Abschnitts an.
Wenn ParagraphIndex größer oder gleich 0 ist, gibt er einen Index ab Anfang des Abschnitts an, wobei 0 der erste Absatz ist. Wenn ParagraphIndex weniger als 0 ist, gibt es einen Index vom Ende des Abschnitts an, wobei -1 der letzte Absatz ist. Der Zeichenindex kann derzeit nur mit 0 angegeben werden, um zum Anfang des Absatzes oder -1 zu gelangen, um zum Ende des Absatzes zu gelangen. Das folgende Codebeispiel zeigt, wie man eine Cursorposition in den angegebenen Absatz bewegt. Sie können die Vorlagendatei dieses Beispiels herunterladen Hier.
Wechseln zu einer Tischzelle
Verwendung DocumentBuilder.moveToCell wenn Sie den Cursor in eine Tabellenzelle im aktuellen Abschnitt verschieben müssen. Diese Methode akzeptiert vier Parameter:
- tableIndex - der Index der Tabelle zu bewegen.
- ZeileIndex - der Index der Zeile in der Tabelle.
- SpalteIndex - der Index der Spalte in der Tabelle.
- charakterIndex - der Index des Zeichens innerhalb der Zelle.
Die Navigation erfolgt innerhalb der aktuellen Geschichte des aktuellen Abschnitts.
Für die Indexparameter, wenn der Index größer oder gleich 0 ist, gibt er von Anfang an einen Index an, wobei 0 das erste Element ist. Wenn der Index kleiner als 0 ist, gibt er einen Index vom Ende an, wobei -1 das letzte Element ist.
Beachten Sie auch, dass ZeichenIndex derzeit nur 0 angeben kann, um zum Anfang der Zelle zu bewegen oder -1 zum Ende der Zelle zu bewegen. Das folgende Codebeispiel zeigt, wie man eine Cursorposition in die angegebene Tabellenzelle bewegt. Sie können die Vorlagendatei dieses Beispiels herunterladen Hier.
Umzug zu einem Lesezeichen
Lesezeichen werden häufig verwendet, um bestimmte Stellen in dem Dokument zu markieren, wo neue Elemente eingefügt werden sollen. Um zu einem Lesezeichen zu wechseln, verwenden DocumentBuilder.moveToBookmark. Dieses Verfahren hat zwei Überlastungen. Der einfachste akzeptiert nichts als den Namen des Lesezeichens, wo der Cursor bewegt werden soll. Das folgende Codebeispiel zeigt, wie man eine Cursorposition zu einem Lesezeichen bewegt.
Diese Überlastung bewegt den Cursor auf eine Position kurz nach dem Start des Lesezeichens mit dem angegebenen Namen. Eine weitere Überlastung DocumentBuilder.moveToBookmark bewegt den Cursor zu einem Lesezeichen mit größerer Präzision. Es akzeptiert zwei zusätzliche boolesche Parameter:
- isStart bestimmt, ob der Cursor zum Anfang oder zum Ende des Lesezeichens bewegt wird.
- isAfter bestimmt, ob der Cursor nach der Start- oder Endposition des Lesezeichens bewegt wird oder den Cursor vor der Start- oder Endposition des Lesezeichens bewegt wird.
Das folgende Codebeispiel zeigt, wie man eine Cursorposition kurz nach dem Lesezeichenende bewegt.
Einfügen eines neuen Textes auf diese Weise ersetzt nicht den vorhandenen Text des Lesezeichens. Beachten Sie, dass einige Lesezeichen im Dokument den Formularfeldern zugeordnet sind. Mit einem solchen Lesezeichen und dem Einfügen von Text wird der Text in den Formularfeldcode eingefügt. Obwohl dies das Formularfeld nicht invalidiert, wird der eingefügte Text nicht sichtbar, weil er Teil des Feldcodes wird.
Zu einem Merge
Feld
Manchmal muss man ein “manuell” ausführen mail merge Verwendung DocumentBuilder
oder füllen Sie ein Zusammenführungsfeld in einer besonderen Weise in einem mail merge Event-Handler. Das ist, wenn DocumentBuilder.moveToMergeField könnte nützlich sein. Die Methode akzeptiert den Namen des Zusammenführungsfeldes. Es bewegt den Cursor in eine Position, die kurz über das angegebene Mergerfeld hinausgeht und das Mergerfeld entfernt. Das folgende Codebeispiel zeigt, wie man den Cursor in eine Position über das angegebene Merge-Feld bewegt.
Umrechnen zwischen Messeinheiten
Die meisten der in der Aspose.Words API die einige Messungen darstellt (Breite/Höhe, Margen und verschiedene Entfernungen) akzeptieren Werte in Punkten (1 Zoll entspricht 72 Punkten). Manchmal ist das nicht bequem, so dass es ConvertUtil
Klasse, die Hilfefunktionen bietet, um zwischen verschiedenen Messeinheiten umzuwandeln. Es ermöglicht die Umwandlung von Inches zu Punkten, Punkten zu Inches, Pixel zu Punkten und Punkten zu Pixeln. Wenn Pixel in Punkte umgewandelt werden und umgekehrt, kann es bei 96 dpi (Punkte pro Zoll) Auflösungen oder bei der angegebenen dpi Auflösung durchgeführt werden.
ConvertUtil ist sehr nützlich bei der Einstellung unterschiedlicher Seiteneigenschaften, da z.B. Inches häufiger als Punkte Messeinheiten sind. Das folgende Beispiel zeigt, wie man die Seiteneigenschaften in Zoll einrichten kann.
Das folgende Codebeispiel zeigt, wie man Seiteneigenschaften in Zoll angibt.