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

NodeJS环境下能否搭配axios直接使用pdf-table-extractor处理远程PDF

问题解答

首先明确:该需求可以实现,你遇到的报错是库的入参校验逻辑和调用方式不规范导致的。

报错翻译

原报错The argument 'path' must be a string or Uint8Array without null bytes. Received Uint8Array(118456)的中文含义为:

参数"path"必须是不包含空字节的字符串或Uint8Array,当前接收到的是长度为118456的Uint8Array

报错原因

  • 你使用的pdf-table-extractor版本对二进制入参的校验逻辑存在缺陷,会把PDF二进制格式中合法的0值误判为非法空字节,触发参数校验失败
  • 你当前的调用方式缺少必填的成功/失败回调参数,该库本身不支持Promise调用,必须传入两个回调函数作为第二、第三入参

解决方案

方案1:临时文件中转(兼容性最高,无需修改依赖)

先把远程获取到的PDF内容写入本地临时文件,再传文件路径给提取库,代码示例:

const axios = require('axios')
const fs = require('fs/promises')
const pdf_table_extractor = require("pdf-table-extractor")

async function extractPdfTable() {
  // 获取远程PDF二进制内容
  const pdfRes = await axios.get(`你的PDF资源地址`, { responseType: 'arraybuffer' })
  // 生成唯一临时文件路径,避免冲突
  const tempPdfPath = `./temp_${Date.now()}.pdf`
  // 写入临时文件
  await fs.writeFile(tempPdfPath, pdfRes.data)

  // 调用表格提取能力
  pdf_table_extractor(
    tempPdfPath,
    // 成功回调
    async (extractResult) => {
      console.log('表格提取完成', extractResult)
      // 提取完成后删除临时文件,释放磁盘空间
      await fs.unlink(tempPdfPath)
    },
    // 失败回调
    async (err) => {
      console.error('表格提取失败', err)
      await fs.unlink(tempPdfPath)
    }
  )
}

extractPdfTable()

方案2:内存直接处理(无需写入本地文件)

先升级配套依赖修复校验问题,直接传入Buffer格式的PDF内容即可,操作步骤:

  1. 执行命令安装兼容版本依赖:npm install pdf-table-extractor pdfjs-dist@3.4.120
  2. 使用如下代码实现:
const axios = require('axios')
const pdf_table_extractor = require("pdf-table-extractor")

async function extractPdfTable() {
  const pdfRes = await axios.get(`你的PDF资源地址`, { responseType: 'arraybuffer' })
  // 将ArrayBuffer转为Node.js Buffer,适配校验逻辑
  const pdfBuffer = Buffer.from(pdfRes.data)

  pdf_table_extractor(
    pdfBuffer,
    (extractResult) => console.log('提取成功', extractResult),
    (err) => console.error('提取失败', err)
  )
}

extractPdfTable()

内容的提问来源于stack exchange,提问作者Zan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 16:24:05