עבודה עם סגנונות ונושאים

The The The StyleCollection הכיתה משמשת לניהול הגדרות בנויות וליישם הגדרות מוגדרות למשתמש לסגנונות.

גישה לסגנונות

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

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document()
styleName = ""
# Get styles collection from the document.
styles = doc.styles
for style in styles :
if (styleName == "") :
styleName = style.name
print(styleName)
else :
styleName = styleName + ", " + style.name
print(styleName)

כיצד להפיק תוכן מבוסס על סגנונות

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

כדי לקחת את זה כמה צעדים קדימה, זה יכול לשמש גם כדי למנף את המבנה של המסמך, המוגדר על ידי הסגנונות שהוא משתמש, כדי ליצור מחדש את המסמך עבור פלט אחר, כגון HTML. למעשה, כך נוצר תיעוד As נניח, שם Aspose.Words למבחן. כלי שנבנה באמצעות Aspose.Words לוקח את מקור מסמכי Word ומתפצל אותם לנושאים ברמות כותרת מסוימות. קובץ XML מיוצר באמצעות Aspose.Words משמש לבניית עץ הניווט שאתה יכול לראות בצד שמאל. ואז Aspose.Words הופך כל נושא ל-HTML.

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

הפתרון

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

  • פתיחת מסמך Word באמצעות Document מעמד.
  • קבלת אוספים של כל הסעיפים וכל פועל במסמך.
  • בחר רק את הסעיפים הנדרשים ורץ. באופן ספציפי, אנו נחזיר טקסט מעוצב בסגנון “Heading 1” ס"ק ואת סגנון האופי “Intense Emphasis” מ מסמך זה מדגם Word.

working-with-styles-and-themes-aspose-words-net

במסמך מדגם זה, הטקסט הפורמטיבי בסגנון “Heading 1” הוא “Insert Tab”, “Quick Styles” ו-“Theme”, והטקסט התואם לסגנון האופי “הדגשה הסנסציה” הוא מספר מקרים של טקסט כחול, מוקרן, נועז כמו “מגורים” ו"כל המראה".

הקוד

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

    • פסקאות_by_style_name - - - שיטה זו משחזרת מערך של פסקאות אלה במסמך שיש לו שם סגנון מסוים.
    • ריצות_by_style_name - - - שיטה זו משחזרת מערך של אלה רצים במסמך שיש להם שם סגנון מסוים. שתי השיטות הללו דומות מאוד, ההבדלים היחידים הם סוגי הצומת והייצוג של פרטי הסגנון בתוך הסעיף ועושים צמתים. הנה יישום paragraphs_by_style_name: להלן דוגמה למצוא את כל פסקאות מעוצבות בסגנון שצוין.
# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
@staticmethod
def paragraphs_by_style_name(doc : aw.Document, styleName : str) :
paragraphsWithStyle = []
paragraphs = doc.get_child_nodes(aw.NodeType.PARAGRAPH, True)
for paragraph in paragraphs :
paragraph = paragraph.as_paragraph()
if (paragraph.paragraph_format.style.name == styleName) :
paragraphsWithStyle.append(paragraph)
return paragraphsWithStyle

כמו כן, ראוי לציין כי אוסף פסקאות אינו יוצר כותרת מיידית כי פסקאות טעו באוסף זה רק כאשר אתה ניגש פריטים בהם. אז, כל מה שאתה צריך לעשות הוא לעבור את האוסף, באמצעות מפעיל סטנדרטי עבור כל אחד ולהוסיף פסקאות שיש להם את הסגנון שצוין למערך פסקאות_עם_סגנון. The The The Paragraph שם סגנון ניתן למצוא Style.name רכוש Paragraph.paragraph_format אובייקט. יישום ריצות_by_style_name זה כמעט אותו הדבר, אם כי ברור שאנחנו משתמשים בו NodeType.RUN כדי לאחזר נקודות. The The The Font.style רכוש של Run האובייקט משמש לגישה למידע בסגנון Run צומת להלן דוגמה למצוא את כל רץ מעוצב עם הסגנון שצוין.

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
@staticmethod
def runs_by_style_name(doc : aw.Document, styleName : str) :
runsWithStyle = []
runs = doc.get_child_nodes(aw.NodeType.RUN, True)
for run in runs :
run = run.as_run()
if (run.font.style.name == styleName) :
runsWithStyle.append(run)
return runsWithStyle

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

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document(docs_base.my_dir + "Styles.docx")
paraStyle = "Heading 1"
runStyle = "Intense Emphasis"
paragraphs = ExtractContent.paragraphs_by_style_name(doc, paraStyle)
print(f"Paragraphs with \"{paraStyle}\" styles ({len(paragraphs)}):")
for paragraph in paragraphs :
print(paragraph.to_string(aw.SaveFormat.TEXT))
runs = ExtractContent.runs_by_style_name(doc, runStyle)
print(f"\nRuns with \"{runStyle}\" styles ({len(runs)}):")
for run in runs :
print(run.range.text)

תוצאות סוף

כאשר הכל נעשה, הפעלת הדגימה תציג את הפלט הבא:

styles-and-themes-aspose-words-net

כפי שאתה יכול לראות, זו דוגמה פשוטה מאוד, מראה את המספר והטקסט של פסקאות שנאספו ורץ במסמך Word המדגם.

העתק את כל הסגנונות מתבנית

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

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document()
target = aw.Document(docs_base.my_dir + "Rendering.docx")
target.copy_styles_from_template(doc)
doc.save(docs_base.artifacts_dir + "WorkingWithStylesAndThemes.copy_styles.docx")

איך להגות תכונות נושא

הוספנו בסיסי API פנימה Aspose.Words גישה למאפייני נושא. לעת עתה, זה API כולל פריטים ציבוריים:

הנה איך אתה יכול לקבל תכונות נושא:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document()
theme = doc.theme
print(theme.major_fonts.latin)
print(theme.minor_fonts.east_asian)
print(theme.colors.accent1)

הנה איך אתה יכול להגדיר תכונות נושא:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document()
theme = doc.theme
theme.minor_fonts.latin = "Times New Roman"
theme.colors.hyperlink = drawing.Color.gold