Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Aspose.Words для Python via .NET является оболочкой Aspose.Words для .NET, поэтому оба продукта обладают практически одинаковым набором функций. Тем не менее, есть некоторые нюансы работы и различия в функциях и API, которые описаны на этой странице.
Из-за процесса обновления некоторые функции недоступны в версии Python. Вот список наиболее заметных функций, которые в настоящее время недоступны в версии Python.
Хотя приведение типов не является естественным для разработчиков Python, некоторые задачи невозможно выполнить без приведения узлов или полей документов к конкретному типу. Aspose.Words для Python via .NET предусмотрены специальные методы, которые позволяют приводить объекты, где это необходимо.
Базовым классом для всех узлов документа в 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_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")Следующий пример кода демонстрирует, как считывать свойства элемента управления 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 методов, которые перечислены ниже:
Aspose.Words для Python допускает свойства индексатора только по типу int, однако в .NET можно использовать другие типы, например strings. Чтобы заполнить этот пробел, в следующих классах есть дополнительные методы:
Чтобы быть ближе к миру Python, в API элементах Aspose.Words для Python via .NET используется стиль питонической змеи, однако в большинстве случаев они имеют однозначный аналог в Aspose.Words для .NET API. Вы можете найти эти аналоги в xml-файле.
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.