javascript - Puppeteer 视口设置在创建 PDF 时无效
问题描述
我正在尝试使用 puppeteer 创建 PDF。创建 PDF 时设置视口根本没有效果。但是,视口设置确实适用于屏幕截图。过去似乎在 github 上发现了一些问题,但它们显然已被关闭。传入 defaultViewport: null 应该是解决方案。
这是我的代码:
browser = await chromium.puppeteer.launch({
args: chromium.args,
defaultViewport: null,
executablePath: await chromium.executablePath,
ignoreHTTPSErrors: true,
headless: true,
});
let page = await browser.newPage();
// Set viewport
await page.setViewport({width: 1440, height: 900, deviceScaleFactor: 2});
// Generate pdf
const doc = await page.pdf(options);
我还尝试在启动时传递视口设置。
谢谢!
解决方案
page.pdf
模拟“打印到 PDF”操作。这意味着两件事:首先是媒体打印,其次是您需要将特定格式或大小传递给pdf
函数。
从文档中:
、
width
和选项接受标有单位的值height
。margin
未标记的值被视为像素。一些示例:
*page.pdf({width: 100})
- 宽度设置为 100 像素的打印。
*page.pdf({width: '100px'})
- 打印宽度设置为 100 像素。
*page.pdf({width: '10cm'})
- 打印宽度设置为 10 厘米。所有可能的单位是:
*px
- 像素
*in
- 英寸
*cm
- 厘米
*mm
- 毫米
format
选项有:
* : 8.5inLetter
x 11in
*Legal
: 8.5in x 14in
*Tabloid
: 11in x 17in
*Ledger
: 17in x 11in
*A0
: 33.1in x 46.8in
*A1
: 23.4in x 33.1in
*A2
: 16.54in x 23.4in
*A3
: 11.7英寸 x 16.54 英寸
*A4
:8.27 英寸 x 11.7 英寸
*A5
:5.83 英寸 x 8.27 英寸
*A6
:4.13 英寸 x 5.83 英寸
推荐阅读
- python-3.x - 连接 Express VPN 时 webdriver.chrome 无法正常工作
- angular - 更新 Angular 和 CLI 导致:发现不兼容的对等依赖项
- vba - 在 VBA 代码访问中引用链接表文件路径
- django - 如何在 Django ORM 中实现 SUM 聚合()+不同(字段)
- java - 如何在 setString 中调用方法
- c++ - 使用 CLion 在 C++ 中播放声音
- scala - Pureconfig 将配置读取为属性映射
- python - 比较行 pandas 值并查看它们是否匹配 python
- python - 使用属性作为 id 从 HTML div 创建 Python 字典
- python - 如何从名为“pyaugogui.point”的类中提取整数?