Zamień pola na tekst statyczny

Zastąpienie pól jest często wymagane, jeśli chcesz zapisać dokument jako kopię statyczną. Na przykład podczas wysyłania jako załącznik do wiadomości e-mail. Konwersja pól takich jak DATE lub TIME na tekst statyczny umożliwi wyświetlanie w dokumencie tej samej daty, co w momencie wysłania. Ponadto w niektórych sytuacjach może być konieczne usunięcie warunkowych pól IF z dokumentu i zastąpienie ich najnowszym wynikiem tekstowym. Na przykład konwersja wyniku pola IF na tekst statyczny, dzięki czemu nie będzie on już dynamicznie zmieniał swojej wartości po aktualizacji pól w dokumencie.

Poniższy diagram pokazuje, w jaki sposób pole IF jest przechowywane w dokumencie:

  • tekst otoczony jest specjalnymi węzłami pól – FieldStart i FieldEnd
  • węzeł FieldSeparator oddziela tekst w polu na kod pola i wynik pola
  • kod pola określa ogólne zachowanie pola, natomiast wynik pola zachowuje najnowszy wynik, gdy pole jest aktualizowane za pomocą formatu Microsoft Word lub Aspose.Words
  • wynik pola to wynik zapisany w polu i wyświetlony w dokumencie podczas przeglądania

update-remove-a-field-aspose-words

Strukturę można również zobaczyć poniżej w formie hierarchicznej za pomocą projekt demonstracyjny “DocumentExplorer”X*.*

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

Pola, których nie można zastąpić tekstem

Zastąpienie pola tekstem statycznym nie działa poprawnie w przypadku niektórych pól nagłówka lub stopki.

Na przykład próba konwersji pola PAGE w nagłówku lub stopce na tekst statyczny spowoduje wyświetlenie tej samej wartości na wszystkich stronach. Dzieje się tak dlatego, że nagłówki i stopki powtarzają się na wielu stronach, a gdy pozostają polami, są traktowane w taki sposób, aby wyświetlały prawidłowy wynik dla każdej strony.

Jednak w nagłówku pole PAGE dobrze przekłada się na statyczny ciąg tekstu. Ten ciąg tekstu zostanie oceniony tak, jakby był ostatnią stroną w sekcji, co spowoduje, że dowolne pole PAGE w nagłówku wyświetli ostatnią stronę na wszystkich stronach.

Poniższy przykład kodu pokazuje, jak zastąpić pole najnowszym wynikiem:

Konwertuj określone typy pól w określonych częściach dokumentu

Ponieważ metoda ConvertFieldsToStaticText przyjmuje dwa parametry – właściwości CompositeNode i wyliczenie FieldType, możliwe jest przekazanie do tej metody dowolnego węzła złożonego. Pozwala to na konwersję pól na tekst statyczny tylko w określonych częściach dokumentu.

Na przykład możesz przekazać obiekt Document i przekonwertować pola określonego typu z całego dokumentu na tekst statyczny lub możesz przekazać obiekt Body sekcji i przekonwertować tylko pola znalezione w tej treści.

Wyliczenie FieldType przekazane do metody ConvertFieldsToStaticText określa, jakiego typu pola należy skonwertować na tekst statyczny. Każdy inny typ pola znaleziony w dokumencie pozostanie niezmieniony.

Poniższy przykład kodu pokazuje, jak wybrać pola określonego typu – targetFieldType w konkretnym węźle – compositeNode, a następnie przekonwertować je na tekst statyczny:

Poniższy przykład kodu pokazuje, jak przekonwertować wszystkie pola IF w dokumencie na tekst statyczny:

Poniższy przykład kodu pokazuje, jak przekonwertować wszystkie pola PAGE w treści dokumentu na tekst statyczny:

Poniższy przykład kodu pokazuje, jak przekonwertować wszystkie pola IF w ostatnim akapicie na tekst statyczny: