You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Grover/Puppeteer生成300DPI印刷PDF卡遇144DPI瓶颈求助

解决Grover/Puppeteer生成300DPI印刷PDF的方案

核心逻辑

Puppeteer默认以96DPI渲染页面,要输出300DPI的印刷级PDF,需按300/96=3.125的比例放大渲染尺寸,再通过CSS精确控制最终PDF的物理尺寸,同时适配出血边要求。

具体调整步骤

1. Grover配置参数修正

调整视口、缩放比例及印刷相关参数,确保渲染精度:

grover_options = {
  viewport: {
    width: (2.25 * 300).to_i,  # 出血后宽度转像素:2.25英寸 × 300DPI
    height: (3.75 * 300).to_i, # 出血后高度转像素:3.75英寸 × 300DPI
    device_scale_factor: 1
  },
  scale: 3.125,                # 96DPI转300DPI的精确缩放比例
  media_type: 'print',         # 启用印刷媒体样式
  print_background: true,      # 保留背景色/图片
  prefer_css_page_size: true   # 优先遵循CSS @page的尺寸设置
}

2. CSS @page规则优化

明确PDF物理尺寸与出血边适配:

@page {
  size: 2.25in 3.75in;  /* 含出血边的最终PDF尺寸 */
  margin: 0;             /* 清除默认边距,避免内容偏移 */
}

.card-content {
  width: 2.25in;
  height: 3.75in;
  box-sizing: border-box;
  padding: 0.125in;      /* 出血边宽度:(2.25-2)/2 = 0.125英寸 */
  /* 卡片内容样式 */
}

3. 内容适配要点

  • 元素尺寸优先用in或基于300DPI的px(1英寸=300像素),避免相对单位导致缩放误差
  • 图片资源需保证原生分辨率≥300DPI,防止放大后模糊
  • 确认print_background参数开启,否则背景元素不会被渲染到PDF中

验证方式

生成PDF后,用Adobe Acrobat等工具查看文档属性,确认分辨率为300DPI,同时测量物理尺寸是否符合2.25in×3.75in的要求。

内容的提问来源于stack exchange,提问作者James St-Pierre

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 19:12:55