החלף שדות בטקסט סטטי

החלפת שדות נדרשת לעתים קרובות כאשר ברצונך לשמור את המסמך כעותק סטטי. לדוגמה, בעת שליחת כקובץ מצורף בדואר אלקטרוני. המרת שדות כגון DATE או TIME לטקסט סטטי תאפשר למסמך להציג את אותו תאריך שבו נשלח. כמו כן, במצבים מסוימים, ייתכן שיהיה עליך להסיר את השדות IF מותנה מהמסמך ולהחליף אותם בתוצאת הטקסט העדכנית ביותר במקום זאת. לדוגמה, המרת התוצאה של השדה IF לטקסט סטטי כך שהוא כבר לא ישנה את ערכו באופן דינמי כאשר שדות במסמך מתעדכנים.

התרשים שלהלן מראה כיצד השדה IF מאוחסן במסמך:

  • הטקסט מוקף בצמתי השדה המיוחדים - FieldStart ו FieldEnd
  • הצומת FieldSeparator מפרידה את הטקסט בתוך השדה לקוד השדה ולתוצאת השדה
  • קוד השדה מגדיר את ההתנהגות הכללית של השדה, בעוד שתוצאת השדה שומרת על התוצאה האחרונה כאשר שדה זה מתעדכן באמצעות Microsoft Word או Aspose.Words
  • תוצאת השדה היא מה שמאוחסן בשדה ומוצג במסמך בעת הצפייה

update-remove-a-field-aspose-words

ניתן לראות את המבנה גם למטה בצורה היררכית באמצעות פרויקט הדמו “DocumentExplorer”.

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

שדות שלא ניתן להחליף בטקסט

החלפת שדה בטקסט סטטי אינה פועלת כראוי עבור שדות מסוימים בכותרת עליונה או תחתונה.

לדוגמה, ניסיון להמיר את השדה PAGE בכותרת עליונה או תחתונה לטקסט סטטי יביא לכך שאותו ערך יוצג בכל הדפים. הסיבה לכך היא שכותרות עליונות ותחתונות חוזרות על פני מספר עמודים, וכאשר הן נשארות כשדות, הן מטופלות במיוחד כך שהן מציגות את התוצאה הנכונה עבור כל עמוד.

עם זאת, בכותרת, השדה PAGE מתורגם היטב לריצת טקסט סטטית. הפעלת טקסט זו תוערך כאילו היה העמוד האחרון בקטע, מה שיגרום לכל שדה PAGE בכותרת להציג את העמוד האחרון על כל הדפים.

דוגמת הקוד הבאה מראה כיצד להחליף את השדה בתוצאה האחרונה שלו:

המרת סוגי שדות מסוימים בחלקי מסמכים ספציפיים

מאחר ושיטת ConvertFieldsToStaticText מקבלת שני פרמטרים – המאפיינים CompositeNode והספירה FieldType, ניתן להעביר כל צומת מורכב לשיטה זו. זה מאפשר להמיר שדות לטקסט סטטי רק בחלקים ספציפיים של המסמך.

לדוגמה, אתה יכול להעביר אובייקט Document ולהמיר שדות מהסוג שצוין מכל המסמך לטקסט סטטי, או שאתה יכול להעביר אובייקט Body של קטע ולהמיר רק את השדות שנמצאים בגוף זה.

הספירה FieldType שהועברה לשיטת ConvertFieldsToStaticText מציינת איזה סוג שדות יש להמיר לטקסט סטטי. כל סוג שדה אחר שנמצא במסמך יישאר ללא שינוי.

דוגמת הקוד הבאה מראה כיצד לבחור שדות מסוג מסוים - targetFieldType בצומת ספציפי - compositeNode ולאחר מכן להמיר אותם לטקסט סטטי:

דוגמת הקוד הבאה מראה כיצד להמיר את כל השדות IF במסמך לטקסט סטטי:

דוגמת הקוד הבאה מראה כיצד להמיר את כל השדות PAGE בגוף של מסמך לטקסט סטטי:

דוגמת הקוד הבאה מראה כיצד להמיר את כל השדות IF בפסקה האחרונה לטקסט סטטי: