Python ו .NET הבדלי גרסאות

Aspose.Words עבור Python via .NET זה עטיפה Aspose.Words עבור .NET, לכן לשני המוצרים יש כמעט את אותה קבוצה של תכונות. עם זאת, ישנם כמה ניואנסים של עבודה והבדלים בתכונות ו API, אשר מתוארים בדף זה.

הבדלים

בשל תהליך העטיפה יש כמה תכונות שאינן זמינות ב Python גרסה. הנה רשימה של התכונות הבולטות ביותר כיום אינם זמינים Python גרסה.

  • יישום של ממשקים עדיין לא נתמך, לכן לא ניתן להשתמש בקריאות כגון IWarningCallback, IReplacingCallback, IFieldUpdatingCallback, IFieldMergingCallback וכו'.
  • תכונה הדפסה אינה זמינה כי .NET Standard 2.0 גירסה Aspose.Words משמש כקצה האחורי של הגירסה פייתון, אשר גם אינו מספק פונקציונליות זו.
  • רק פשוט Mail Merge פונקציונליות מסופקת עם מגוון של שמות שדה וערכי שדה כמקור נתונים.
  • DocumentVisitor היישום אינו אפשרי כרגע Python קוד.

המונחים Aspose.Words אובייקטים Python

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

תגית: Nodes

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

doc = aw.Document(docs_base.my_dir + "Document.docx")

# Get the first Run node and cast it to Run object.
run = doc.get_child(aw.NodeType.RUN, 0, True).as_run()

# Make changes to the run 
run.font.color = drawing.Color.red

# Save the result
doc.save(docs_base.artifacts_dir + "WorkingWithNode.change_run_color.docx")

ניתן גם לדרוש את היטל מתי clone שיטה משמשת:

doc = aw.Document(docs_base.my_dir + "Document.docx")

clone = doc.clone().as_document()
clone.save(docs_base.artifacts_dir + "CloneAndCombineDocuments.cloning_document.docx")

כפי שניתן להבחין איפה C# קוד תשתמש (Paragraph)node ליהוק, Python אתה צריך להשתמש node.as_paragraph() שיטה. בתוך Python גירסה של Aspose.Words Node הכיתה מציגה את הקישור הבא של as_xxx שיטות:

The The The as_xxx שיטה להרים RuntimeError עם ההודעה כמו ההודעה הבאה אם לא ניתן לקבוע את הצומת לסוג שצוין:

RuntimeError: Proxy error(InvalidCastException): Unable to cast object of type ‘Aspose.Words.XXX’ to type ‘Aspose.Words.Drawing.YYY’.

שדות

אותו מצב החל על שדות. הדוגמה הבאה של הקוד מראה כיצד להחליף קישורים היפר-קישורים:

doc = aw.Document(docs_base.my_dir + "Hyperlinks.docx")

for field in doc.range.fields :
            
    if field.type == aw.fields.FieldType.FIELD_HYPERLINK:
                
        hyperlink = field.as_field_hyperlink()
    
        # Some hyperlinks can be local (links to bookmarks inside the document), ignore these.
        if hyperlink.sub_address != None :
            continue
    
        hyperlink.address = "https:#www.aspose.com"
        hyperlink.result = "Aspose - The .net & Java Component Publisher"

doc.save(docs_base.artifacts_dir + "WorkingWithFields.replace_hyperlinks.docx")

כפי שניתן להבחין Field האובייקט מספק גם סט as_xxx שיטות, המפורטות להלן:

סגנונות

היטל נדרש גם לעבוד עם סגנונות שולחן:

doc = aw.Document()
builder = aw.DocumentBuilder(doc)

table = builder.start_table()
builder.insert_cell()
builder.write("Name")
builder.insert_cell()
builder.write("Value")
builder.end_row()
builder.insert_cell()
builder.insert_cell()
builder.end_table()

# Add a table style and modify it's properties.
tableStyle = doc.styles.add(aw.StyleType.TABLE, "MyTableStyle1").as_table_style()
tableStyle.borders.line_style = aw.LineStyle.DOUBLE
tableStyle.borders.line_width = 1
tableStyle.left_padding = 18
tableStyle.right_padding = 18
tableStyle.top_padding = 12
tableStyle.bottom_padding = 12

table.style = tableStyle

doc.save(docs_base.artifacts_dir + "WorkingWithTableStylesAndFormatting.create_table_style.docx")

ביקורת Ole Controls

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

doc = aw.Document(docs_base.my_dir + "ActiveX controls.docx")

properties = ""
for shape in doc.get_child_nodes(aw.NodeType.SHAPE, True) :
            
    shape = shape.as_shape()
            
    if shape.ole_format == None :
        break
    
    oleControl = shape.ole_format.ole_control
    if oleControl.is_forms2_ole_control :
                
        checkBox =  oleControl.as_forms2_ole_control()
        properties = properties + "\nCaption: " + checkBox.caption
        properties = properties + "\nValue: " + checkBox.value
        properties = properties + "\nEnabled: " + str(checkBox.enabled)
        properties = properties + "\nType: " + str(checkBox.type)
    
        if checkBox.child_nodes != None :
            properties = properties + "\nChildNodes: " + checkBox.child_nodes
    
        properties += "\n"

properties = properties + "\nTotal ActiveX Controls found: " + str(doc.get_child_nodes(aw.NodeType.SHAPE, True).count)
print("\n" + properties)

מקורות דיבור

FontSourceBase מעמד מספק as_xxx שיטות, המפורטות להלן:

Access Indexer Properties

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

API חברים נאמינג

להיות קרוב יותר Python עולם, API חברים Aspose.Words עבור Python via .NET אבל ברוב המקרים יש להם אנלוגיה אחת. Aspose.Words עבור .NET API. ניתן למצוא את האנלוגיה הזו ב קובץ xml.