Gebruik DocumentBuilder Om'n Dokument Maklik Te Verander

Spesifiseer Formatering

Skrif Tipe Formatering

Huidige lettertipe formatering word verteenwoordig deur’n Font voorwerp wat deur die DocumentBuilder.Font eienskap teruggestuur word. Die Font klas bevat’n wye verskeidenheid van die lettertipe eienskappe moontlik in Microsoft Word. Hieronder voorbeeld toon hoe om lettertipe formatering stel.

System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Set font formatting properties
System::SharedPtr<Font> font = builder->get_Font();
font->set_Bold(true);
font->set_Color(System::Drawing::Color::get_DarkBlue());
font->set_Italic(true);
font->set_Name(u"Arial");
font->set_Size(24);
font->set_Spacing(5);
font->set_Underline(Underline::Double);
// Output formatted text
builder->Writeln(u"I'm a very nice formatted string.");
System::String outputPath = outputDataDir + u"DocumentBuilderSetFormatting.SetFontFormatting.doc";
doc->Save(outputPath);

Paragraaf Formatering

Huidige paragraaf formatering word verteenwoordig deur’n ParagraphFormat voorwerp wat teruggestuur word deur die DocumentBuilder.ParagraphFormat eienskap. Hierdie voorwerp bevat verskeie paragraaf formatering eienskappe beskikbaar in Microsoft Word. U kan die paragraafformatering maklik terugstel Na standaard Na Normale styl, links in lyn, geen inkeping, geen spasiëring, geen grense en geen skadu deur ParagraphFormat.ClearFormatting te skakel. Hieronder voorbeeld toon hoe om paragraaf formatering stel.

System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Set paragraph formatting properties
System::SharedPtr<ParagraphFormat> paragraphFormat = builder->get_ParagraphFormat();
paragraphFormat->set_Alignment(ParagraphAlignment::Center);
paragraphFormat->set_LeftIndent(50);
paragraphFormat->set_RightIndent(50);
paragraphFormat->set_SpaceAfter(25);
// Output text
builder->Writeln(u"I'm a very nice formatted paragraph. I'm intended to demonstrate how the left and right indents affect word wrapping.");
builder->Writeln(u"I'm another nice formatted paragraph. I'm intended to demonstrate how the space after paragraph looks like.");
System::String outputPath = outputDataDir + u"DocumentBuilderSetFormatting.SetParagraphFormatting.doc";
doc->Save(outputPath);

Werk Met Asiatiese Tipografie

Pas Outomaties Spasie tussen Asiatiese en latynse teks, Syfers Aan

As jy’n sjabloon ontwerp met Beide Oos-Asiatiese en latynse teks, en jy wil die voorkoms van die vorm sjabloon verbeter deur die spasies tussen beide tipes teks te beheer, kan jy jou vorm sjabloon instel om outomaties die spasies tussen hierdie twee tipes teks aan te pas. Jy kan AddSpaceBetweenFarEastAndAlpha en AddSpaceBetweenFarEastAndDigit eienskappe van ParagraphFormat klas gebruik om dit te bereik.

Die volgende kode voorbeeld wys hoe om ParagraphFormat.AddSpaceBetweenFarEastAndAlpha en ParagraphFormat.AddSpaceBetweenFarEastAndDigit eienskappe te gebruik.

System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Set paragraph formatting properties
System::SharedPtr<ParagraphFormat> paragraphFormat = builder->get_ParagraphFormat();
paragraphFormat->set_AddSpaceBetweenFarEastAndAlpha(true);
paragraphFormat->set_AddSpaceBetweenFarEastAndDigit(true);
builder->Writeln(u"Automatically adjust space between Asian and Latin text");
builder->Writeln(u"Automatically adjust space between Asian text and numbers");
System::String outputPath = outputDataDir + u"DocumentBuilderSetFormatting.SetSpacebetweenAsianandLatintext.doc";
doc->Save(outputPath);

Verander Asiatiese Paragraafspasiëring en Inkeping

Die volgende kode voorbeeld demonstreer hoe Om Asiatiese paragraaf spasiëring en inkrimpings te verander.

System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Set paragraph formatting properties
System::SharedPtr<ParagraphFormat> paragraphFormat = builder->get_ParagraphFormat();
paragraphFormat->set_AddSpaceBetweenFarEastAndAlpha(true);
paragraphFormat->set_AddSpaceBetweenFarEastAndDigit(true);
builder->Writeln(u"Automatically adjust space between Asian and Latin text");
builder->Writeln(u"Automatically adjust space between Asian text and numbers");
System::String outputPath = outputDataDir + u"DocumentBuilderSetFormatting.SetSpacebetweenAsianandLatintext.doc";
doc->Save(outputPath);

Stel Lyn Breek Opsies

Asiatiese Tipografie-oortjie van die Paragraph eienskappe dialoog in MS Word het lynbreekgroep. Die opsies van hierdie groep kan ingestel word met behulp van FarEastLineBreakControl, WordWrap, HangingPunctuation eienskappe van ParagraphFormat klas. Weeslow code voorbeeld toon hoe om hierdie eienskappe te gebruik.

System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"Input.docx");
System::SharedPtr<ParagraphFormat> format = doc->get_FirstSection()->get_Body()->get_Paragraphs()->idx_get(0)->get_ParagraphFormat();
format->set_FarEastLineBreakControl(false);
format->set_WordWrap(true);
format->set_HangingPunctuation(false);
System::String outputPath = outputDataDir + u"DocumentBuilderSetFormatting.SetAsianTypographyLinebreakGroupProp.docx";
doc->Save(outputPath);

Selformatering

Selformatering word gebruik tydens die bou van’n tafel. Dit word voorgestel deur’n CellFormat voorwerp wat deur die DocumentBuilder.CellFormat eienskap teruggestuur word. CellFormat bevat verskeie tabel sel eienskappe soos breedte of vertikale belyning. Hieronder voorbeeld toon hoe om’n tabel wat’n enkele geformateerde sel bevat skep.

System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
builder->StartTable();
builder->InsertCell();
// Set the cell formatting
System::SharedPtr<CellFormat> cellFormat = builder->get_CellFormat();
cellFormat->set_Width(250);
cellFormat->set_LeftPadding(30);
cellFormat->set_RightPadding(30);
cellFormat->set_TopPadding(30);
cellFormat->set_BottomPadding(30);
builder->Writeln(u"I'm a wonderful formatted cell.");
builder->EndRow();
builder->EndTable();
System::String outputPath = outputDataDir + u"DocumentBuilderSetFormatting.SetTableCellFormatting.doc";
doc->Save(outputPath);

Ry Formatering

Huidige ry formatering word bepaal deur’n RowFormat voorwerp wat teruggestuur word deur die DocumentBuilder.RowFormat eienskap. Die voorwerp bevat inligting oor alle tabel ry formatering. Hieronder voorbeeld toon hoe om’n tabel wat’n enkele sel bevat te skep en ry formatering toe te pas.

System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
System::SharedPtr<Table> table = builder->StartTable();
builder->InsertCell();
// Set the row formatting
System::SharedPtr<RowFormat> rowFormat = builder->get_RowFormat();
rowFormat->set_Height(100);
rowFormat->set_HeightRule(HeightRule::Exactly);
// These formatting properties are set on the table and are applied to all rows in the table.
table->set_LeftPadding(30);
table->set_RightPadding(30);
table->set_TopPadding(30);
table->set_BottomPadding(30);
builder->Writeln(u"I'm a wonderful formatted row.");
builder->EndRow();
builder->EndTable();
System::String outputPath = outputDataDir + u"DocumentBuilderSetFormatting.SetTableRowFormatting.doc";
doc->Save(outputPath);

Lys Opmaak

Aspose.Words laat die maklike skepping van lyste toe deur lysformatering toe te pas. DocumentBuilder verskaf die DocumentBuilder.ListFormat eienskap wat’n ListFormat voorwerp terugkeer. Hierdie voorwerp het verskeie metodes om’n lys te begin en te beëindig en om die inkeping te verhoog/verminder. Daar is twee algemene tipes lyste in Microsoft Word: met kolletjies en genommer.

  • Om’n lys met kolletjies te begin, bel ListFormat.ApplyBulletDefault.
  • Om’n genommerde lys te begin, bel ListFormat.ApplyNumberDefault.

Die koeël of nommer en formatering word by die huidige paragraaf gevoeg en alle verdere paragrawe word geskep met behulp van DocumentBuilder totdat ListFormat.RemoveNumbers geroep word om die formatering van die lys met kolletjies te stop. In Word-dokumente kan lyste uit tot nege vlakke bestaan. Lys opmaak vir elke vlak spesifiseer watter koeël of nommer gebruik word, links inkeping, spasie tussen die koeël en teks ens.

  • Om die lysvlak van die huidige paragraaf met een vlak te verhoog, bel ListFormat.ListIndent.
  • Om die lys vlak van die huidige paragraaf te verminder deur een vlak, bel ListFormat.ListOutdent.

Die metodes verander die lys vlak en pas die formatering eienskappe van die nuwe vlak.

Hieronder voorbeeld toon hoe om’n multilevel lys te bou.

System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
builder->get_ListFormat()->ApplyNumberDefault();
builder->Writeln(u"Item 1");
builder->Writeln(u"Item 2");
builder->get_ListFormat()->ListIndent();
builder->Writeln(u"Item 2.1");
builder->Writeln(u"Item 2.2");
builder->get_ListFormat()->ListIndent();
builder->Writeln(u"Item 2.2.1");
builder->Writeln(u"Item 2.2.2");
builder->get_ListFormat()->ListOutdent();
builder->Writeln(u"Item 2.3");
builder->get_ListFormat()->ListOutdent();
builder->Writeln(u"Item 3");
builder->get_ListFormat()->RemoveNumbers();
System::String outputPath = outputDataDir + u"DocumentBuilderSetFormatting.SetMultilevelListFormatting.doc";
doc->Save(outputPath);

Bladsy Opstelling en Afdeling Formatering

Bladsy opstel en afdeling eienskappe is ingesluit in die PageSetup voorwerp wat teruggestuur word deur die DocumentBuilder.PageSetup eiendom. Die voorwerp bevat al die bladsy opstel eienskappe van’n afdeling (links marge, onderste marge, papier grootte, en so aan) as eienskappe. Hieronder voorbeeld toon hoe om sulke eienskappe soos bladsy grootte en oriëntasie vir die huidige afdeling stel.

System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Set page properties
builder->get_PageSetup()->set_Orientation(Orientation::Landscape);
builder->get_PageSetup()->set_LeftMargin(50);
builder->get_PageSetup()->set_PaperSize(PaperSize::Paper10x14);
System::String outputPath = outputDataDir + u"DocumentBuilderSetFormatting.SetPageSetupAndSectionFormatting.doc";
doc->Save(outputPath);

Die Toepassing Van’n Styl

Sommige formatering voorwerpe soos Lettertipe of ParagraphFormat ondersteun style. ‘n enkele ingeboude of gebruiker gedefinieerde styl word verteenwoordig deur’n Style voorwerp wat die ooreenstemmende styl eienskappe soos naam, basis styl, lettertipe en paragraaf formatering van die styl, en so aan bevat.

Verder, ‘n Style voorwerp bied die Style.StyleIdentifier eienskap wat’n locale-onafhanklike styl identifiseerder verteenwoordig deur’n Style.StyleIdentifier opsomming waarde terugkeer. Die punt is dat die name van ingeboude style in Microsoft Word gelokaliseer is vir verskillende tale. Deur’n stylidentifiseerder te gebruik, kan jy die korrekte styl vind, ongeag die dokumenttaal. Die opsomming waardes ooreenstem met die Microsoft Word ingeboude style soos Normale, Kop 1, Kop 2 ens. Alle gebruiker-gedefinieerde style word die StyleIdentifier.User value toegeken. Hieronder voorbeeld toon hoe om’n paragraaf styl toe te pas.

System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Set paragraph style
builder->get_ParagraphFormat()->set_StyleIdentifier(StyleIdentifier::Title);
builder->Write(u"Hello");
System::String outputPath = outputDataDir + u"DocumentBuilderSetFormatting.ApplyParagraphStyle.doc";
doc->Save(outputPath);

Grense en Skadu

Grense word verteenwoordig deur die BorderCollection. Dit is’n versameling Van Grens voorwerpe wat verkry word deur indeks of deur grens tipe. Grens tipe word verteenwoordig deur die BorderType opsomming. Sommige waardes van die opsomming is van toepassing op verskeie of slegs een dokument element. Byvoorbeeld, BorderType.Bottom is van toepassing op’n paragraaf of tabel sel terwyl BorderType.DiagonalDown spesifiseer die diagonale rand in’n tabel sel net.

Beide die randversameling en elke afsonderlike rand het soortgelyke eienskappe soos kleur, lynstyl, lynbreedte, afstand van teks en opsionele skaduwee. Hulle word verteenwoordig deur eiendomme met dieselfde naam. U kan verskillende soorte grense bereik deur die eiendomswaardes te kombineer. Daarbenewens, beide BorderCollection en Border voorwerpe toelaat dat jy hierdie waardes te herstel na verstek deur die roeping van die Border.ClearFormatting metode. Let daarop dat wanneer grens eienskappe is teruggestel na standaard waardes, die grens is onsigbaar. Die Shading klas bevat skadu eienskappe vir dokument elemente. U kan die gewenste skadu-tekstuur en die kleure wat op die agtergrond en voorgrond van die element toegepas word, instel.

Die skadu tekstuur is ingestel met’n TextureIndex opsomming waarde wat die toepassing van verskeie patrone op die Shading voorwerp toelaat. Byvoorbeeld, om’n agtergrond kleur vir’n dokument element stel, gebruik die TextureIndex.TextureSolid waarde en stel die voorgrond skadu kleur soos toepaslik. Hieronder voorbeeld toon hoe om grense en skadu aan’n paragraaf toe te pas.

System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Set paragraph borders
System::SharedPtr<BorderCollection> borders = builder->get_ParagraphFormat()->get_Borders();
borders->set_DistanceFromText(20);
borders->idx_get(BorderType::Left)->set_LineStyle(LineStyle::Double);
borders->idx_get(BorderType::Right)->set_LineStyle(LineStyle::Double);
borders->idx_get(BorderType::Top)->set_LineStyle(LineStyle::Double);
borders->idx_get(BorderType::Bottom)->set_LineStyle(LineStyle::Double);
// Set paragraph shading
System::SharedPtr<Shading> shading = builder->get_ParagraphFormat()->get_Shading();
shading->set_Texture(TextureIndex::TextureDiagonalCross);
shading->set_BackgroundPatternColor(System::Drawing::Color::get_LightCoral());
shading->set_ForegroundPatternColor(System::Drawing::Color::get_LightSalmon());
builder->Write(u"I'm a formatted paragraph with double border and nice shading.");
System::String outputPath = outputDataDir + u"DocumentBuilderSetFormatting.ApplyBordersAndShadingToParagraph.doc";
doc->Save(outputPath);

Snap Na Rooster

Aspose.Words bied twee eienskappe ParagraphFormat.SnapToGrid en Font.SnapToGrid om te kry en stel paragraaf eienskap snap om rooster.

System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"Input.docx");
System::SharedPtr<Paragraph> par = doc->get_FirstSection()->get_Body()->get_FirstParagraph();
par->get_ParagraphFormat()->set_SnapToGrid(true);
par->get_Runs()->idx_get(0)->get_Font()->set_SnapToGrid(true);
const System::String outputPath = outputDataDir + u"SetSnapToGrid_out.doc";
doc->Save(outputPath);

Beweeg Die Wyser

Bespeur Die Huidige Wyserposisie

Jy kan enige tyd kry waar die bouer se wyser tans geposisioneer is. Die DocumentBuilder.CurrentNode eiendom gee terug die node wat tans gekies in hierdie bouer. Die knoop is’n direkte kind van’n paragraaf. Enige insetselbewerkings wat u met DocumentBuilder uitvoer, sal voor die DocumentBuilder.CurrentNode invoeg. Wanneer die huidige paragraaf is leeg of die wyser is geposisioneer net voor die einde van die paragraaf, DocumentBuilder.CurrentNode gee null.

Jy kan ook die DocumentBuilder.CurrentParagraph eienskap gebruik, wat die paragraaf kry wat tans in hierdie DocumentBuilder gekies is. Hieronder voorbeeld toon hoe om toegang tot die huidige node in’n dokument bouer. Jy kan sjabloon lêer van hierdie voorbeeld van hier af te laai.

// Shows how to access the current node in a document builder.
System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"DocumentBuilder.doc");
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
System::SharedPtr<Node> curNode = builder->get_CurrentNode();
System::SharedPtr<Paragraph> curParagraph = builder->get_CurrentParagraph();

Beweeg Na Enige Nodus (Paragrawe en Hul Kinders)

As jy’n dokumentvoorwerpknooppunt het, wat’n paragraaf of’n direkte kind van’n paragraaf is, kan jy die bouer se wyser na hierdie knoop wys. Gebruik die DocumentBuilder.MoveTo metode om dit uit te voer. Hieronder voorbeeld toon hoe om’n wyser posisie te skuif na’n gespesifiseerde knoop. Jy kan sjabloon lêer van hierdie voorbeeld van hier af te laai.

System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"DocumentBuilder.doc");
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
builder->MoveTo(doc->get_FirstSection()->get_Body()->get_LastParagraph());

Skuif Na Die Dokument Begin / Einde

As jy na die begin van die dokument moet skuif, bel DocumentBuilder.MoveToDocumentStart. As jy na die einde van die dokument moet skuif, bel DocumentBuilder.MoveToDocumentEnd. Hieronder voorbeeld toon hoe om’n wyser posisie te skuif na die begin of einde van’n dokument. Jy kan sjabloon lêer van hierdie voorbeeld van hier af te laai.

System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"DocumentBuilder.doc");
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
builder->MoveToDocumentEnd();
std::cout << "This is the end of the document." << std::endl;
builder->MoveToDocumentStart();
std::cout << "This is the beginning of the document." << std::endl;

Beweeg na’n Afdeling

As jy met’n dokument werk wat verskeie afdelings bevat, kan jy na’n verlangde afdeling beweeg met DocumentBuilder.MoveToSection. Hierdie metode beweeg die wyser na die begin van’n gespesifiseerde afdeling en aanvaar die indeks van die vereiste afdeling. Wanneer die afdeling indeks is groter as of gelyk aan 0, dit spesifiseer’n indeks van die begin van die dokument met 0 wat die eerste afdeling. Wanneer die afdeling indeks is minder as 0, dit spesifiseer’n indeks van die einde van die dokument met -1 die laaste afdeling. Hieronder voorbeeld toon hoe om’n wyser posisie te skuif na die gespesifiseerde afdeling. Jy kan sjabloon lêer van hierdie voorbeeld van hier af te laai.

System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"DocumentBuilder.doc");
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Parameters are 0-index. Moves to third section.
builder->MoveToSection(2);
builder->Writeln(u"This is the 3rd section.");

Beweeg na’n Koptekst / Voetskrif

Wanneer jy’n paar data in’n kop of voetskrif moet plaas, moet jy eers daarheen beweeg met DocumentBuilder.MoveToHeaderFooter. Die metode aanvaar’n HeaderFooterType opsomming waarde wat die tipe kop of voetskrif identifiseer waarheen die wyser verskuif moet word. As jy opskrifte en voetskrifte wil skep wat vir die eerste bladsy verskil, moet jy die PageSetup.DifferentFirstPageHeaderFooter eienskap op true stel. As jy opskrifte en voetskrifte wil skep wat verskil vir ewe en onewe bladsye, moet jy PageSetup.OddAndEvenPagesHeaderFooter op true stel.

As u na die hoofverhaal moet terugkeer, gebruik DocumentBuilder.MoveToSection om uit die koptekst of voetskrif te beweeg. Hieronder voorbeeld skep koptekste en voetskrifte in’n dokument met behulp van DocumentBuilder.

// Create a blank document.
System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Specify that we want headers and footers different for first, even and odd pages.
builder->get_PageSetup()->set_DifferentFirstPageHeaderFooter(true);
builder->get_PageSetup()->set_OddAndEvenPagesHeaderFooter(true);
// Create the headers.
builder->MoveToHeaderFooter(HeaderFooterType::HeaderFirst);
builder->Write(u"Header First");
builder->MoveToHeaderFooter(HeaderFooterType::HeaderEven);
builder->Write(u"Header Even");
builder->MoveToHeaderFooter(HeaderFooterType::HeaderPrimary);
builder->Write(u"Header Odd");
// Create three pages in the document.
builder->MoveToSection(0);
builder->Writeln(u"Page1");
builder->InsertBreak(BreakType::PageBreak);
builder->Writeln(u"Page2");
builder->InsertBreak(BreakType::PageBreak);
builder->Writeln(u"Page3");
System::String outputPath = outputDataDir + u"DocumentBuilderMovingCursor.HeadersAndFooters.doc";
doc->Save(outputPath);

Beweeg Na’n Paragraaf

Gebruik DocumentBuilder.MoveToParagraph om die wyser na’n verlangde paragraaf in die huidige afdeling te skuif. Jy moet twee parameters aan hierdie metode slaag: paragraphIndex (die indeks van die paragraaf om na te beweeg) en characterIndex (die indeks van die karakter binne die paragraaf).

Die navigasie word uitgevoer binne die huidige storie van die huidige afdeling. Dit wil sê, as jy die wyser na die primêre kop van die eerste afdeling verskuif het, spesifiseer paragraphIndex die indeks van die paragraaf binne daardie kop van daardie afdeling.

Wanneer paragraphIndex groter of gelyk is aan 0, spesifiseer dit’n indeks vanaf die begin van die afdeling met 0 as die eerste paragraaf. Wanneer paragraphIndex kleiner is as 0, spesifiseer dit’n indeks aan die einde van die afdeling met -1 as die laaste paragraaf.

Die karakter indeks kan tans slegs gespesifiseer word as 0 om te skuif na die begin van die paragraaf of -1 om te skuif na die einde van die paragraaf. Hieronder voorbeeld toon hoe om’n wyser posisie te skuif na die gespesifiseerde paragraaf. Jy kan sjabloon lêer van hierdie voorbeeld van hier af te laai.

System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"DocumentBuilder.doc");
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Parameters are 0-index. Moves to third paragraph.
builder->MoveToParagraph(2, 0);
builder->Writeln(u"This is the 3rd paragraph.");

Beweeg Na’n Tabel Sel

Gebruik DocumentBuilder.MoveToCell as u die wyser na’n tabelsel in die huidige afdeling moet skuif. Hierdie metode aanvaar vier parameters:

  • tableIndex - die indeks van die tabel om na te beweeg.
  • rowIndex - die indeks van die ry in die tabel.
  • columnIndex - die indeks van die kolom in die tabel.
  • characterIndex - die indeks van die karakter binne die sel.

Die navigasie word uitgevoer binne die huidige storie van die huidige afdeling. Vir die indeksparameters, wanneer indeks groter is as of gelyk is aan 0, spesifiseer dit’n indeks van die begin af met 0 as die eerste element. Wanneer indeks kleiner is as 0, spesifiseer dit’n indeks van die einde af met -1 as die laaste element.

Let ook daarop dat characterIndex tans slegs 0 kan spesifiseer om na die begin van die sel te beweeg of -1 om na die einde van die sel te beweeg. Hieronder voorbeeld toon hoe om’n wyser posisie te skuif na die gespesifiseerde tabel sel. Jy kan sjabloon lêer van hierdie voorbeeld van hier af te laai.

System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"DocumentBuilder.doc");
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// All parameters are 0-index. Moves to the 2nd table, 3rd row, 5th cell.
builder->MoveToCell(1, 2, 4, 0);
builder->Writeln(u"Hello World!");

Skuif Na’n Boekmerk

Boekmerke word dikwels gebruik om spesifieke plekke in die dokument te merk waar nuwe elemente ingevoeg moet word. Om na’n boekmerk te beweeg, gebruik DocumentBuilder.MoveToBookmark. Hierdie metode het twee oorladings. Die eenvoudigste aanvaar niks anders as die naam van die boekmerk waar die wyser verskuif moet word nie. Hieronder voorbeeld toon hoe om’n wyser posisie te skuif na’n boekmerk. Jy kan sjabloon lêer van hierdie voorbeeld van hier af te laai.

System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"DocumentBuilder.doc");
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
builder->MoveToBookmark(u"CoolBookmark");
builder->Writeln(u"This is a very cool bookmark.");

Hierdie oorlading beweeg die wyser na’n posisie net na die begin van die boekmerk met die gespesifiseerde naam. Nog’n oorlading DocumentBuilder.MoveToBookmark beweeg die wyser na’n boekmerk met groter presisie. Dit aanvaar twee addisionele booleaanse parameters:

  • isStart bepaal of die wyser na die begin of na die einde van die boekmerk geskuif moet word.
  • isAfter bepaal of die wyser na die begin-of eindposisie van die boekmerk geskuif moet word, of om die wyser na die begin-of eindposisie van die boekmerk te skuif.

Hieronder voorbeeld toon hoe om’n wyser posisie te skuif na net na die boekmerk einde.

System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"DocumentBuilder.doc");
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
builder->MoveToBookmark(u"CoolBookmark", false, true);
builder->Writeln(u"This is a very cool bookmark.");

Die vergelyking vir beide metodes is nie hooflettergevoelig nie.

Die invoeging van nuwe teks op hierdie manier vervang nie die bestaande teks van die boekmerk nie. Let daarop dat sommige boekmerke in die dokument aan vormvelde toegeken word. As jy na so’n boekmerk beweeg en teks daar invoeg, word die teks in die vormveldkode ingevoeg. Alhoewel dit nie die vormveld ongeldig sal maak nie, sal die ingevoegde teks nie sigbaar wees nie omdat dit deel word van die veldkode.

Hoe Om Te Skakel Tussen Maateenhede

Die meeste van die voorwerp eienskappe wat in die Aspose.Words API wat’n paar meting (breedte/hoogte, marges en verskeie afstande) verteenwoordig aanvaar waardes in punte (1 duim is gelyk aan 72 punte). Soms is dit nie gerieflik nie, so daar is die ConvertUtil klas wat helper funksies bied om tussen verskillende meet eenhede te omskep. Dit laat toe om duim in punte, punte in duim, pixels in punte en punte in pixels om te skakel. Wanneer pixels omgeskakel word na punte en omgekeerd, kan dit uitgevoer word by 96 dpi (punte per duim) resolusies of by die gespesifiseerde dpi resolusie. ConvertUtil

System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
System::SharedPtr<PageSetup> pageSetup = builder->get_PageSetup();
pageSetup->set_TopMargin(ConvertUtil::InchToPoint(1.0));
pageSetup->set_BottomMargin(ConvertUtil::InchToPoint(1.0));
pageSetup->set_LeftMargin(ConvertUtil::InchToPoint(1.5));
pageSetup->set_RightMargin(ConvertUtil::InchToPoint(1.5));
pageSetup->set_HeaderDistance(ConvertUtil::InchToPoint(0.2));
pageSetup->set_FooterDistance(ConvertUtil::InchToPoint(0.2));