Nahraďte pole statickým textem

Nahrazení polí je často vyžadováno, pokud chcete dokument uložit jako statickou kopii. Například při odesílání jako příloha v e-mailu. Převod polí jako DATE nebo TIME na statický text umožní dokumentu zobrazit stejné datum, jako když byl odeslán. V některých situacích také možná budete muset z dokumentu odebrat podmíněná pole IF a místo toho je nahradit nejnovějším výsledkem textu. Například převod výsledku pole IF na statický text, takže již nebude dynamicky měnit jeho hodnotu při aktualizaci polí v dokumentu.

Níže uvedený diagram ukazuje, jak je pole IF uloženo v dokumentu:

  • text je obklopen speciálními uzly pole - FieldStart a FieldEnd
  • uzel FieldSeparator odděluje text v poli na kód pole a výsledek pole
  • kód pole definuje obecné chování pole, zatímco výsledek pole zachovává nejnovější výsledek, když je toto pole aktualizováno pomocí Microsoft Word nebo Aspose.Words
  • výsledkem pole je to, co je uloženo v poli a zobrazeno v dokumentu při prohlížení

update-remove-a-field-aspose-words

Strukturu lze také vidět níže v hierarchické podobě pomocí demo projektu “DocumentExplorer”.

update-remove-a-field-aspose-words-2

Pole, která nelze nahradit textem

Nahrazení pole statickým textem nefunguje správně pro některá pole v záhlaví nebo zápatí.

Například pokus o převod pole PAGE v záhlaví nebo zápatí na statický text bude mít za následek zobrazení stejné hodnoty na všech stránkách. Je to proto, že záhlaví a zápatí se opakují na více stránkách, a když zůstanou jako pole, jsou zpracovány zejména proto, aby zobrazovaly správný výsledek pro každou stránku.

V záhlaví se však pole PAGE dobře překládá na statický běh textu. Tento běh textu bude vyhodnocen, jako by to byla poslední stránka v sekci, což způsobí, že jakékoli pole PAGE v záhlaví zobrazí poslední stránku na všech stránkách.

Následující příklad kódu ukazuje, jak nahradit pole jeho nejnovějším výsledkem:

Převést určité typy polí v konkrétních částech dokumentu

Protože metoda ConvertFieldsToStaticText přijímá dva parametry – vlastnosti CompositeNode a výčet FieldType, je možné této metodě předat jakýkoli složený uzel. To umožňuje převést pole na statický text pouze v určitých částech dokumentu.

Můžete například předat objekt Document a převést pole zadaného typu z celého dokumentu na statický text, nebo můžete předat objekt Body sekce a převést pouze pole nalezená v tomto těle.

Výčet FieldType předaný metodě ConvertFieldsToStaticText určuje, jaký typ polí má být převeden na statický text. Jakýkoli jiný typ pole nalezený v dokumentu zůstane nezměněn.

Následující příklad kódu ukazuje, jak vybrat pole konkrétního typu - targetFieldType v konkrétním uzlu - compositeNode a poté je převést na statický text:

Následující příklad kódu ukazuje, jak převést všechna pole IF v dokumentu na statický text:

Následující příklad kódu ukazuje, jak převést všechna pole PAGE v těle dokumentu na statický text:

Následující příklad kódu ukazuje, jak převést všechna pole IF v posledním odstavci na statický text: