Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Aspose.Words dla Python via .NET jest opakowaniem Aspose.Words dla .NET, dlatego oba produkty mają prawie ten sam zestaw funkcji. Niemniej jednak istnieją pewne niuanse pracy i różnice w funkcjach i API, które są opisane na tej stronie.
Ze względu na proces pakowania niektóre funkcje nie są dostępne w wersji Python. Oto lista najważniejszych funkcji, które obecnie nie są dostępne w wersji Python.
Chociaż rzutowanie typów nie jest czymś naturalnym dla programistów Python, niektórych zadań nie można wykonać bez rzutowania węzłów dokumentów lub pól na konkretny typ. Aspose.Words dla Python via .NET udostępnia specjalne metody umożliwiające rzutowanie obiektów tam, gdzie jest to konieczne.
Klasą bazową dla wszystkich węzłów dokumentu w formacie Aspose.Words DOM jest klasa Node. Na przykład zwracana metoda get_child i instancja klasy Node, ale jeśli chcesz zmodyfikować zwrócony węzeł, w większości przypadków powinieneś rzutować go na konkretny typ. Poniższy kod demonstruje, jak zmienić kolor czcionki pierwszego Run w dokumencie:
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")Casting może być również wymagany w przypadku stosowania metody 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")Jak zapewne zauważyłeś, gdzie w kodzie C# do rzutowania użyjesz (Paragraph)node, w Python musisz użyć metody node.as_paragraph(). W wersji Python klasy Aspose.Words Node wprowadza się następujące łącze metod as_xxx:
Metoda as_xxx wywołuje RuntimeError z komunikatem podobnym do poniższego, jeśli w węźle nie można dopasować wielkości liter do określonego typu:
RuntimeError: Proxy error(InvalidCastException): Unable to cast object of type ‘Aspose.Words.XXX’ to type ‘Aspose.Words.Drawing.YYY’.
Ta sama sytuacja dotyczyła pól. Poniższy przykład kodu demonstruje, jak zastąpić łącza hiperłączy:
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 zapewne zauważyłeś, obiekt Field udostępnia również zestaw metod as_xxx, które są wymienione poniżej:
Do pracy ze stylami tabel wymagane jest również rzutowanie:
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")Poniższy przykład kodu ilustruje sposób odczytywania właściwości kontrolki 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)Klasa FontSourceBase udostępnia zestaw metod as_xxx, które są wymienione poniżej:
Aspose.Words dla Python zezwala na właściwości indeksatora tylko według typu int, w .NET można jednak użyć innych typów, na przykład ciągów znaków. Aby wypełnić tę lukę poniższe klasy posiadają dodatkowe metody:
Aby być bliżej świata Python, członkowie API Aspose.Words dla Python via .NET używają Pythona w stylu węża, jednak w większości przypadków mają analogi jeden do jednego w Aspose.Words dla .NET API. Te analogi można znaleźć w pliku plik XML.
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.