Bir Dokümanı Değiştirmek için DocumentBuilder'u Kullanmak

Biçimlendirme Belirtmek

Font Biçimlendirme

Geçerli yazı tipisi biçimi bir Font nesnesi tarafından temsil edilir, döndürülen DocumentBuilder.Font özelliğinin. Font sınıfı Microsoft Word’de olası çok çeşitli yazı tipi özellikleri içerir.

font-formatting-aspose-words-java
Aşağıdaki kod örneği, yazı tipi biçimlendirmesini ayarlamayı gösterir.
// 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.");

Hücre Biçimlendirme

Cell formatlaması bir tablo oluştururken kullanılır. CellFormat nesnesi tarafından temsil edilir ve DocumentBuilder.CellFormat özelliğinden döndürülür. CellFormat çeşitli tablo hücresi özelliklerini kapsülleyen, örneğin genişlik veya dikey hizalamayı.

cell-formatting-aspose-words-java
Aşağıdaki kod örneği, tek bir biçimlendirilmiş hücre içeren bir tablo oluşturmayı gösterir.
// 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");

Sıra Biçimlendirme

Geçerli satır biçimlendirmesi bir RowFormat nesnesi tarafından belirlenir ve bu nesne DocumentBuilder.RowFormat özelliğinden döndürülür. Nesne tüm tablo satırı biçimlendirme hakkında bilgi içerir.

row-formatting-aspose-words-java
The be low code örneği tek bir hücre içeren bir tablo oluşturmak ve satır biçimlendirme uygulamak için nasıl yapılacağını gösterir.
// 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");

Liste Biçimlendirme

Aspose.Words liste biçimlendirme uygulayarak kolayca oluşturulmasını sağlar. DocumentBuilder, bir DocumentBuilder.ListFormat nesnesi döndüren ListFormat özelliğini sunar. Bu nesne, bir listeyi başlatmak ve bitirmek ve girintiyi artırmak/azaltmak için çeşitli yöntemlere sahiptir.

list-fformatting-aspose-words-java
Microsoft Word ‘da iki genel tür liste vardır: damlalı ve numaralandırılmış.

İşaret veya sayı biçimlendirme, geçerli paragraf ve DocumentBuilder kullanılarak oluşturulan tüm sonraki paragraflara eklenir ve ListFormat.removeNumbers çağrılıncaya kadar dur demek için kullanılır.

Word belgeleri içinde listeler dokuz seviyeye kadar olabilir. Her seviyedeki liste biçimlendirmesi hangi nokta veya numaranın kullanıldığını, sol girintinin, nokta ve metnin arasında boşluğun vb. belirtir.

Yöntemler, liste düzeyini değiştirir ve yeni düzeyin biçimlendirme özelliklerini uygular.

Aşağıdaki kod örneği bir çok düzeyli liste nasıl oluşturulacağını göstermektedir.

// 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");

Sayfa Kurulumu ve Bölüm Biçimlendirme

Sayfa kurulumu ve bölüm özellikleri PageSetup nesnesinde kapsüllenmiştir, bu da DocumentBuilder.PageSetup özelliğinin döndürdüğü nesnedir. Nesne tüm bölümlerin sayfa kurulumu özniteliklerini (sol kenar boşluğu, alt kenar boşluğu, kağıt boyutu vb.) özellik olarak içerir.

section-formatting-aspose-words-java
Aşağıdaki kod örneği şu özelliklerin nasıl ayarlandığını gösterir: sayfa boyutu ve yönelim geçerli bölüm için".
// 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");

Bir Stil Uygulama

Bazı biçimlendirme nesneleri, Örneğin: Yazı Tipi veya ParagrafBiçimlendirmenin desteklediği stiller. Tek bir yerleşik veya kullanıcı tarafından tanımlanan stilin temsilinin bir Style nesnesi içindeki ilgili stil özellikleri gibi adı, temel stil, yazı tipi ve paragraf biçimi gibi ve benzeri.

Ayrıca bir Style nesnesi Style.getStyleIdentifier özelliğini sağlar ve bu da Style.StyleIdentifier değerine sahip olmayan bölge bağımsız stil tanımlayıcısı döndürür. Dikkat edilmesi gereken nokta yerleşik stillerin Microsoft Word isimleri farklı dillerde yerelleştirilmiştir. Bir stil tanımlayıcısını kullanarak, dil ne olursa olsun doğru stili bulabilirsiniz. Değerler Microsoft Word yerleşik stiller gibi Normal, Başlık 1, Başlık 2 vb. ile karşılık gelir. Tüm kullanıcı tarafından tanımlanan stillere Styleidentifier kullanıcı değeri değeri atanır.

apply-style-aspose-words-java
Aşağıdaki kod örneği, paragraf stilini nasıl uygulayacağını göstermektedir.
// 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");

Sınırlar ve Gölgeleme

Sınırlar, Sınır Koleksiyonu tarafından temsil edilir. Bu, bir dizin veya sınır türü tarafından erişilen Sınır nesnelerinin bir koleksiyonudur. Sınır türü, BorderType numaralandırması tarafından temsil edilir. Numaralandırmanın bazı değerleri birden fazla veya yalnızca bir belge öğesine uygulanabilir. Örneğin, BorderType.Bottom bir paragraf veya tablo hücresine uygulanırken BorderType.DiagonalDown yalnızca bir tablo hücresindeki çapraz sınır belirtir.

Sınır koleksiyonu ve her ayrı sınır benzer özelliklere sahiptir: renk, çizgi stili, çizgi kalınlığı, metinden uzaklık ve isteğe bağlı gölge. Bunlar aynı isimlerdeki özelliklerle temsil edilirler. Farklı sınır tipleri elde etmek için özellik değerlerini birleştirerek bunu yapabilirsiniz. Buna ek olarak, hem 0 BorderCollection hem de 1 Border nesneleri bu değerleri varsayılan olarak sıfırlamak için çağrılabilen bir 2 Border.clearFormatting yöntemine sahiptir. Sınır özellikleri varsayılan değerlere sıfırlandığında sınırın görünmez olduğunu unutmayın.

set-borders-shading-aspose-words-java
The Shading sınıfı belge öğeleri için gölgelendirme özniteliklerini içerir. İstenen gölgelendirme dokusunu ve öğenin arka plan ve ön planına uygulanan renkleri ayarlayabilirsiniz.

Gölgeleme dokusu çeşitli desenlerin Shading nesnesine uygulanmasına izin veren bir TextureIndex değer ile ayarlanır. Örneğin, bir belge öğesi için bir arka plan rengi ayarlamak için TextureIndex.TextureSolid değerini kullanın ve ön plan gölge rengini gerektiği şekilde ayarlayın.

borders-and-shading-aspose-words-java
Aşağıdaki örnek, bir paragrafta nasıl kenarlık ve gölgelendirme uygulanacağını göstermektedir.
// 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");

Snap to Grid

Aspose.Words paragraf özelliklerini almak ve ayarlamak için iki özellik sağlar; ParagraphFormat.SnapToGrid ve Font.SnapToGrid

// 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);

Kursörü Hareket Ettirmek

Geçerli Fare Konumunu Tespit Etme

Her zaman inşa edici’nin geçerli konumunu alabilirsiniz. DocumentBuilder.getCurrentNode özelliği şu anda bu oluşturucuda seçilen düğüme karşılık gelir. Düğüm bir paragrafın doğrudan çocuğudur. DocumentBuilder kullanarak gerçekleştirdiğiniz tüm ekleme işlemleri, DocumentBuilder.CurrentNode‘nin önünde eklenir. Geçerli paragraf boşsa veya imleç paragrafın sonundan hemen önce konumlandırılmışsa, DocumentBuilder.CurrentNode null döndürür.

Ayrıca, şu anda bu DocumentBuilder‘da seçili olan paragrafı almak için DocumentBuilder.getCurrentParagraph özelliğini kullanabilirsiniz. Be low code örneği bir belge oluşturucusunda geçerli düğüme erişmenin nasıl yapılacağını göstermektedir.

// 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");

Herhangi Bir Düğüm’e Taşınma (Paragraflar ve Çocukları)

Bir belge nesne düğümüne sahipseniz ve bu bir paragraf veya paragrafın doğrudan çocuğudur, kurucunun imlemini bu düğüme işaret edebilirsiniz. Bunu yapmak için DocumentBuilder.moveTo yöntemini kullanın. Aşağıdaki kod örneği, bir imlemin konumunu belirtilen bir düğüme nasıl hareket ettireceğini gösterir.

// 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());

Belge Başlangıcı/Bitişine Geçmek

Eğer belgenin başına gitmeniz gerekiyorsa DocumentBuilder.moveToDocumentStart çağrın. Eğer belgenin sonuna gitmeniz gerekiyorsa DocumentBuilder.moveToDocumentEnd çağrın.

// 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.");

Bir Bölüm’e Geçmek

Bir belgeye birden fazla bölüm içeren çalışıyorsanız, istediğiniz bölüme DocumentBuilder.moveToSection kullanarak geçebilirsiniz. Bu yöntem, belirtilen bir bölümün başına imleci taşır ve gerekli bölümün dizinini kabul eder. Bölüm dizini sıfırdan büyük veya ona eşit olduğunda, bunu belgenin başlangıcından itibaren bir dizinden belirtir, 0’ın ilk bölümü olduğu anlamına gelir. Bölüm dizini sıfırdan küçük olduğunda, bunu belgenin sonundan itibaren bir dizinden belirtir, -1’in son bölümü olduğu anlamına gelir. Örnek below code, imlecin belirtilen bölüme nasıl taşınacağını göstermektedir. Bu örnek şablon dosyasını here adresinden indirebilirsiniz.

// 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");

Başlık/Altbilgi’ye Geçiş Yapıyor

Bir başlık veya altbilgiye bazı verileri yerleştirmek istediğinizde önce DocumentBuilder.moveToHeaderFooter kullanarak oraya gitmelisiniz. Yöntem, başlık veya altbilgi türünü belirten bir BaşlıkAltbilgi Türü numaralandırma değeri kabul eder ve imlecin nereye taşınacağını belirtir.

Eğer başlıklar ve altbilgiler oluşturmak istiyorsanız ve bunlar ilk sayfaya özgü farklı olsunlar, bu özellik PageSetup.getDifferentFirstPageHeaderFooter‘yi true‘a ayarlamanız gerekir. Eğer başlıklar ve altbilgiler oluşturmak istiyorsanız ve bunlar çiftten tek tarafa farklı olsunlar, bu özellik PageSetup.getOddAndEvenPagesHeaderFooter‘ü true‘a ayarlamanız gerekir.

Ana hikayeye geri dönmeniz gerekirse, başlık veya altbilgi oluşturmak için bir belgede DocumentBuilder.moveToSection kullanın. Aşağıdaki örnek, bir Belge Oluşturucu kullanarak başlıklar ve altbilgiler oluşturur.

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
String dataDir = Utils.getDataDir(DocumentBuilderHeadersAndFooters.class);
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Specify that we want headers and footers different for first, even and odd pages.
builder.getPageSetup().setDifferentFirstPageHeaderFooter(true);
builder.getPageSetup().setOddAndEvenPagesHeaderFooter(true);
// Create the headers.
builder.moveToHeaderFooter(HeaderFooterType.HEADER_FIRST);
builder.write("Header for the first page");
builder.moveToHeaderFooter(HeaderFooterType.HEADER_EVEN);
builder.write("Header for even pages");
builder.moveToHeaderFooter(HeaderFooterType.HEADER_PRIMARY);
builder.write("Header for all other pages");
// Create two pages in the document.
builder.moveToSection(0);
builder.writeln("Page1");
builder.insertBreak(BreakType.PAGE_BREAK);
builder.writeln("Page2");
doc.save(dataDir + "DocumentBuilder.HeadersAndFooters.docx");

Bir Paragraf’a Geçmek

Kullanım DocumentBuilder.moveToParagraph mevcut bölümde istediğiniz paragrafta imleç yerleştirmek için. Bu yöntemi kullanmak için iki parametre geçmeniz gerekir: paragrafDizin (paragrafın dizini paraya gitmek) ve karakterDizin (karakterin paragraf içindeki dizini).

Geçerli bölümün geçerli öyküsü içinde yönlendirme gerçekleştirilir. Yani, eğer imleci ilk bölüme ait ana başlığa hareket ettirirseniz, paragraphIndex bu başlığın içinde bu bölümdeki paragrafın dizinini belirtir.

ParagrafIndex sıfırdan büyük veya eşit olduğunda, bölümün başından başlayarak bir dizini belirtir, sıfır birinci paragrafı belirtir. ParagrafIndex eksi sıfırdan küçük olduğunda, bölümün sonundan başlayarak bir dizini belirtir, eksi bir son paragraftır. Karakter dizini şu anda sadece 0’a sıfırlayarak paragrafın başına veya -1’e sıfırlayarak paragrafın sonuna hareket edebilir. Aşağıdaki örnek kodda belirtilen bir paragrafa bir imleti nasıl taşıyacağınız gösterilmiştir. Bu örneğin şablon dosyasını here‘dan indirebilirsiniz.

// 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");

Bir Masa Hücresine Geçiş Yapma

Kullan DocumentBuilder.moveToCell eğer şu anki bölümde bir tablo hücresine okçu taşımak istiyorsanız. Bu yöntem dört parametre kabul eder:

-tableIndex - hareket ettirilecek tablonun dizini.

  • rowIndex - tablodaki satırın dizini. -columnIndex- tablo içindeki sütunun dizini.
  • karakterIndeksi - hücrenin içindeki karakterin dizini.

Geçerli bölümdeki geçerli hikayede içerik navigasyonu gerçekleştirilir.

Dizin parametreleri için, dizin 0 veya ondan büyük veya eşit olduğunda, 0 başlangıçtan bir dizin belirtir ve ilk öğe ilk öğedir. Dizin -1’den küçük olduğunda, son öğeden bir dizin belirtir ve son öğe -1’dir.

Ayrıca not edin ki karakter dizini şu anda hücrenin başına gitmek için 0’ı veya hücrenin sonuna gitmek için -1’i belirtmek dışında bir şey yapamaz. Aşağıdaki örnek kod, imleci belirtilen tablo hücresine nasıl hareket ettireceğini göstermektedir. Bu örneğin şablon dosyasını here‘dan indirebilirsiniz.

// 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());

Bir İşaret Çubuğuna Geçmek

Yeni öğeler eklenmek üzere bir belgedeki özel yerleri işaretlemek için sık sık yer imleri kullanılır. Bir yere yer imine gitmek için DocumentBuilder.moveToBookmark kullanın. Bu yöntem iki aşırı yüklemedir. En basit olanı yalnızca imlecin hareket etmesi gereken yer iminin adını kabul eder. Aşağıdaki kod örneği imleci bir yer imine nasıl hareket ettireceğinizi gösterir.

// 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());

Bu aşırı yük, belirtilen adda bulunan yer imine işaretçiyi taşıyacak. Başka bir aşırı yük DocumentBuilder.moveToBookmark daha yüksek doğrulukla bir yer imine işaretçiyi taşıyacak. İki ek boolean parametre kabul eder:

  • isStart, imleci yer işaretinin başlangıcına veya sonuna taşıyıp taşımayacağını belirler. -isAfter, imzanın başlangıç veya bitiş konumundan sonra fare imlecini hareket ettirmeyi ya da imzanın başlangıç veya bitiş konumundan önce fare imlecini hareket ettirmeyi belirler.

Aşağıdaki kod örneğinde bir imlemin işaretleyici bitişinden hemen sonra konumunu nasıl taşıyacağınız gösterilmiştir.

// 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");

Bu şekilde yeni metin eklemek mevcut işaretleyici metnini değiştirmez. Unutmayın ki bazı belgedeki işaretleyiciler form alanlarına atanır. Böyle bir işaretleyiciye gitmek ve oraya metin eklemek, kodun içine metin ekler. Bu form alanı geçersiz kılmayacak olsa da, eklenen metin görünmez çünkü alan kodunun bir parçası haline gelir.

Mevcut bir Merge Alanına Taşınmak

Bazen bir “el ile” Mail Merge gerçekleştirmek için DocumentBuilder veya bir birleştirme alanını özel bir şekilde doldurmak için bir Mail Merge olay işleyicisi içinde kullanmanız gerekebilir. İşte bu noktada DocumentBuilder.moveToMergeField yararlı olabilir. Yöntem, birleştirme alanı adının adını kabul eder. Belirtilen birleştirme alanının hemen ötesine imleci getirir ve birleştirme alanını kaldırır. Aşağıdaki kod örneği, belirtilen birleştirme alanının hemen ötesine imlecin nasıl getirileceğini göstermektedir.

// 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.");

Ölçüm Birimleri Arasında Dönüştürme Nasıl Yapılır?

Çoğu nesne özelliği sağlanan Aspose.Words API o bazı ölçümler (genişlik / yükseklik, kenar boşlukları ve çeşitli mesafeler) temsil eden nokta değerlerini kabul eder (1 inç eşittir 72 noktaları). Bazen bu uygun değildir, bu yüzden ConvertUtil sınıfı farklı ölçüm birimleri arasında dönüştürme yapmak için yardımcı işlevler sağlayan sağlanır. İnçleri noktaya, noktaları inciye, pikselleri noktaya ve noktaları pikseli dönüştürebilir. Piksele nokta dönüştürülürken veya tersi dönüştürülürken, 96 dpi (noktalar/inç) çözünürlüklerinde veya belirtilen dpi çözünürlüğü ile yapılabilir.

Farklı sayfa özellikleri ayarlarken ConvertUtil çok kullanışlıdır çünkü örneğin inçler noktadan daha sık kullanılan ölçüm birimidir. Aşağıdaki örnekte, sayfa özelliklerini inç olarak ayarlamanın nasıl yapılacağını göstermektedir.

Aşağıdaki kod örneği, inç cinsinden sayfa özelliklerini belirtmeyi gösterir.

// 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");