我想使用openpyxl
将纸张尺寸打印选项设置为 A6 或自定义用户尺寸模板,代码如下:>
workbook = Workbook()
ws = workbook.active
ws.page_setup.paperSize = ws.PAPERSIZE_CUSTOM
不幸的是,从文档中看来,似乎唯一可用的枚举尺寸是:
PAPERSIZE_LETTER = '1'
PAPERSIZE_LETTER_SMALL = '2'
PAPERSIZE_TABLOID = '3'
PAPERSIZE_LEDGER = '4'
PAPERSIZE_LEGAL = '5'
PAPERSIZE_STATEMENT = '6'
PAPERSIZE_EXECUTIVE = '7'
PAPERSIZE_A3 = '8'
PAPERSIZE_A4 = '9'
PAPERSIZE_A4_SMALL = '10'
PAPERSIZE_A5 = '11'
我尝试将纸张高度和纸张宽度设置为我的自定义属性,例如:
#ws.page_setup.paperSize = ws.PAPERSIZE_A6
ws.page_setup.paperHeight = '105mm'
ws.page_setup.paperWidth = '148mm'
但是,当通过excel打印时,我仍然必须使用下拉对话框选择'A6',然后才能打印到正确的纸张尺寸。
有没有办法做到这一点?或达到类似的效果?如果有关系,我就使用Mac OS。
答案 0 :(得分:1)
问题:设置自定义打印纸张尺寸
从文档来看,似乎唯一可用的枚举大小是...
OpenOffice中缺少的值:
- A6 :
70
- 自定义:
0
值必须为
int
类型。
试图使用以下方法进行设置:
ws.page_setup.paperSize = 70
# or
ws.set_printer_settings(70, ORIENTATION_PORTRAIT)
不会更改 Format => Page => [Page]
设置。
这对我有用:
ws.page_setup.paperHeight = '105mm'
ws.page_setup.paperWidth = '148mm'
Format => Page => [Page]
的设置已更改为User:
,并带有给定的Height/Width
。
我建议使用以下:
ws.set_printer_settings(0, ORIENTATION_PORTRAIT)
ws.page_setup.paperHeight = '105mm'
ws.page_setup.paperWidth = '148mm'
使用Python测试:3.4.2-openpyxl:2.4.1-LibreOffice:5.2.7.2