Python a .NET Rozdíly v verzích

Aspose.Words místo Python via .NET je obal Aspose.Words místo .NET, Proto mají oba produkty téměř stejný soubor funkcí. Nicméně, tam jsou některé nuance práce a rozdíly v funkcích a API, které jsou popsány na této stránce.

Rozdíly funkcí

Vzhledem k procesu balení existují některé funkce, které nejsou k dispozici v Python verze. Zde je seznam nejpozoruhodnějších funkcí, které jsou v současné době nejsou k dispozici v Python verze.

  • Realizace rozhraní ještě není podporována, proto není možné použít zpětné volání jako IWarningCallback, IReplacingCallback, IFieldUpdatingCallback, IFieldMergingCallback atd.
  • Tisk funkce není k dispozici, protože .NET Standard 2. 0 verze Aspose.Words se používá jako back-end python verze, která také neposkytuje tuto funkci.
  • Pouze jednoduché Mail Merge funkce je vybavena polemi jmen polí a hodnot polí jako zdroj dat.
  • DocumentVisitor V současné době není možné provést Python kód.

Odlévání Aspose.Words Objekty v Python

Ačkoli typ casting není přirozený pro Python vývojáři některé úkoly nelze splnit bez lití dokumentů uzlů nebo polí do betonového typu. Aspose.Words místo Python via .NET poskytuje speciální metody umožňující lití předmětů tam, kde je to nutné.

Uzel odlévání

Základní třída pro všechny uzly dokumentů v Aspose.Words DOM je Node třída. Například get_child metoda vrací a instance Node třída, ale pokud potřebujete upravit vrácený uzel, ve většině případů byste ho měli odhodit na konkrétní typ. Následující kód ukazuje, jak změnit barvu písma prvního Run v dokumentu:

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")

Odlévání může být nutné, pokud clone metoda se používá:

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

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

Jak jste si mohli všimnout kde v C# kód, který byste použili (Paragraph)node pro odlévání v Python musíte použít node.as_paragraph() metoda. V Python verze Aspose.Words Node třída zavádí následující odkaz as_xxx metody:

as_xxx způsob zvýšení a RuntimeError se zprávou, jako je následující, nelze-li uzel přiřadit k určenému typu:

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

Odlévání polí

Stejná situace platí i pro pole. Následující příklad kódu ukazuje, jak nahradit hyperlinkové odkazy:

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")

Jak jste si mohli všimnout Field objekt také poskytuje soubor as_xxx metody uvedené níže:

Casting Styles

Odlévání je také nutné pracovat s stolní styly:

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")

Odlévání Ole Controls

Následující příklad kódu ukazuje, jak číst vlastnosti ActiveX control:

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)

Zdroje odlévání písem

FontSourceBase třída poskytuje soubor as_xxx metody uvedené níže:

Přístup k vlastnostem indexéru

Aspose.Words místo Python umožňuje indexování pouze podle int typ, .NET lze však použít i jiné typy, například řetězce. Pro vyplnění této mezery mají tyto třídy další metody:

API Pojmenování členů

Být blíž Python svět, API členové Aspose.Words místo Python via .NET používá pythonický had styl, ale ve většině případů mají jeden na jeden analog v Aspose.Words místo .NET API. Tyto analogy najdete v xml soubor.