@docmost/pdf-inspector

中文文档
1.9.6发布于 2026/05/15MITTypeScriptCommonJS零依赖构建来源已验证近 30 天下载 1.6万

快速PDF分类,文本取出,和图像取出. 土生土长的表演方式是阿斯匹克.

中文使用文档
文档目录13 节
  1. 安装
  2. API 密码
  3. processPdf(buffer: Buffer, pages?: number[]): PdfResult
  4. classifyPdf(buffer: Buffer): PdfClassification
  5. processPdfWithImages(buffer: Buffer, pages?: number[]): Pdf…
  6. extractImages(buffer: Buffer): ExtractedImage[]
  7. extractTextInRegions(buffer: Buffer, pageRegions: PageRegio…
  8. extractText(buffer: Buffer): string
  9. 类型
  10. 支持的图像格式
  11. 业绩
  12. 平台
  13. 许可证

PDF 检查员

快速的PDF分类,文本提取,以及Node.js/Bun的图像提取. 原始 Rust 表演通过 美洲狮。 。 。 .

由 纵火 对于混合式OCR管线——尽可能从PDF结构中取出文本,只有在需要时才返回OCR.

安装

npm install firecrawl-pdf-inspector
# or
bun add firecrawl-pdf-inspector

包含预建二进制 linux-x64, (中文(简体) ), linux- arm64 (英语), (中文(简体) ), 马科斯ARM64,以及 窗口-x64不需要拉链.

API 密码

processPdf(buffer: Buffer, pages?: number[]): PdfResult

完整的PDF处理——在一次呼叫中进行分类,取出文本并转换为Markdown.

import { processPdf } from 'firecrawl-pdf-inspector'
import { readFileSync } from 'fs'

const pdf = readFileSync('document.pdf')
const result = processPdf(pdf)

console.log(result.pdfType)    // "TextBased" | "Scanned" | "Mixed" | "ImageBased"
console.log(result.markdown)   // Markdown string or null
console.log(result.pageCount)  // 42

classifyPdf(buffer: Buffer): PdfClassification

将 PDF 分类为基于文本、扫描、混合或基于图像(~10-50ms)。 返回需要OCR的页面.

import { classifyPdf } from 'firecrawl-pdf-inspector'

const result = classifyPdf(readFileSync('document.pdf'))

console.log(result.pdfType)         // "TextBased" | "Scanned" | "Mixed" | "ImageBased"
console.log(result.pageCount)       // 42
console.log(result.pagesNeedingOcr) // [5, 12, 15] (0-indexed)
console.log(result.confidence)      // 0.875

processPdfWithImages(buffer: Buffer, pages?: number[]): PdfResultWithImages

处理一个 PDF 并在一个呼叫中同时提取标记和图像 。 降标包含 ![image](pdf-image://N) 占位符位于何处 N 是返回的索引 images 阵列.

import { processPdfWithImages } from 'firecrawl-pdf-inspector'
import { readFileSync } from 'fs'

const result = processPdfWithImages(readFileSync('document.pdf'))

console.log(result.images.length)  // 110
console.log(result.markdown)       // "# Title\n\n![image](pdf-image://0)\n\nSome text..."

// Replace placeholders with real URLs after uploading
let content = result.markdown
for (let i = 0; i < result.images.length; i++) {
  const img = result.images[i]
  const ext = img.format === 'Jpeg' ? 'jpg' : 'png'
  const url = await uploadImage(img.data, `image-${i}.${ext}`)
  content = content.replace(`pdf-image://${i}`, url)
}

extractImages(buffer: Buffer): ExtractedImage[]

从 PDF 提取嵌入式图像为原始字节 。 支持JPEG(DCTDecode)和PNG(FlateDecode)图像. 返回带有页面位置和尺寸的图像数据.

图像提取是一个与文本提取独立的函数——调用 processPdf 或者说 extractText 已经 没有 支付图像解压/编码的费用.

import { extractImages } from 'firecrawl-pdf-inspector'
import { writeFileSync } from 'fs'

const images = extractImages(readFileSync('document.pdf'))

for (const img of images) {
  const ext = img.format === 'Jpeg' ? 'jpg' : 'png'
  writeFileSync(`page${img.page}_${img.width}x${img.height}.${ext}`, img.data)
  console.log(`Page ${img.page}: ${img.width}x${img.height} ${img.format}`)
}

extractTextInRegions(buffer: Buffer, pageRegions: PageRegions[]): PageRegionTexts[]

从 PDF 从边框区域中提取文本。 为混合式OCR管道所设计,其中布局模型在渲染的页面图像中检测出区域,而此函数从PDF结构中提取出文本用于基于文本的页面——跳过GPU OCR.

每个区域的成果包括: needsOcr 表示不可靠提取的旗帜(空文本、GID编码字体、垃圾文本、编码问题).

import { extractTextInRegions } from 'firecrawl-pdf-inspector'

const result = extractTextInRegions(pdf, [
  {
    page: 0, // 0-indexed
    regions: [
      [0, 0, 300, 400],    // [x1, y1, x2, y2] in PDF points, top-left origin
      [300, 0, 612, 400],
    ]
  }
])

for (const region of result[0].regions) {
  if (region.needsOcr) {
    // Unreliable text — send this region to OCR instead
  } else {
    console.log(region.text) // Extracted text in reading order
  }
}

extractText(buffer: Buffer): string

从 PDF 中提取纯文本 .

import { extractText } from 'firecrawl-pdf-inspector'

const text = extractText(readFileSync('document.pdf'))

类型

interface PdfResult {
  pdfType: string          // "TextBased" | "Scanned" | "Mixed" | "ImageBased"
  markdown: string | null  // Markdown output
  pageCount: number
  processingTimeMs: number
  pagesNeedingOcr: number[] // 1-indexed page numbers
  title: string | null
  confidence: number        // 0.0 - 1.0
  isComplexLayout: boolean
  pagesWithTables: number[]
  pagesWithColumns: number[]
  hasEncodingIssues: boolean
}

// Extends PdfResult with extracted images
interface PdfResultWithImages extends PdfResult {
  images: ExtractedImage[]  // Indices match pdf-image://N placeholders in markdown
}

interface PdfClassification {
  pdfType: string          // "TextBased" | "Scanned" | "Mixed" | "ImageBased"
  pageCount: number
  pagesNeedingOcr: number[] // 0-indexed page numbers
  confidence: number        // 0.0 - 1.0
}

interface ExtractedImage {
  page: number              // 1-indexed page number
  x: number                 // X position on page
  y: number                 // Y position on page
  width: number             // Pixel width
  height: number            // Pixel height
  format: string            // "Jpeg" | "Png"
  data: Buffer              // Raw image bytes (valid JPEG or PNG file)
}

interface PageRegions {
  page: number              // 0-indexed
  regions: number[][]       // [[x1, y1, x2, y2], ...] in PDF points, top-left origin
}

interface PageRegionTexts {
  page: number
  regions: RegionText[]
}

interface RegionText {
  text: string
  needsOcr: boolean         // true when text is unreliable
}

支持的图像格式

PDF 过滤器输出格式状态
DCTD编码JPEG 组合支助
节点巴布亚新几内亚支助
JPX 十进制JPEG 2000 主题计划
CCITTFax十进制TIFF 时长计划

颜色空格 : 设备RGB,设备Gray,设备CMYK(被转换为RGB),索引,ICC Based,CalRGB,CalGray.

说明: 矢量图形(用 PDF 路径操作符绘制)不是光栅图像,不能被取出——它们需要渲染.

业绩

文本提取和图像提取是独立的路径. processPdf 财务报告和审定财务报表 extractText 全部跳过图像处理, 所以当您只需要文本时, 上面是零 .

平台

平台建筑支助
链接x64 (韩语)对
链接阿尔马-64对
马科斯阿尔马-64对
窗口x64 (韩语)对

许可证

麻省理工学院

版本与发布记录

@docmost/pdf-inspector 共发布 4 个版本,首次发布于 2026/05/01;过去 12 个月发布了 4 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.9.6latest2026/05/155 个月前
1.9.52026/05/106 个月前
1.9.42026/05/016 个月前
1.9.32026/05/016 个月前

关于 @docmost/pdf-inspector 的常见问题

@docmost/pdf-inspector 是什么?

快速PDF分类,文本取出,和图像取出. 土生土长的表演方式是阿斯匹克.

如何安装 @docmost/pdf-inspector?

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

@docmost/pdf-inspector 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@docmost/pdf-inspector 支持 ESM 还是 CommonJS?

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

@docmost/pdf-inspector 可以商用吗?

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

@docmost/pdf-inspector 的下载量有多少?

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

@docmost/pdf-inspector 还在维护吗?

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