עבודה עם סגנונות
המחלקה StyleCollection משמשת לניהול הגדרות מובנות ולהחיל הגדרות המוגדרות על ידי המשתמש על סגנונות.
כיצד לחלץ תוכן המבוסס על סגנונות
ברמה פשוטה, אחזור התוכן המבוסס על סגנונות ממסמך Word יכול להיות שימושי לזיהוי, רשימה וספירת פסקאות וריצות טקסט המעוצבות בסגנון ספציפי. לדוגמה, ייתכן שיהיה עליך לזהות סוגים מסוימים של תוכן במסמך, כגון דוגמאות, כותרות, הפניות, מילות מפתח, שמות דמויות ומחקרי מקרה.
כדי לקחת זאת כמה צעדים קדימה, ניתן להשתמש בזה גם כדי למנף את מבנה המסמך, המוגדר על ידי הסגנונות שבהם הוא משתמש, כדי לייעד מחדש את המסמך לפלט אחר, כגון HTML. זה למעשה איך תיעוד האספוז בנוי, לשים Aspose.Words למבחן. כלי שנבנה באמצעות Aspose.Words לוקח את המקור Word מסמכים ומחלק אותם לנושאים ברמות כותרת מסוימות. קובץ XML מופק באמצעות Aspose.Words המשמש לבניית עץ הניווט שניתן לראות משמאל. ואז Aspose.Words ממיר כל נושא ל HTML.
הפתרון לאחזור טקסט המעוצב בסגנונות ספציפיים במסמך Word הוא בדרך כלל חסכוני ופשוט באמצעות Aspose.Words.
הפתרון
כדי להמחיש באיזו קלות Aspose.Words מטפל באחזור תוכן על סמך סגנונות, בואו נסתכל על דוגמה. בדוגמה זו, אנו הולכים לאחזר טקסט המעוצב בסגנון פיסקה ספציפי ובסגנון תו ממסמך מדגם Word. ברמה גבוהה, זה יהיה כרוך:
- פתיחת מסמך Word באמצעות הכיתה
Document
. - קבלת אוספים של כל פסקאות וכל פועל במסמך.
- בחירת רק את הפסקאות הנדרשות פועל. באופן ספציפי, אנו נאחזר טקסט המעוצב בסגנון הפסקה ‘Heading 1 וסגנון התווים ‘דגש אינטנסיבי’ מתוך מדגם זה Word מסמך.
במסמך מדגם זה, הטקסט המעוצב בסגנון הפסקה ‘Heading 1’ הוא ‘הכנס כרטיסייה’, ‘סגנונות מהירים’ ו ‘נושא’, והטקסט המעוצב בסגנון הדמות ‘דגש עז’ הוא מספר המופעים של טקסט כחול, נטוי, מודגש כגון ‘גלריות’ ו ‘מראה כללי’.
הקוד
יישום שאילתה מבוססת סגנון הוא די פשוט במודל אובייקט המסמך Aspose.Words, מכיוון שהוא פשוט משתמש בכלים שכבר קיימים. שתי שיטות מחלקה מיושמות לפתרון זה: # ParagraphsByStyleName - שיטה זו מאחזרת מערך של פסקאות אלה במסמך שיש להן שם סגנון ספציפי.# RunsByStyleName - שיטה זו מאחזרת מערך של אותן ריצות במסמך שיש להן שם סגנון ספציפי. שתי השיטות הללו דומות מאוד, ההבדלים היחידים הם סוגי הצמתים והייצוג של מידע הסגנון בתוך הצמתים של הפסקה והריצה. הנה יישום של ParagraphsByStyleName. להלן דוגמה מצא את כל הפסקאות המעוצבות בסגנון שצוין.
יישום זה משתמש גם בשיטת Document.GetChildNodes
של הכיתה Document
, המחזירה אוסף של כל הצמתים עם הסוג שצוין, שבמקרה זה בכל הפסקאות.
שים לב שהפרמטר השני של שיטת Document.GetChildNodes מוגדר כנכון. זה מכריח את שיטת Document.GetChildNodes לבחור מכל צמתים של ילדים באופן רקורסיבי, במקום לבחור את הילדים המיידיים בלבד.
כדאי גם לציין שאוסף הפסקאות אינו יוצר תקורה מיידית מכיוון שפסקאות נטענות באוסף זה רק כאשר אתה ניגש לפריטים בהן. לאחר מכן, כל שעליך לעשות הוא לעבור על האוסף, תוך שימוש בתקן עבור כל מפעיל ולהוסיף פסקאות בעלות הסגנון שצוין למערך paragraphsWithStyle. ניתן למצוא את שם הסגנון Paragraph
בסגנון. שם מאפיין של האובייקט Paragraph.ParagraphFormat
. היישום של RunsByStyleName כמעט זהה, אם כי ברור שאנחנו משתמשים ב NodeType.Run
כדי לאחזר צמתים לרוץ. המאפיין Font.Style
של אובייקט Run
משמש לגישה למידע סגנון בצמתים Run. הדוגמהlow code מצא את כל הריצות המעוצבות בסגנון שצוין.
כאשר שתי השאילתות מיושמות, כל שעליך לעשות הוא להעביר אובייקט מסמך ולציין את שמות הסגנונות של התוכן שברצונך לאחזר: להלן דוגמה הפעל שאילתות והצג תוצאות. אתה יכול להוריד את קובץ התבנית של דוגמה זו מכאן.
תוצאה סופית
כאשר הכל נעשה, הפעלת המדגם תציג את הפלט הבא:
כפי שאתה יכול לראות, זוהי דוגמה פשוטה מאוד, המציגה את המספר והטקסט של הפסקאות שנאספו ופועלת במסמך המדגם Word.
כיצד להכניס ולעבוד עם שדה תוכן העניינים
לעתים קרובות תעבוד עם מסמכים המכילים תוכן עניינים (TOC). באמצעות Aspose.Words אתה יכול להכניס תוכן עניינים משלך או לבנות מחדש לחלוטין את תוכן העניינים הקיים במסמך באמצעות מספר שורות קוד בלבד. מאמר זה מתאר כיצד לעבוד עם שדה תוכן העניינים ומדגים:
- כיצד להכניס מותג חדש
TOC
- עדכון חדש או קיים TOCs במסמך.
- ציין מתגים כדי לשלוט בעיצוב ובמבנה הכללי ו TOC.
- כיצד לשנות את הסגנונות והמראה של תוכן העניינים.
- כיצד להסיר שדה שלם
TOC
יחד עם כל הערכים מהמסמך.
הכנס TC שדות
לעתים קרובות שורת טקסט ספציפית מיועדת ל TOC
ומסומן בשדה TC
. הדרך הקלה לעשות זאת ב MS Word היא להדגיש את הטקסט ולחץ ALT+SHIFT+O. פעולה זו יוצרת אוטומטית שדה TC
באמצעות הטקסט שנבחר. אותה טכניקה יכולה להתבצע באמצעות קוד. הקוד שלהלן ימצא טקסט התואם את הקלט ויוסיף שדה TC
באותו מיקום כמו הטקסט. הקוד מבוסס על אותה טכניקה המשמשת במאמר. הדוגמה הבאה מראה כיצד למצוא ולהוסיף שדה TC
בטקסט במסמך.
שנה תוכן עניינים
שנה את העיצוב של סגנונות
עיצוב הערכים ב TOC
אינו משתמש בסגנונות המקוריים של הערכים המסומנים, במקום זאת, כל רמה מעוצבת בסגנון TOC
שווה ערך. לדוגמה, הרמה הראשונה ב - TOC
מעוצבת בסגנון TOC1, הרמה השנייה מעוצבת בסגנון TOC2 וכן הלאה. המשמעות היא שכדי לשנות את המראה של TOC
יש לשנות סגנונות אלה. ב Aspose.Words סגנונות אלה מיוצגים על ידי המיקום העצמאי StyleIdentifier.TOC1
עד StyleIdentifier.TOC9
וניתן לאחזר אותם מהאוסף Document.Styles
באמצעות מזהים אלה. ברגע שהסגנון המתאים של המסמך הוחזר, ניתן לשנות את העיצוב של הסגנון הזה. כל שינוי בסגנונות אלה יבוא לידי ביטוי באופן אוטומטי ב TOCs במסמך. הדוגמהlow code משנה מאפיין עיצוב המשמש ברמה הראשונה TOC
סִגְנוֹן.
כדאי גם לציין שכל עיצוב ישיר של פסקה (המוגדר בפסקה עצמה ולא בסגנון) המסומן להיכלל TOC
יועתק בערך ב TOC. לדוגמה, אם הסגנון Heading 1 משמש לסימון תוכן עבור TOC
ולסגנון זה יש עיצוב מודגש ואילו לפסקה יש גם עיצוב נטוי שהוחל עליו ישירות. הערך TOC
שהתקבל לא יהיה מודגש מכיוון שהוא חלק מעיצוב הסגנון אולם הוא יהיה נטוי מכיוון שהוא מעוצב ישירות בפסקה. ניתן גם לשלוט בעיצוב המפרידים המשמשים בין כל ערך למספר העמוד. כברירת מחדל, זהו קו מקווקו המופץ למספור העמודים באמצעות תו כרטיסייה ותחנת כרטיסייה ימנית בשורה קרוב לשוליים הימניים.
באמצעות הכיתה Style
שאוחזרה עבור הרמה TOC
הספציפית שברצונך לשנות, תוכל גם לשנות את אופן הופעתן במסמך. כדי לשנות את האופן שבו זה מופיע ראשית Style.ParagraphFormat
יש לקרוא כדי לאחזר את עיצוב הפסקה עבור הסגנון. מכאן ניתן לאחזר את עצירות הלשונית על ידי קריאה ParagraphFormat.TabStops
ושינוי עצירת הלשונית המתאימה. באמצעות אותה טכניקה ניתן להזיז או להסיר את הכרטיסייה עצמה לחלוטין. הדוגמה להיותlow code מראה כיצד לשנות את המיקום של הכרטיסייה הימנית עצור ב TOC
פסקאות קשורות. אתה יכול להוריד את קובץ התבנית של דוגמה זו מכאן.
הסרת תוכן עניינים מהמסמך
ניתן להסיר תוכן עניינים מהמסמך על ידי הסרת כל הצמתים שנמצאו בין הצומת FieldStart
ו - FieldEnd של השדה TOC
. הקוד שלהלן מדגים זאת. הסרת השדה TOC
פשוטה יותר משדה רגיל מכיוון שאיננו עוקבים אחר שדות מקוננים. במקום זאת, אנו בודקים שהצומת FieldEnd
היא מסוג FieldType.FieldTOC
מה שאומר שנתקלנו בקצה הזרם TOC. ניתן להשתמש בטכניקה זו במקרה זה מבלי לדאוג לשדות מקוננים, שכן אנו יכולים להניח שלכל מסמך שנוצר כראוי לא יהיה שדה מקונן מלא TOC
בתוך שדה אחר TOC
. ראשית, הצמתים FieldStart
של כל TOC
נאספים ומאוחסנים. לאחר מכן מונה את TOC
שצוין כך שכל הצמתים בשדה מבקרים ומאוחסנים. הצמתים מוסרים לאחר מכן מהמסמך. הדוגמהlow code מדגימה כיצד להסיר TOC
שצוין ממסמך. אתה יכול להוריד את קובץ התבנית של דוגמה זו מכאן.
הכנס סגנון מפריד לשים שונה סעיף סגנונות
ניתן להוסיף את מפריד הסגנונות לסוף פסקה באמצעות קיצור המקשים + אלט + הזן MS Word. תכונה זו מאפשרת שני סגנונות פסקה שונים המשמשים בפסקה מודפסת לוגית אחת. אם אתה רוצה טקסט כלשהו מתחילת כותרת מסוימת שיופיע בתוכן עניינים אך אינך רוצה שהכותרת כולה בתוכן העניינים, תוכל להשתמש בתכונה זו. הדוגמהlow code מראה כיצד להוסיף מפריד סגנונות כדי לשים סגנונות פסקה שונים.
העתק את כל הסגנונות מתבנית
ישנם מקרים שבהם ברצונך להעתיק את כל הסגנונות ממסמך אחד למשנהו. ניתן להשתמש בשיטת Document.CopyStylesFromTemplate
כדי להעתיק סגנונות מהתבנית שצוינה למסמך. כאשר סגנונות מועתקים מתבנית למסמך, סגנונות בעלי שמות דומים במסמך מוגדרים מחדש כך שיתאימו לתיאורי הסגנון בתבנית. סגנונות ייחודיים מהתבנית מועתקים למסמך. סגנונות ייחודיים במסמך נשארים שלמים. הדוגמהlow code מראה כיצד להעתיק סגנונות ממסמך אחד למסמך אחר.