Aktualizovat pole

Typicky, pole vložené do Microsoft Word již obsahuje aktuální hodnotu. Například pokud je pole vzorec nebo číslo stránky, bude obsahovat správnou vypočtenou hodnotu pro danou verzi dokumentu. Ale pokud máte aplikaci, která vytváří nebo modifikuje dokument s poli, jako je sloučení dvou dokumentů nebo jeho zalidnění s daty, pak musí být ideálně všechna pole aktualizována, aby byl dokument užitečný.

Jak aktualizovat pole

Když je dokument naložen, Aspose.Words napodobuje chování Microsoft Word s možností automaticky aktualizovat pole se vypne. Chování lze shrnout následovně:

  • když otevřete/zachráníte dokument, pole zůstanou neporušená
  • můžete explicitně aktualizovat všechna pole v dokumentu, například obnovit TOC, když potřebujete
  • při tisku/předložení do PDF nebo XPS jsou aktualizována pole týkající se počtu stránek v hlavičkách/nozích
  • při popravě mail merge všechna pole jsou automaticky aktualizována

Aktualizovat pole programově

Chcete-li výslovně aktualizovat pole v celém dokumentu, stačí zavolat UpdateFields metoda. Pro aktualizaci polí obsažených v části dokumentu získáte Range Objekt a volání UpdateFields metoda. In Aspose.Words, můžete získat Range pro každý uzel ve stromu dokumentu, jako je Section, HeaderFooter , Paragraph, atd. Node.Range majetek. Výsledek jednoho pole můžete aktualizovat voláním Update metoda.

Automatická aktualizace polí souvisejících se stránkami během renderování

Pokud provedete převod dokumentu do formátu pevné stránky, např. do PDF nebo XPS, pak Aspose.Words automaticky aktualizovat pole týkající se rozložení stránky PAGE, PAGEREF nachází se v hlavičkách/nohách dokumentu. Toto chování napodobuje chování Microsoft Word při tisku dokumentu.

Pokud chcete aktualizovat všechna ostatní pole v dokumentu, pak musíte zavolat UpdateFields před předložením dokumentu.

Následující příklad kódu ukazuje, jak aktualizovat všechna pole před vydáním dokumentu:

Automatická aktualizace pole v průběhu Mail Merge

Když provedete <span notrans="<span notrans=" mail merge"="">,? všechna pole v dokumentu budou automaticky aktualizována. To proto, že mail merge je případ aktualizace pole. Program potká mail merge pole a potřebuje aktualizovat svůj výsledek, který zahrnuje uchopení hodnoty ze zdroje dat a její vložení do pole. Logika je samozřejmě složitější, například když končí dokument/mail merge Oblast je dosažena, ale ještě existují další údaje, které je třeba sloučit, pak je třeba region duplikovat a aktualizovat nový soubor polí.

Aktualizovat pole mající špinavý atribut

W:dirty je atribut úrovně pole, který obnoví pouze pole, které určíte při otevření dokumentu. Říká MS Word pouze obnovit toto pole, až se dokument otevře příště. Můžete použít UpdateDirtyFields vlastnost určit, zda aktualizovat pole se špinavým atributem. Pokud hodnota UpdateDirtyFields je nastavena na <span notrans="<span notrans=" true"="">,? všechna pole true hodnota Field.IsDirty nebo FieldChar.IsDirty vlastnost je aktualizována při zatížení dokumentu.

Následující příklad kódu ukazuje, jak aktualizovat pole se špinavým atributem:

Aktualizace LastSavedTime Nemovitost před uložením

Můžete použít UpdateLastSavedTimeProperty vlastnost, zda aktualizovat odpovídající vestavěnou vlastnost dokumentu LastSavedTime při záchraně dokumentu.

Následující příklad kódu ukazuje, jak aktualizovat tuto vlastnost: