Я пытаюсь сохранить некоторые веб-страницы в PDF с помощью Python, Selenium и Chrome, и я не могу настроить принтер по умолчанию для встроенной в Chrome опции «сохранить как PDF».
Я нашел примеры того, как это сделать, в разных местах в Интернете, в том числе в вопросах, которые люди задавали о переполнении стека, но они так, как они все это реализуют, не работают, и я не уверен, что что-то изменилось за последние годы.версии Chrome, или если я что-то делаю не так (например, вот страница с такими настройками: Отсутствуют элементы при использовании драйвера селена Chrome для автоматического «Сохранить как PDF» ).
Я включил изменение местоположения загрузки по умолчанию в этот код, чтобы убедиться, что оно вообще принимает любые изменения - если вы загрузите одну из установок Python с этой страницы, она будет загружена в новое местоположение, а не в стандартную папку загрузки.Таким образом, кажется, что Chrome принимает эти изменения.
Похоже, что проблема связана с параметром selectedDestinatio.NID ", который, кажется, ничего не делает.
from selenium import webdriver
import time
import json
chrome_options = webdriver.ChromeOptions()
app_state = {
'recentDestinations': [{
'id': 'Save as PDF',
'origin': 'local'
}],
'selectedDestinationId': 'Save as PDF',
'version': 2
}
prefs = {
'printing.print_preview_sticky_settings.appState': json.dumps(app_state),
'download.default_directory': 'c:\\temp\\seleniumtesting\\'
}
chrome_options.add_experimental_option('prefs', prefs)
driver = webdriver.Chrome(executable_path='C:\\temp\\seleniumtesting\\chromedriver.exe', options=chrome_options)
driver.get('https://www.python.org/downloads/release/python-373/')
time.sleep(25)
driver.close()
После запуска страницы при нажатии ctrl + p открывается страница печати, но по умолчанию используется принтер по умолчанию.Если я поднимаю ту же страницу в моей стандартной установке Chrome, по умолчанию она печатается в PDF.Я хочу добраться до точки, где я могу добавить печать киоска и затем вызвать window.print (), но на данный момент все, что делает, это отправляет его на настоящий бумажный принтер.
Спасибо за любую помощь, которую может предложить каждый.Я в замешательстве, и в этот момент, вероятно, было бы быстрее просто сохранить все это вручную.