jmj26
Янв. 17, 2023 22:57:59
Добрый день!
Существует задача печати из python на принтере по умолчанию активного листа открытого xls файла в альбомном формате с минимальными полями и вписать по ширине на лист. С помощью xlwings и метода printout смог лишь распечатать активный лист в “книжном” формате… Подскажите новичку, что можно сделать? Буду рад любой помощи!
jmj26
Янв. 20, 2023 19:40:11
может кому и пригодится… Печать “налету”. Делаем копию активного листа в xlwings в папке Temp, затем открываем эту копию openpyxl и задаем параметры:
# задаем ориентацию страницы
ws.page_setup.orientation = ‘landscape’
# теперь зададим размер листа
ws.page_setup.paperSize = ws.PAPERSIZE_A4
# импортируем класс `PageMargins`
from openpyxl.worksheet.page import PageMargins
# задаем собственные значения отступов
cm = 0.1
ws.page_margins = PageMargins(left=cm, right=cm, top=cm, bottom=cm)
# содержимое по ширине страницы
ws.sheet_properties.pageSetUpPr.fitToPage = True
ws.page_setup.fitToHeight = False
wb.save(“C:\\Temp\ZZ.xlsx”)
import xlwings as xw
wb = xw.Book(“C:\\Temp\\ZZ.xlsx”)
wb.api.ActiveSheet.PrintOut()
Если кто-то знает другой способ просьба поделиться.
jmj26
Янв. 20, 2023 19:41:51
ZerG
win32 + python => google
Спасибо, очень содержательно!