以下では書類の向きを横向きにして2行2列の表を作成し、2行目を結合してそれぞれに画像を貼り付けています。
from docx import Document
from docx.shared import Cm
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.enum.table import WD_TABLE_ALIGNMENT
from docx.enum.section import WD_ORIENT
doc = Document()
section = doc.sections[-1]
new_width, new_height = section.page_height, section.page_width
section.orientation = WD_ORIENT.LANDSCAPE
section.page_width = new_width
section.page_height = new_height
tables = doc.add_table(2, 2)
tables.alignment = WD_TABLE_ALIGNMENT.CENTER
a = tables.cell(1, 0)
b = tables.cell(1, 1)
A = a.merge(b)
p = doc.tables[0].rows[0].cells[0].paragraphs[0]
p.alignment=WD_ALIGN_PARAGRAPH.CENTER
r = p.add_run()
r.add_picture('1.jpg',width=Cm(8.0), height=Cm(6.0))
r.add_break()
r.add_text('風景1')
p = doc.tables[0].rows[0].cells[1].paragraphs[0]
p.alignment=WD_ALIGN_PARAGRAPH.CENTER
r = p.add_run()
r.add_picture('2.jpg',width=Cm(8.0), height=Cm(6.0))
r.add_break()
r.add_text('風景2')
p = doc.tables[0].rows[1].cells[1].paragraphs[0]
p.alignment=WD_ALIGN_PARAGRAPH.CENTER
r = p.add_run()
r.add_picture('3.jpg',width=Cm(8.0), height=Cm(6.0))
r.add_break()
r.add_text('風景3')
doc.add_page_break()
doc.save('test.docx')
結合したセルにアクセスするには、
p = doc.tables[0].rows[1].cells[0].paragraphs[0]
としても良いし、
p = doc.tables[0].rows[1].cells[1].paragraphs[0]
としても良いようです。
また、書類を横向きにするためには
section.orientation = WD_ORIENT.LANDSCAPE
とするだけではダメで、
section.page_width section.page_height
を書き換えてサイズを変更する必要があります。