Один из способов сделать это - создать прозрачную таблицу и добавить изображения в ячейки:
from docx import Document
document = Document()
tables = document.tables
table = document.add_table(rows=1, cols=2)
row_cells = table.add_row().cells
for i, image in enumerate(['image1.jpg', 'image2.jpg']):
paragraph = row_cells[i].paragraphs[0]
run = paragraph.add_run()
run.add_picture(image)
document.save('doc.docx')
Вот что вы получите, например:
Эквивалент static
в VB в Shared
. Общие методы обычно помещаются в классы Помощника, потому что они не требуют, чтобы экземпляр класса работал.
Тип T указывает, что это - общий метод (это - новая возможность в VB 9 и C# 3). Общий метод эффективно берет тип в качестве аргумента или возвращает универсальный тип.
Дополнительные методы являются также новыми в VB 9/C# 3. Они позволяют Вам расширять существующий тип путем добавления методов. Все, в чем Вы нуждаетесь, является Общим методом, который доступен в том же пространстве имен как Ваш код, и в VB код должен быть в модуле, не нормальном классе.
Модуль является классом, который нельзя инстанцировать, и (поэтому) только совместно использовал методы. Это объявляется с ключевым словом Модуля вместо ключевого слова класса. Вот Ваш код в VB.
(Также для тех, которые знают то, что идет "под покрытиями" на странно установку типа значения к Nothing
действительно компилирует в VB и поддерживаемый способ получить значение по умолчанию типа значения).
Imports System.Runtime.CompilerServices
<Extension()> _
Public Shared Function GetValueOrDefault(Of T)(ByVal reader As IDataReader, ByVal columnName As String) As T
Dim returnValue As T = Nothing
End Function
Он создает дополнительный метод. В C# это сделано путем создания статического метода (Совместно использованный в Visual Basic).
Механизм для создания дополнительных методов в Visual Basic, кажется, очень отличается, чем, как Вы делаете это в C#. Вы, вероятно, захотите считать запись MSDN о дополнительных методах, здесь: http://msdn.microsoft.com/en-us/library/bb384936.aspx
Это - то, на что метод был бы похож в VB:
Imports System.Runtime.CompilerServices
<Extension()> _
Public Shared Function GetValueOrDefault(Of T)(ByVal reader As IDataReader, ByVal columnName As String) as T
Dim returnvalue As T = Nothing
End Function
Я не уверен, как сделать значение по умолчанию (T) в VB, таким образом, я пропустил его.
Статическое ключевое слово C# совпадает с Общим ключевым словом VB.
T в Вашем примере параметр типа в Вашем общем методе.
В VB:
Public Function GetValueOrDefault(Of T)(ByVal reader as IDataReader, ByVal columnName as string) as T
Средства, что при вызове метода Вы предоставляете параметр типа (говорящий, чем тип T будет для вызова к методу),
Не уверенный в синтаксисе VB для создания дополнительного метода, все же. (Это - то, что обозначает "это" ключевое слово на Вашем первом параметре.)
То, на что Вы смотрите, не является "статическим T", но двумя отдельными частями.
Больше информации о статической функции.
Статические функции в VB.NET, знают как общие функции.
Больше информации об общих функциях.