繁体   English   中英

生成错误 PDF(空白或格式错误) - 编剧 Python

[英]Error generating PDF (blank or format error) - Playwright Python

语境:

  • 编剧版本: 1.29.1
  • 操作系统: Windows
  • Python 版本: 3.8.2
  • 浏览器:

描述错误

在某些特定情况下会出现此错误,通常是在直接或间接打开 pdf 预览页面时。

def test():

  from playwright.sync_api import sync_playwright
  with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)  _**#In this situation, with headless set to False, the blank pdf is issued, but when set to True, it is not possible to send it. Any suggestion?**_
    context = browser.new_context()
    page = context.new_page()
    page.goto('https://nyc3.digitaloceanspaces.com/midia/wp-content/uploads/2023/01/4tmrioel-sample.pdf')
    page.pdf(path='Test.pdf', format='A4')
test()

例如,在下面的代码片段中,生成的 pdf 是空的,空白的(屏幕截图是黑色的,没有任何内容)。 我注意到这个错误的发生是因为速度,所以我使用了睡眠库,因为 wait_for_load_state() 在这种情况下不起作用。 然而,新生成的 pdf 出现了错误的格式(这里是一张显示打印的附加图像,我隐藏了内容,但布局与黑色相同)

在此处输入图像描述

我的理论是,由于 chromium pdf 查看器摘要,页面会像这样生成。 所以,我试图在这段代码中禁用它:

  def test():

  from playwright.sync_api import sync_playwright
  from time import sleep

  with sync_playwright() as p:
    # browser = p.chromium.launch(headless=False)
    browser = p.chromium.launch_persistent_context(user_data_dir=r'C:\Users\pedro\AppData\Local\Temp\playwright_chromiumdev_profile-AidV4Q\Default', args=['--print-to-pdf', '--disable-extensions', '--print-to-pdf-no-header'], headless=False)
    page = browser.new_page()
    page.goto('https://nyc3.digitaloceanspaces.com/midia/wp-content/uploads/2023/01/4tmrioel-sample.pdf')
    sleep(5)
    page.pdf(path='test.pdf', format='A4')
    input()

尽管如此,我仍无法解决问题。 详细信息:无法在 Headless 模式下运行这些代码,chromium 似乎正在自动化(使检测更容易)。 那么,有人能解决我的问题吗?

你无法管理,因为它在无头模式下是不允许的。 您可以在官方文档中阅读: https://playwright.dev/python/docs/api/class-page#page-goto

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM