我已经尝试了所有的解决方案,我可以在互联网上找到,以能够打印一个页面,在Selenium中打开,在Python中。然而,当打印弹出窗口出现时,一两秒钟后它就消失了,没有保存PDF。
from selenium import webdriver
from selenium.webdriver.support.select import Select
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.chrome.options import Options
from selenium.common.exceptions import WebDriverException
import time
import json
options = Options()
appState = {
"recentDestinations": [
{
"id": "Save as PDF",
"origin": "local"
}
],
"selectedDestinationId": "Save as PDF",
"version": 2
}
profile = {'printing.print_preview_sticky_settings.appState': json.dumps(appState)}
# profile = {'printing.print_preview_sticky_settings.appState':json.dumps(appState),'savefile.default_directory':downloadPath}
options.add_experimental_option('prefs', profile)
options.add_argument('--kiosk-printing')
CHROMEDRIVER_PATH = '/usr/local/bin/chromedriver'
driver = webdriver.Chrome(options=options, executable_path=CHROMEDRIVER_PATH)
driver.implicitly_wait(5)
driver.get(url)
driver.execute_script('window.print();')
$chromedriver --v
ChromeDriver 75.0.3770.90 (a6dcaf7e3ec6f70a194cc25e8149475c6590e025-refs/branch-heads/3770@{#1003})
2019-07-11更新:
我的问题被认为是重复的,但是a)另一个问题似乎是使用javascript代码,b)答案没有解决这个问题中提出的问题--可能与最近的软件版本有关。使用的Chrome版本是version 75.0.3770.100(官方版本)(64位),chromedriver是chromedriver 75.0.3770.90。在Mac OS上Mojave.Script在Python 3.7.3上运行。
2019-07-11更新:
from selenium import webdriver
import json
chrome_options = webdriver.ChromeOptions()
settings = {
"appState": {
"recentDestinations": [{
"id": "Save as PDF",
"origin": "local",
"account": "",
}],
"selectedDestinationId": "Save as PDF",
"version": 2
}
}
prefs = {'printing.print_preview_sticky_settings': json.dumps(settings)}
chrome_options.add_experimental_option('prefs', prefs)
chrome_options.add_argument('--kiosk-printing')
CHROMEDRIVER_PATH = '/usr/local/bin/chromedriver'
driver = webdriver.Chrome(chrome_options=chrome_options, executable_path=CHROMEDRIVER_PATH)
driver.get("https://google.com")
driver.execute_script('window.print();')
driver.quit()
而现在,什么都没发生。Chrome启动,加载url,打印对话框出现,但似乎什么也没有发生--默认打印机队列中什么也没有,也没有pdf文件--我甚至通过在Mac上查找“最近的文件”来搜索pdf文件。
当我的操作系统中没有任何其他打印机设置时,这里的答案是有效的。但当我有另一台默认打印机时,这就不起作用了。
我不明白怎么做,但用这种方式做点零钱似乎很管用。
from selenium import webdriver
import json
chrome_options = webdriver.ChromeOptions()
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)}
chrome_options.add_experimental_option('prefs', prefs)
chrome_options.add_argument('--kiosk-printing')
CHROMEDRIVER_PATH = '/usr/local/bin/chromedriver'
driver = webdriver.Chrome(chrome_options=chrome_options, executable_path=CHROMEDRIVER_PATH)
driver.get("https://google.com")
driver.execute_script('window.print();')
driver.quit()
Selenium的ChromeDriver能够在登录后打开嵌入式PDF,但我如何将chrome中的PDF文件保存到本地磁盘?谢了。
问题内容: 我必须提供一些导出功能到我的网站,例如CSV或PDF。Java是否有功能强大且免费的工具将HTML页面转换为PDF格式? 问题答案: 与一起使用可以将HTML内容转换为PDF。 以下示例在某种程度上帮助您理解XHTML到PDF的转换。 使用飞碟API的示例 : 您需要以下库: core-renderer.jar iText-2.0.8.jar 您可以在中找到这些资源。 例1:使用XML
我想把PDDocument的所有页面保存在一个单独的pdf文件中。我这样编程:
我一直在寻找其他偏好和选项来改变纸张设置和/或尺寸,但没有任何运气。 谢了!
我想使用html内容用我的python代码创建一个docx文件。Im直接写入扩展名为.docx的文件。这是开放的自由办公室,但不幸的是,在MS Word它没有开放。它显示为损坏的格式。为什么会这样?
使用Selenium4和chromedriver,我成功地将网站打印成具有自定义页面大小的PDF(请参见下面的Python代码)。我想知道用GeckoDriver/Firefox实现这一功能的等价物。