Python使用selenium chrome无头模式html转换为pdf,亲测linux可运行
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
import subprocess
import os
def html_to_pdf(input_html, output_pdf):
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
desired_capabilities = DesiredCapabilities.CHROME
desired_capabilities['printing.print_to_pdf'] = True
desired_capabilities['loggingPrefs'] = {'browser': 'ALL'}
with webdriver.Chrome(desired_capabilities=desired_capabilities, options=chrome_options) as driver:
driver.get(input_html)
pdf_data = driver.get_screenshot_as_png() # 获取网页截图作为PDF的替代
with open(output_pdf, 'wb') as file:
file.write(pdf_data)
# 使用示例
html_to_pdf('http://example.com', 'example.pdf')
这段代码使用了Selenium和Chrome的无头模式来获取网页的屏幕截图,并假设网页的内容可以通过屏幕截图来表示。这种方法并不是将HTML转换为PDF,而是将网页内容的屏幕截图保存为PDF文件。如果需要真正的HTML到PDF转换,请考虑使用其他库,如weasyprint
或pdfkit
。
评论已关闭