The following code tries to use landscape
orientation, but the document is created as potrait.
Can you suggest where the problem is?
from docx import Document
from docx.enum.section import WD_ORIENT
document = Document()
section = document.sections[-1]
section.orientation = WD_ORIENT.LANDSCAPE
document.add_heading('text')
document.save('demo.docx')
When I read the code back as XML
<w:document>
<w:body>
<w:p>
<w:pPr>
<w:pStyle w:val="Heading1"/>
</w:pPr>
<w:r>
<w:t>TEXT</w:t>
</w:r>
</w:p>
<w:sectPr w:rsidR="00FC693F" w:rsidRPr="0006063C" w:rsidSect="00034616">
<w:pgSz w:w="12240" w:h="15840" w:orient="landscape"/>
<w:pgMar w:top="1440" w:right="1800" w:bottom="1440" w:left="1800" w:header="720" w:footer="720" w:gutter="0"/>
<w:cols w:space="720"/>
<w:docGrid w:linePitch="360"/>
</w:sectPr>
</w:body>
</w:document>
I don't know XML well by assume the section tags should come above the TEXT tags at the top rather than the bottom????
Whilst the page is correctly tagged as landscape, its dimensions remain the same as before and must be manually changed.
http://python-docx.readthedocs.io/en/latest/user/sections.html
Page dimensions and orientation
Three properties on Section describe page dimensions and orientation. Together these can be used, for example, to change the orientation of a section from portrait to landscape:
...
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
I have made a function that makes it easy to change from landscape orientation to portrait orientation and viceversa:
def change_orientation():
current_section = document.sections[-1]
new_width, new_height = current_section.page_height, current_section.page_width
new_section = document.add_section(WD_SECTION.NEW_PAGE)
new_section.orientation = WD_ORIENT.LANDSCAPE
new_section.page_width = new_width
new_section.page_height = new_height
return new_section
Then just use it whenever you want:
change_orientation()
document.add_picture(ax1)
change_orientation()
document.add_picture(ax2)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With