openpyxl - установить нестандартный размер бумаги для печати - PullRequest
0 голосов
/ 21 октября 2019

Я хочу установить для параметра формата бумаги значение A6 или шаблон нестандартного размера пользователя с openpyxl, код будет следующим:

    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, если это имеет значение.

1 Ответ

1 голос
/ 21 октября 2019

Вопрос : установить нестандартный размер бумаги для печати

из документов, кажется, единственные доступные перечисленные размеры ...

Пропущенные значения из OpenOffice:

  • A6 : 70
  • Пользовательские :0

Значения должны быть типа int.

Попытка установить его с помощью:

ws.page_setup.paperSize = 70
# or
ws.set_printer_settings(70, ORIENTATION_PORTRAIT)

не изменяется Формат => Страница => [Page] Настройки.


Это работает для меня:

ws.page_setup.paperHeight = '105mm'
ws.page_setup.paperWidth = '148mm'

Формат => Страница => [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

...