Настройки печати selenium через driver.execute_script('window.print();') Нужен фон, колонтитулы и масштаб (Python, Selenium)
Делаю печать страницы через driver.execute_script('window.print();') с отправкой её в телеграм бота в принципе все получается, но не могу найти какие prefs включить для включения при печати 1."фона" 2.масштаба 3.выкл колонтитулы (скрин)
Искал /гуглил , не смог найти - описания которые есть либо устарели, или не относятся к этим параметрам. С дефолтными настройками, файл выходит - но он плохо читаем.
optian = webdriver.ChromeOptions()
optian.add_argument('ignore-certificate-errors')
optian.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36")
optian.add_argument("--disable-blink-features=AutomationControlled")
settings = { "recentDestinations": [{"id": "Save as PDF", "origin": "local", "account": "", }], "selectedDestinationId": "Save as PDF","version": 2 }
prefs = { 'printing.print_preview_sticky_settings.appState': json.dumps(settings),
"plugins.always_open_pdf_externally": True,
"download.directory_upgrade": True, "download.default_directory": "c:\\patch" ,
"recentDestinations": [{"id": "Save as PDF", "origin": "local", "account": "", }],
"selectedDestinationId": "Save as PDF","version": 2 }
optian.add_experimental_option('prefs', prefs)
optian.add_argument('--kiosk-printing')
optian.add_argument('--enable-print-browser')
# optian.headless = False
optian.headless = True
Ответы (1 шт):
Автор решения: михаил
→ Ссылка
итак отвечу сам себе
- способ Устанавливаем отдельный профиль хрома- запускаем селениум окно - в паузе выставляем нужные настройки и директорию. Хром запомнит настройки и далее будет печатать как нужно вам.
- Способ
В префы driver добавляем директорию сохранения,
'savefile.default_directory': 'PATH',
`включаем фон
`"isCssBackgroundEnabled": True,`
убираем колонтитулы
"isHeaderFooterEnabled": False,`
Общее: Чтобы при печати сохранял страницу в файл Pdf с нужным нам именем - меняем титл страницы перед принтом.
driver.execute_script('document.title="{}";'.format('ИМЯ));
