Gebruik DocumentBuilder Een document wijzigen
Opmaak specificeren
Lettertypeopmaak
Huidige lettertypeopmaak wordt weergegeven door een Font
object teruggegeven door de DocumentBuilder.Font
eigendom. De Font
klasse bevat een breed scala aan font eigenschappen mogelijk in Microsoft Word.
![]() |
---|
Het volgende voorbeeld van code laat zien hoe je lettertypeopmaak instelt. |
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
// Set font formatting properties | |
Font font = builder.getFont(); | |
font.setBold(true); | |
font.setColor(Color.BLUE); | |
font.setItalic(true); | |
font.setName("Arial"); | |
font.setSize(24); | |
font.setSpacing(5); | |
font.setUnderline(Underline.DOUBLE); | |
builder.write("I'm a very nice formatted string."); |
Celopmaak
Celopmaak wordt gebruikt tijdens het bouwen van een tabel. Het wordt vertegenwoordigd door een CellFormat
object teruggegeven door de DocumentBuilder.CellFormat
eigendom. CellFormat inkapselt verschillende celeigenschappen zoals breedte of verticale uitlijning.
![]() |
---|
Het volgende voorbeeld van code laat zien hoe u een tabel kunt maken die een enkele geformatteerde cel bevat. |
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getDataDir(DocumentBuilderSetTableCellFormatting.class); | |
// Open the document. | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.insertCell(); | |
CellFormat cellFormat = builder.getCellFormat(); | |
cellFormat.setWidth(250); | |
cellFormat.setLeftPadding(30); | |
cellFormat.setRightPadding(30); | |
cellFormat.setBottomPadding(30); | |
cellFormat.setTopPadding(30); | |
builder.writeln("I'm a wonderful formatted cell."); | |
builder.endRow(); | |
builder.endTable(); | |
doc.save(dataDir + "output.doc"); |
Rijopmaak
De huidige rijopmaak wordt bepaald door een RowFormat
object dat door de DocumentBuilder.RowFormat
eigendom. Het object bevat informatie over alle tabelrijopmaak.
![]() |
---|
Delow code voorbeeld toont hoe je een tabel maakt die één cel bevat en rijopmaak toepast. |
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getDataDir(DocumentBuilderSetTableRowFormatting.class); | |
// Open the document. | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
Table table = builder.startTable(); | |
builder.insertCell(); | |
RowFormat rowFormat = builder.getRowFormat(); | |
rowFormat.setHeight(100); | |
rowFormat.setHeightRule(HeightRule.EXACTLY); | |
table.setBottomPadding(30); | |
table.setTopPadding(30); | |
table.setLeftPadding(30); | |
table.setRightPadding(30); | |
builder.writeln("I'm a wonderful formatted row."); | |
builder.endRow(); | |
builder.endTable(); | |
doc.save(dataDir + "output.doc"); |
Lijstopmaak
Aspose.Words maakt het gemakkelijk lijsten aan te maken door lijstopmaak toe te passen. DocumentBuilder levert de DocumentBuilder.ListFormat
eigenschap die een ListFormat
object. Dit object heeft verschillende methoden om een lijst te starten en te beëindigen en het streepje te verhogen/verlaagen.
![]() |
---|
Er zijn twee algemene soorten lijsten in Microsoft Word: doodgeschoten en genummerd. |
- Om een lijst met kogels te beginnen, bel ListFormat.applyBulletDefault.
- Om een genummerde lijst te starten, bel ListFormat.applyNumberDefault.
De bullet of nummer en formattering worden toegevoegd aan de huidige paragraaf en alle verdere alinea’s gemaakt met behulp van DocumentBuilder tot ListFormat.removeNumbers wordt opgeroepen om te stoppen met het formatteren van de lijst met kogels.
In Word-documenten kunnen lijsten bestaan uit maximaal negen niveaus. Lijstopmaak voor elk niveau geeft aan welke kogel of getal wordt gebruikt, linker streepje, ruimte tussen de kogel en tekst enz.
- Om het lijstniveau van de huidige paragraaf met één niveau te verhogen, roep ListFormat.listIndent.
- Om het lijstniveau van de huidige paragraaf met één niveau te verlagen, aanroepen ListFormat.listOutdent.
De methoden veranderen het lijstniveau en passen de opmaakeigenschappen van het nieuwe niveau toe.
Het volgende voorbeeld van code laat zien hoe je een multilevel lijst kunt bouwen.
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getDataDir(DocumentBuilderSetMultilevelListFormatting.class); | |
// Open the document. | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.getListFormat().applyNumberDefault(); | |
builder.writeln("Item 1"); | |
builder.writeln("Item 2"); | |
builder.getListFormat().listIndent(); | |
builder.writeln("Item 2.1"); | |
builder.writeln("Item 2.2"); | |
builder.getListFormat().listIndent(); | |
builder.writeln("Item 2.1.1"); | |
builder.writeln("Item 2.2.2"); | |
builder.getListFormat().listOutdent(); | |
builder.writeln("Item 3"); | |
builder.getListFormat().removeNumbers(); | |
doc.save(dataDir + "output.doc"); |
Pagina instellen en sectie formatteren
Pagina-instellingen en sectie-eigenschappen zijn ingekapseld in de PageSetup
object dat door de DocumentBuilder.PageSetup
eigendom. Het object bevat alle pagina setup attributen van een sectie (linker marge, onderste marge, papiergrootte, enzovoort) als eigenschappen.
![]() |
---|
Het volgende voorbeeld van code laat zien hoe u eigenschappen zoals paginagrootte en oriëntatie voor de huidige sectie kunt instellen. |
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getDataDir(DocumentBuilderSetPageSetupAndSectionFormatting.class); | |
// Open the document. | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.getPageSetup().setOrientation(Orientation.LANDSCAPE); | |
builder.getPageSetup().setLeftMargin(50); | |
builder.getPageSetup().setPaperSize(PaperSize.PAPER_10_X_14); | |
doc.save(dataDir + "output.doc"); |
Een stijl toepassen
Sommige formatteren objecten zoals Lettertype of AlineaFormat ondersteuning stijlen. Een enkele ingebouwde of door de gebruiker gedefinieerde stijl wordt vertegenwoordigd door een Style
object dat de bijbehorende stijleigenschappen zoals naam, basisstijl, lettertype en paragraafopmaak van de stijl bevat, enzovoort.
Bovendien Style object geeft de Style.getStyleIdentifier eigenschap die een locale-onafhankelijke stijl identifier vertegenwoordigd door een Style.StyleIdentifier Waarde van de opsomming. Het punt is dat de namen van ingebouwde stijlen in Microsoft Word zijn gelokaliseerd voor verschillende talen. Met behulp van een stijl identifier, kunt u de juiste stijl te vinden, ongeacht de document taal. De opsommingswaarden komen overeen met de Microsoft Word ingebouwde stijlen zoals Normaal , Rubriek 1 , Rubriek 2 enz. Alle door de gebruiker gedefinieerde stijlen zijn toegewezen aan StyleIdentifier. Gebruikerswaarde.
![]() |
---|
Het volgende voorbeeld van code laat zien hoe je een alineastijl moet toepassen. |
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
// Open the document. | |
Document doc = new Document(); | |
// Set paragraph style | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.TITLE); | |
builder.write("Hello"); | |
doc.save(dataDir + "ApplyParagraphStyle_out.doc"); |
Grenzen en schaduw
Grenzen worden vertegenwoordigd door de grenscollectie. Dit is een verzameling van Grensobjecten die toegankelijk zijn per index of per grenstype. Randtype wordt vertegenwoordigd door de BorderType
Samenvatting. Sommige waarden van de opsomming zijn van toepassing op meerdere of slechts één documentelement. Bijvoorbeeld, BorderType.Bottom
is van toepassing op een alinea of tabelcel zolang BorderType.DiagonalDown
geeft alleen de diagonale rand in een tabelcel aan.
Zowel de randcollectie als elke afzonderlijke rand hebben vergelijkbare eigenschappen zoals kleur, lijnstijl, lijnbreedte, afstand tot de tekst en optionele schaduw. Ze worden vertegenwoordigd door eigenschappen met dezelfde naam. U kunt verschillende grenstypes bereiken door eigendomswaarden te combineren. Bovendien zijn beide BorderCollection en Border objecten kunt u deze waarden terugzetten naar standaard door de Border.clearFormatting methode. Merk op dat wanneer randeigenschappen worden teruggezet naar standaardwaarden, de rand onzichtbaar is.
![]() |
---|
De Shading klasse bevat schaduwattributen voor documentelementen. U kunt de gewenste schaduw textuur en de kleuren die worden toegepast op de achtergrond en voorgrond van het element instellen. |
De schaduwstructuur is ingesteld op een TextuurIndex telling waarde die de toepassing van verschillende patronen op de Shading object. Om bijvoorbeeld een achtergrondkleur voor een documentelement in te stellen, gebruik de TextuurIndex.TextuurSolid waardeer en zet de voorgrond schaduwkleur naar gelang van het geval.
![]() |
---|
Het onderstaande voorbeeld laat zien hoe je grenzen kunt toepassen en een alinea kunt camoufleren. |
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
// Open the document. | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
// Set paragraph borders | |
BorderCollection borders = builder.getParagraphFormat().getBorders(); | |
borders.setDistanceFromText(20); | |
borders.getByBorderType(BorderType.LEFT).setLineStyle(LineStyle.DOUBLE); | |
borders.getByBorderType(BorderType.RIGHT).setLineStyle(LineStyle.DOUBLE); | |
borders.getByBorderType(BorderType.TOP).setLineStyle(LineStyle.DOUBLE); | |
borders.getByBorderType(BorderType.BOTTOM).setLineStyle(LineStyle.DOUBLE); | |
// Set paragraph shading | |
Shading shading = builder.getParagraphFormat().getShading(); | |
shading.setTexture(TextureIndex.TEXTURE_DIAGONAL_CROSS); | |
shading.setBackgroundPatternColor(Color.YELLOW); | |
shading.setForegroundPatternColor(Color.GREEN); | |
builder.write("I'm a formatted paragraph with double border and nice shading."); | |
doc.save(dataDir + "ApplyBordersAndShading_out.doc"); |
Naar raster knippen
Aspose.Words biedt twee eigenschappen ParagraphFormat.SnapToGrid
en Font.SnapToGrid
om te krijgen en instellen paragraaf eigenschap snap naar raster
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
Document doc = new Document(dataDir + "Input.docx"); | |
Paragraph par = doc.getFirstSection().getBody().getFirstParagraph(); | |
par.getParagraphFormat().setSnapToGrid(true); | |
par.getRuns().get(0).getFont().setSnapToGrid(true); | |
dataDir = dataDir + "SetSnapToGrid_out.doc"; | |
doc.save(dataDir); |
De cursor verplaatsen
De huidige cursorpositie detecteren
U kunt verkrijgen waar de cursor van de bouwer momenteel op elk moment is geplaatst. De DocumentBuilder.getCurrentNode eigenschap geeft de node terug die momenteel in deze bouwer is geselecteerd. De node is een direct kind van een paragraaf. Alle invoegacties die u uitvoert met behulp van DocumentBuilder
zal invoegen voor de DocumentBuilder.CurrentNode
. Wanneer de huidige alinea leeg is of de cursor vlak voor het einde van de alinea is geplaatst, DocumentBuilder.CurrentNode
Geeft nul terug.
Ook kunt u de DocumentBuilder.getCurrentParagraph eigenschap, die krijgt de paragraaf die momenteel is geselecteerd in deze DocumentBuilder. Delow code voorbeeld toont hoe u de huidige knooppunt in een documentbouwer kunt benaderen.
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getDataDir(DocumentBuilderCursorPosition.class); | |
// Open the document. | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
Node node = builder.getCurrentNode(); | |
Paragraph curParagraph = builder.getCurrentParagraph(); | |
doc.save(dataDir + "output.doc"); |
Verhuizen naar elke knoop (paragrafen en hun kinderen)
Als u een document object knooppunt, dat is een paragraaf of een direct kind van een paragraaf, kunt u de cursor van de bouwer wijzen naar deze knooppunt. Gebruik de DocumentBuilder.moveTo methode om dit uit te voeren. Het volgende voorbeeld van code laat zien hoe je een cursorpositie naar een opgegeven knooppunt verplaatst.
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
// Start a bookmark and add content to it using a DocumentBuilder. | |
builder.startBookmark("MyBookmark"); | |
builder.writeln("Bookmark contents."); | |
builder.endBookmark("MyBookmark"); | |
// The node that the DocumentBuilder is currently at is past the boundaries of the bookmark. | |
Assert.assertEquals(doc.getRange().getBookmarks().get(0).getBookmarkEnd(), builder.getCurrentParagraph().getFirstChild()); | |
// If we wish to revise the content of our bookmark with the DocumentBuilder, we can move back to it like this. | |
builder.moveToBookmark("MyBookmark"); | |
// Now we're located between the bookmark's BookmarkStart and BookmarkEnd nodes, so any text the builder adds will be within it. | |
Assert.assertEquals(doc.getRange().getBookmarks().get(0).getBookmarkStart(), builder.getCurrentParagraph().getFirstChild()); | |
// We can move the builder to an individual node, | |
// which in this case will be the first node of the first paragraph, like this. | |
builder.moveTo(doc.getFirstSection().getBody().getFirstParagraph().getChildNodes(NodeType.ANY, false).get(0)); | |
Assert.assertEquals(NodeType.BOOKMARK_START, builder.getCurrentNode().getNodeType()); | |
Assert.assertTrue(builder.isAtStartOfParagraph()); | |
// A shorter way of moving the very start/end of a document is with these methods. | |
builder.moveToDocumentEnd(); | |
Assert.assertTrue(builder.isAtEndOfParagraph()); | |
builder.moveToDocumentStart(); | |
Assert.assertTrue(builder.isAtStartOfParagraph()); |
Verplaatsen naar het document Start/End
Als je naar het begin van het document moet gaan, bel dan DocumentBuilder.moveToDocumentStart. Als je naar het einde van het document moet gaan, bel dan DocumentBuilder.moveToDocumentEnd.
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
String dataDir = Utils.getDataDir(DocumentBuilderMoveToDocumentStartEnd.class); | |
Document doc = new Document(dataDir + "Document.docx"); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
// Move the cursor position to the beginning of your document. | |
builder.moveToDocumentStart(); | |
builder.writeln("This is the beginning of the document."); | |
// Move the cursor position to the end of your document. | |
builder.moveToDocumentEnd(); | |
builder.writeln("This is the end of the document."); |
Verplaatsen naar een afdeling
Als u werkt met een document dat meerdere secties bevat, kunt u verplaatsen naar een gewenste sectie met behulp van DocumentBuilder.moveToSection. Deze methode verplaatst de cursor naar het begin van een gespecificeerde sectie en accepteert de index van de vereiste sectie. Wanneer de sectie-index groter is dan of gelijk is aan 0, specificeert deze een index vanaf het begin van het document, waarbij 0 de eerste sectie is. Wanneer de sectie-index kleiner is dan 0, specificeert het een index vanaf het einde van het document met -1 als laatste sectie. Delow code voorbeeld laat zien hoe je een cursorpositie naar de gespecificeerde sectie verplaatst. U kunt het sjabloonbestand van dit voorbeeld downloaden van Hier.
// The path to the documents directory. | |
String dataDir = Utils.getDataDir(DocumentBuilderMoveToSection.class); | |
// Open the document. | |
Document doc = new Document(dataDir + "Rendering.docx"); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.moveToSection(2); | |
builder.write("\nThis is third Section\n"); | |
doc.save(dataDir + "output.doc"); |
Verplaatsen naar kop/voet
Wanneer u een aantal gegevens in een header of voettekst moet plaatsen, moet u daar eerst met behulp van DocumentBuilder.moveToHeaderFooter. De methode accepteert een HeaderFooterType tellingswaarde die het type header of voettekst identificeert waar de cursor moet worden verplaatst.
Als u headers en voetteksten wilt maken die anders zijn voor de eerste pagina, moet u de PageSetup.getDifferentFirstPageHeaderFooter eigendom aan true. Als u headers en voetteksten wilt maken die verschillen voor even en oneven pagina’s, moet u deze instellen PageSetup.getOddAndEvenPagesHeaderFooter tot true.
Als je terug moet naar het hoofdverhaal, gebruikDocumentBuilder.moveToSection om uit de kop of voet te komen. Onderstaand voorbeeld maakt headers en footers aan in een document met DocumentBuilder.
Verplaatsing naar een paragraaf
GebruikDocumentBuilder.moveToParagraph om de cursor naar een gewenste paragraaf in de huidige sectie te verplaatsen. Je moet twee parameters doorgeven aan deze methode: paragraphIndex (de index van de paragraaf om naar te verplaatsen) en karakterIndex (de index van het teken in de alinea).
De navigatie wordt uitgevoerd in het huidige verhaal van de huidige sectie. Dat wil zeggen, als je de cursor verplaatst naar de primaire header van de eerste sectie, dan paragraphIndex specificeert de index van de paragraaf in die header van die sectie.
Wanneer paragraphIndex groter is dan of gelijk aan 0, specificeert het een index vanaf het begin van de sectie met 0 als eerste alinea. Wanneer paragraphIndex kleiner is dan 0, specificeert het een index vanaf het einde van de sectie met -1 als laatste alinea. De tekenindex kan momenteel alleen worden opgegeven als 0 om naar het begin van de alinea te gaan of -1 om naar het einde van de alinea te gaan. Het volgende voorbeeld van code laat zien hoe je een cursorpositie naar de gespecificeerde paragraaf verplaatst. U kunt het sjabloonbestand van dit voorbeeld downloaden van Hier.
// The path to the documents directory. | |
String dataDir = Utils.getDataDir(DocumentBuilderMoveToParagraph.class); | |
// Open the document. | |
Document doc = new Document(dataDir + "Rendering.docx"); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.moveToParagraph(2, 0); | |
builder.writeln("This is the 3rd paragraph."); | |
doc.save(dataDir + "output.doc"); |
Verplaatsen naar een tabelcel
Gebruik DocumentBuilder.moveToCell als je de cursor naar een tabelcel in de huidige sectie moet verplaatsen. Deze methode accepteert vier parameters:
- tabelIndex - de index van de tabel om naar te verplaatsen.
- rijIndex - de index van de rij in de tabel.
- kolomIndex - de index van de kolom in de tabel.
- karakterIndex - de index van het teken in de cel.
De navigatie wordt uitgevoerd in het huidige verhaal van de huidige sectie.
Voor de indexparameters, wanneer de index groter is dan of gelijk aan 0, specificeert het een index vanaf het begin met 0 als het eerste element. Wanneer de index kleiner is dan 0, specificeert hij een index vanaf het einde met -1 als laatste element.
Merk ook op dat karakterIndex momenteel alleen 0 kan opgeven om naar het begin van de cel of -1 te verplaatsen naar het einde van de cel. Het volgende voorbeeld van code laat zien hoe je een cursorpositie naar de opgegeven tabelcel verplaatst. U kunt het sjabloonbestand van dit voorbeeld downloaden van Hier.
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
String dataDir = Utils.getDataDir(DocumentBuilderMoveToTableCell.class); | |
Document doc = new Document(dataDir + "Tables.docx"); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
// Move the builder to row 3, cell 4 of the first table. | |
builder.moveToCell(0, 2, 3, 0); | |
builder.write("\nCell contents added by DocumentBuilder"); | |
Table table = (Table)doc.getChild(NodeType.TABLE, 0, true); | |
Assert.assertEquals(table.getRows().get(2).getCells().get(3), builder.getCurrentNode().getParentNode().getParentNode()); | |
Assert.assertEquals("Cell contents added by DocumentBuilderCell 3 contents\u0007", table.getRows().get(2).getCells().get(3).getText().trim()); |
Verplaatsen naar een bladwijzer
Bladwijzers worden vaak gebruikt om bepaalde plaatsen in het document te markeren waar nieuwe elementen moeten worden ingevoegd. Om naar een bladwijzer te gaan gebruiken DocumentBuilder.moveToBookmark. Deze methode heeft twee overbelastingen. De eenvoudigste accepteert niets anders dan de naam van de bladwijzer waar de cursor moet worden verplaatst. Het volgende voorbeeld toont hoe je een cursorpositie naar een bladwijzer verplaatst.
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
// Start a bookmark and add content to it using a DocumentBuilder. | |
builder.startBookmark("MyBookmark"); | |
builder.writeln("Bookmark contents."); | |
builder.endBookmark("MyBookmark"); | |
// If we wish to revise the content of our bookmark with the DocumentBuilder, we can move back to it like this. | |
builder.moveToBookmark("MyBookmark"); | |
// Now we're located between the bookmark's BookmarkStart and BookmarkEnd nodes, so any text the builder adds will be within it. | |
Assert.assertEquals(doc.getRange().getBookmarks().get(0).getBookmarkStart(), builder.getCurrentParagraph().getFirstChild()); | |
// We can move the builder to an individual node, | |
// which in this case will be the first node of the first paragraph, like this. | |
builder.moveTo(doc.getFirstSection().getBody().getFirstParagraph().getChildNodes(NodeType.ANY, false).get(0)); | |
Assert.assertEquals(NodeType.BOOKMARK_START, builder.getCurrentNode().getNodeType()); |
Deze overbelasting verplaatst de cursor naar een positie net na het begin van de bladwijzer met de opgegeven naam. Nog een overbelasting DocumentBuilder.moveToBookmark verplaatst de cursor naar een bladwijzer met grotere precisie. Het accepteert twee extra booleaanse parameters:
- isStart bepaalt of de cursor naar het begin of naar het einde van de bladwijzer verplaatst moet worden.
- isAfter bepaalt of de cursor verplaatst moet worden na de start- of eindpositie van de bladwijzer, of dat de cursor verplaatst moet worden voordat de bladwijzer begint of eindigt.
Het volgende voorbeeld van code laat zien hoe je een cursor positie naar net na de bladwijzer einde.
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getDataDir(DocumentBuilderMoveToBookmarkEnd.class); | |
// Open the document. | |
Document doc = new Document(dataDir + "DocumentBuilder.doc"); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.moveToBookmark("CoolBookmark", false, true); | |
builder.writeln("This is a very cool bookmark."); | |
doc.save(dataDir + "output.doc"); |
Nieuwe tekst op deze manier invoegen vervangt niet de bestaande tekst van de bladwijzer. Merk op dat sommige bladwijzers in het document worden toegewezen aan formuliervelden. Door naar zo’n bladwijzer te gaan en tekst in te voegen wordt de tekst in het formulierveld ingevoerd. Hoewel dit het formulierveld niet ongeldig maakt, zal de ingevoegde tekst niet zichtbaar zijn omdat het deel wordt van de veldcode.
Verplaatsen naar een Merge
Veld
Soms moet u een “handleiding” Mail Merge gebruik DocumentBuilder
of vul een merge veld op een speciale manier in een Mail Merge Event handler. Dat is wanneer DocumentBuilder.moveToMergeField Kan nuttig zijn. De methode accepteert de naam van het mergeveld. Het verplaatst de cursor naar een positie net voorbij het opgegeven merge veld en verwijdert het merge veld. Het volgende voorbeeld van code laat zien hoe je de cursor naar een positie verplaatst net voorbij het opgegeven merge veld.
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
// Insert a field using the DocumentBuilder and add a run of text after it. | |
Field field = builder.insertField("MERGEFIELD field"); | |
builder.write(" Text after the field."); | |
// The builder's cursor is currently at end of the document. | |
Assert.assertNull(builder.getCurrentNode()); | |
// We can move the builder to a field like this, placing the cursor at immediately after the field. | |
builder.moveToField(field, true); | |
// Note that the cursor is at a place past the FieldEnd node of the field, meaning that we are not actually inside the field. | |
// If we wish to move the DocumentBuilder to inside a field, | |
// we will need to move it to a field's FieldStart or FieldSeparator node using the DocumentBuilder.MoveTo() method. | |
Assert.assertEquals(field.getEnd(), builder.getCurrentNode().getPreviousSibling()); | |
builder.write(" Text immediately after the field."); |
Hoe te converteren tussen meeteenheden
De meeste object eigenschappen in de Aspose.Words API die een aantal metingen vertegenwoordigt (breedte/hoogte, marges en verschillende afstanden) accepteren waarden in punten (1 inch is gelijk aan 72 punten). Soms is dit niet handig dus er is de ConvertUtil
klasse die helperfuncties biedt om te converteren tussen verschillende meeteenheden. Het laat het omzetten van inches naar punten, wijst naar inches, pixels naar punten, en wijst naar pixels. Wanneer pixels worden omgezet naar punten en vice versa, kan het worden uitgevoerd op 96 dpi (dots per inch) resoluties of op de opgegeven dpi resolutie.
ConvertUtil is zeer nuttig bij het instellen van verschillende pagina eigenschappen, omdat bijvoorbeeld inches zijn meer gebruikelijke meeteenheden dan punten. Het volgende voorbeeld laat zien hoe u de pagina eigenschappen in inches kunt instellen.
Het volgende voorbeeld van code laat zien hoe pagina eigenschappen in inches te specificeren.
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getDataDir(ConvertBetweenMeasurementUnits.class); | |
// Open the document. | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
PageSetup pageSetup = builder.getPageSetup(); | |
pageSetup.setTopMargin(ConvertUtil.inchToPoint(1.0)); | |
pageSetup.setBottomMargin(ConvertUtil.inchToPoint(1.0)); | |
pageSetup.setLeftMargin(ConvertUtil.inchToPoint(1.5)); | |
pageSetup.setRightMargin(ConvertUtil.inchToPoint(1.5)); | |
pageSetup.setHeaderDistance(ConvertUtil.inchToPoint(0.2)); | |
pageSetup.setFooterDistance(ConvertUtil.inchToPoint(0.2)); | |
doc.save(dataDir + "output.doc"); |