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

Při načtení dokumentu, Aspose.Words napodobuje chování Microsoft Word s možností automaticky aktualizovat pole se vypne. Chování lze shrnout takto:

  • když otevřete/zachráníte dokument, pole zůstanou neporušená
  • můžete explicitně aktualizovat všechna pole v dokumentu, např. 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 stran 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 jakýkoli uzel ve stromu dokumentu, jako je Section, HeaderFooter, Paragraph, atd. GetRange majetek. Můžete aktualizovat výsledek jednoho pole voláním Update metoda.

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

Pokud provedete konverzi dokumentu na formát pevné stránky, např. na PDF nebo XPS, pak Aspose.Words bude automaticky aktualizovat pole týkající se rozložení stránky PAGE, PAGEREF nalezeno 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 ukazuje, jak aktualizovat všechna pole před vydáním dokumentu:

Automatická aktualizace pole během Mail Merge

Když provedete 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 region je dosažen, ale stále existují další údaje, které je třeba sloučit, pak je třeba region duplikovat a aktualizovat nový soubor polí.

Aktualizovat pole s špinavým atributem

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ž bude dokument otevřen. Můžete použít vlastnost LoadOptions.setUpdateDirtyFields() k určení, zda má pole aktualizovat s špinavým atributem. Je-li hodnota LoadOptions.setUpdateDirtyFields() nastavena na true všechna pole s true hodnota pro 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:

Update LastSavedTime Property Before Saving

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: