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
שיטות:
- as_document()
- as_section()
- as_body()
- as_header_footer()
- as_table()
- as_row()
- as_cell()
- as_paragraph()
- as_bookmark_start()
- as_bookmark_end()
- as_editable_range_start()
- as_editable_range_end()
- as_group_shape()
- as_shape()
- as_comment()
- as_footnote()
- as_run()
- as_field_start()
- as_field_separator()
- as_field_end()
- as_form_field()
- as_special_char()
- as_smart_tag()
- as_structured_document_tag()
- as_structured_document_tag_range_start()
- as_structured_document_tag_range_end()
- as_glossary_document()
- as_building_block()
- as_comment_range_start()
- as_comment_range_end()
- as_office_math()
- as_sub_document()
- as_composite_node()
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
שיטות, המפורטות להלן:
- as_field_unknown()
- as_field_merge_barcode()
- as_field_display_barcode()
- as_field_print()
- as_field_private()
- as_field_advance()
- as_field_form_check_box()
- as_field_form_drop_down()
- as_field_index()
- as_field_rd()
- as_field_ta()
- as_field_toa()
- as_field_ask()
- as_field_auto_text()
- as_field_auto_text_list()
- as_field_bibliography()
- as_field_citation()
- as_field_dde()
- as_field_dde_auto()
- as_field_fill_in()
- as_field_glossary()
- as_field_import()
- as_field_include()
- as_field_shape()
- as_field_database()
- as_field_skip_if()
- as_field_list_num()
- as_field_rev_num()
- as_field_section()
- as_field_section_pages()
- as_field_data()
- as_field_embed()
- as_field_ocx()
- as_field_auto_num()
- as_field_auto_num_lgl()
- as_field_auto_num_out()
- as_field_add_in()
- as_field_barcode()
- as_field_bidi_outline()
- as_field_eq()
- as_field_footnote_ref()
- as_field_info()
- as_field_user_address()
- as_field_user_initials()
- as_field_user_name()
- as_field_include_picture()
- as_field_page()
- as_field_create_date()
- as_field_edit_time()
- as_field_print_date()
- as_field_save_date()
- as_field_go_to_button()
- as_field_author()
- as_field_comments()
- as_field_file_name()
- as_field_file_size()
- as_field_keywords()
- as_field_last_saved_by()
- as_field_num_chars()
- as_field_num_pages()
- as_field_num_words()
- as_field_subject()
- as_field_template()
- as_field_title()
- as_field_formula()
- as_field_symbol()
- as_field_quote()
- as_field_set()
- as_field_address_block()
- as_field_compare()
- as_field_date()
- as_field_doc_property()
- as_field_doc_variable()
- as_field_greeting_line()
- as_field_hyperlink()
- as_field_if()
- as_field_include_text()
- as_field_link()
- as_field_macro_button()
- as_field_merge_field()
- as_field_merge_rec()
- as_field_merge_seq()
- as_field_next()
- as_field_next_if()
- as_field_note_ref()
- as_field_page_ref()
- as_field_ref()
- as_field_seq()
- as_field_style_ref()
- as_field_tc()
- as_field_time()
- as_field_toc()
- as_field_xe()
- as_field_form_text()
סגנונות
היטל נדרש גם לעבוד עם סגנונות שולחן:
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
שיטות, המפורטות להלן:
- as_file_font_source()
- as_folder_font_source()
- as_memory_font_source()
- as_stream_font_source()
- as_system_font_source()
Access Indexer Properties
Aspose.Words עבור Python מאפשר תכונות אינדקס רק על ידי int סוג, .NET עם זאת, ניתן להשתמש סוגים אחרים, למשל מחרוזת. כדי למלא את הפער הזה בשיעורים הבאים יש שיטות נוספות:
- FormFieldCollection * get_by_name(bookmark_name)
- FontInfoCollection * get_by_name(name)
- CustomXmlPartCollection * get_by_id(id)
- CustomXmlPropertyCollection * get_by_name(name)
- BuiltInDocumentProperties * get_by_name(name)
- CustomDocumentProperties * get_by_name(name)
- BookmarksOutlineLevelCollection * get_by_name(name)
- VbaModuleCollection * get_by_name(name)
- BookmarkCollection * get_by_name(bookmark_name)
- BorderCollection * get_by_border_type(border_type)
- HeaderFooterCollection * get_by_header_footer_type(header_footer_type)
- StyleCollection * get_by_name(name) * get_by_style_identifier(sti)
- VariableCollection * get_by_name(name)
API חברים נאמינג
להיות קרוב יותר Python עולם, API חברים Aspose.Words עבור Python via .NET אבל ברוב המקרים יש להם אנלוגיה אחת. Aspose.Words עבור .NET API. ניתן למצוא את האנלוגיה הזו ב קובץ xml.