问题描述
我有一个使用Python,Selenium和Chrome网络驱动程序的工作脚本,可以将网页另存为PDF。但是,我需要将它们保存在合法尺寸的文档(216 x 356毫米)中,而我当前的脚本仅以字母尺寸(216 x 279毫米)保存文件。
这是我当前拥有的代码:
# Attach printing options to webdriver
app_state = {
"recentDestinations": [
{
"id": "Save as PDF","origin": "local","account": ""
}
],"selectedDestinationId": "Save as PDF","isCssBackgroundEnabled": True,"isheaderfooterEnabled": False,"isLandscapeEnabled": True,"version": 2
}
prefs = {
'printing.print_preview_sticky_settings.appState': json.dumps(app_state)
}
chrome_options = webdriver.ChromeOptions()
chrome_options.add_experimental_option('prefs',prefs)
chrome_options.add_argument('--kiosk-printing')
driver = webdriver.Chrome(options=chrome_options)
是否可以使用法定尺寸保存文档(或以任何方式更改纸张尺寸)?
我一直在寻找其他偏好和选项来更改纸张设置和/或尺寸,但是一点运气都没有。
谢谢!
解决方法
如果您添加
"mediaSize": {"height_microns": 355600,"width_microns": 215900}
在appState词典中,您应该将纸张尺寸设置为Legal。
如果要更改为其他尺寸(在列表中),可以搜索尺寸并转换为微米,或者检查允许您选择纸张尺寸的下拉菜单,然后搜索所需的尺寸在选项中,然后复制/粘贴值。
要使此解决方案有效,值必须与下拉菜单中的值完全匹配 ,否则它将不会选择默认值,即默认为Letter。