@browserless/pdf

中文文档
14.1.6发布于 2026/11/07MITCommonJS近 30 天下载 2.3万

将网站转换为高质量的PDF,具有自定义的边距,背景打印,并优化了缩放.

中文使用文档
文档目录12 节
  1. 安装
  2. 关于
  3. 这个软件包做什么
  4. 使用量
  5. 默认设置
  6. 选项
  7. 边距配置
  8. 智能内容检测
  9. 实例
  10. 如何适合在单体
  11. 依赖关系
  12. 许可证
browserless browserless

Powered by microlink.io Last version Coverage Status NPM Status

@browserless/pdf:将一个网站导出为PDF的感知好默认.

见 pdf 节 我们的网站有更多信息.

安装

使用 npm :

npm install @browserless/pdf --save

关于

此软件包提供 PDF 生成 从网页上读取有合理默认和智能内容检测。 它包着普普提特的 page.pdf() 具有优化设置和重试机制,以确保在生成 PDF 之前充分提供页面.

这个软件包做什么

这个 @browserless/pdf 软件包允许您 :

  • 生成 PDF 从任何含有生产准备默认值的 URL
  • 等页面准备好 包括空白屏幕检查
  • 自定义边距 带有简单字符串或平面配置
  • 缩放内容 以最佳方式匹配页面
  • 使用所有的 PPDF 选项 高级定制

使用量

const createPdf = require('@browserless/pdf')
const createGoto = require('@browserless/goto')

const goto = createGoto({ timeout: 30000 })
const pdf = createPdf({ goto })

// With browserless
const browserless = await browser.createContext()
const pdfBuffer = await browserless.pdf('https://example.com')

// Or directly with a page
const page = await browser.newPage()
const pdfFn = pdf(page)
const pdfBuffer = await pdfFn('https://example.com')

默认设置

软件包应用这些优化的默认值 :

选项默认说明
margin'0.35cm'页边距(适用于所有方)
scale0.65最佳匹配的内容尺度因素
printBackgroundtrue包含背景颜色/图像
waitUntil'auto'智能等待和内容检测

选项

选项类型默认说明
marginstring | object'0.35cm'页面边距
scalenumber0.65网页渲染的规模(0.1-2)
printBackgroundbooleantrue打印背景图形
waitUntilstring'auto'何时考虑导航完成
formatstring'Letter'纸张格式 (A4, 字母等)
landscapebooleanfalse纸张取向
widthstring | number—— 说纸张宽度( 覆盖格式)
heightstring | number—— 说纸张高度( 覆盖格式)
pageRangesstring—— 说打印的纸张范围,例如“ 1-5, 8”
headerTemplatestring—— 说HTML 页眉模板
footerTemplatestring—— 说页脚的 HTML 模板
displayHeaderFooterbooleanfalse显示页眉和页脚
preferCSSPageSizebooleanfalse优先使用 CSS @ page 大小

全体 Puppeteer page.pdf () 选项 被支持.

边距配置

设置边值为单值(适用于所有方)或平面:

// Single value for all sides
await browserless.pdf(url, { margin: '1cm' })

// Per-side configuration
await browserless.pdf(url, {
  margin: {
    top: '2cm',
    right: '1cm',
    bottom: '2cm',
    left: '1cm'
  }
})

支助单位: px, (中文(简体) ), in, (中文(简体) ), cm, (中文(简体) ), mm

智能内容检测

何时 waitUntil: 'auto' (默认),包:

  1. 导航到页面
  2. 等待油漆/准备状态信号(waitForReady + 键 isPageReady(中文(简体) )
  3. 水合物溢出后,一旦准备好(prepareFullDocument(中文(简体) )
  4. 生成 PDF

这保证了动态内容(JavaScript-resisted pages)在PDF生成前被完全加载.

// Use auto detection (default)
await browserless.pdf(url, { waitUntil: 'auto' })

// Or use standard Puppeteer wait conditions
await browserless.pdf(url, { waitUntil: 'networkidle0' })
await browserless.pdf(url, { waitUntil: 'domcontentloaded' })

实例

基本 PDF 生成

const pdfBuffer = await browserless.pdf('https://example.com')
await fs.writeFile('output.pdf', pdfBuffer)

有自定义边距的 A4 格式

const pdfBuffer = await browserless.pdf('https://example.com', {
  format: 'A4',
  margin: '2cm',
  scale: 0.8
})

有页眉/页脚的景观

const pdfBuffer = await browserless.pdf('https://example.com', {
  landscape: true,
  displayHeaderFooter: true,
  headerTemplate: '<div style="font-size:10px; text-align:center; width:100%;">Header</div>',
  footerTemplate: '<div style="font-size:10px; text-align:center; width:100%;"><span class="pageNumber"></span>/<span class="totalPages"></span></div>'
})

打印特定页面

const pdfBuffer = await browserless.pdf('https://example.com', {
  pageRanges: '1-3, 5'
})

如何适合在单体

这是一个 核心功能软件包 用于 PDF 生成 :

消费者目的
browserless (核心数)规定 .pdf() 方法
@browserless/cli权力 browserless pdf 命令

依赖关系

软件包目的
@browserless/goto用广告屏蔽的页面导航
@browserless/screenshot准备状态和空白屏幕检查
@kikobeats/time-span重试逻辑的时间测量
debug-logfmt结构化调试日志
pretty-ms人类可读时间格式化

许可证

@ 浏览器不可用/ pdf © 微链接,在 麻省理工学院 执照.
作者和维护者 微链接 由来自 捐助者。 。 。 .

这个 标志 设计由 辛赫工作室。 。 。 .

微链接.io • GitHub 软件 微链克 • X @microlinkhq (英语)

版本与发布记录

@browserless/pdf 共发布 426 个版本,首次发布于 2019/03/11;过去 12 个月发布了 107 个版本。

版本发布日期距今
14.1.6latest2026/11/071 天前
14.1.52026/11/062 天前
14.1.42026/11/062 天前
14.1.22026/11/035 天前
14.1.12026/11/026 天前
14.0.332026/10/2712 天前

关于 @browserless/pdf 的常见问题

@browserless/pdf 是什么?

将网站转换为高质量的PDF,具有自定义的边距,背景打印,并优化了缩放.

如何安装 @browserless/pdf?

在项目目录运行 npm install @browserless/pdf,或使用 pnpm add / yarn add / bun add。

@browserless/pdf 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/browserless__pdf 是否存在。

@browserless/pdf 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@browserless/pdf 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >= 24。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@browserless/pdf 可以商用吗?

@browserless/pdf 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@browserless/pdf 的下载量有多少?

根据 npm 官方下载统计,@browserless/pdf 在 2026/10/09 – 2026/11/07 这 30 天内被下载 23,184 次,日均约 773 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@browserless/pdf 还在维护吗?

最新版本 14.1.6 发布于 2026/11/07(1 天前);至今共发布 426 个版本,其中过去 12 个月发布了 107 个;首次发布于 2019/03/11。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。