跳至主要内容

如何加载 PDF 文件

便携式文档格式 (PDF),标准化为 ISO 32000,是一种由 Adobe 于 1992 年开发的文件格式,用于以独立于应用程序软件、硬件和操作系统的形式呈现文档,包括文本格式和图像。

本文介绍了如何将 PDF 文档加载到我们在下游使用的文档格式中。

默认情况下,将为 PDF 文件中的每个页面创建一个文档。您可以通过将 splitPages 选项设置为 false 来更改此行为。

设置

npm install pdf-parse

用法,每个页面一个文档

import { PDFLoader } from "@langchain/community/document_loaders/fs/pdf";
// Or, in web environments:
// import { WebPDFLoader } from "@langchain/community/document_loaders/web/pdf";
// const blob = new Blob(); // e.g. from a file input
// const loader = new WebPDFLoader(blob);

const loader = new PDFLoader("src/document_loaders/example_data/example.pdf");

const docs = await loader.load();

用法,每个文件一个文档

import { PDFLoader } from "@langchain/community/document_loaders/fs/pdf";

const loader = new PDFLoader("src/document_loaders/example_data/example.pdf", {
splitPages: false,
});

const docs = await loader.load();

用法,自定义 pdfjs 构建

默认情况下,我们使用与 pdf-parse 捆绑在一起的 pdfjs 构建,该构建与大多数环境兼容,包括 Node.js 和现代浏览器。如果您想使用更近期的 pdfjs-dist 版本,或者如果您想使用 pdfjs-dist 的自定义构建,您可以通过提供一个自定义 pdfjs 函数来实现,该函数返回一个 promise,该 promise 解析为 PDFJS 对象。

在以下示例中,我们使用 pdfjs-dist 的“遗留” (请参阅 pdfjs 文档) 构建,其中包含默认构建中未包含的几个 polyfill。

npm install pdfjs-dist
import { PDFLoader } from "@langchain/community/document_loaders/fs/pdf";

const loader = new PDFLoader("src/document_loaders/example_data/example.pdf", {
// you may need to add `.then(m => m.default)` to the end of the import
pdfjs: () => import("pdfjs-dist/legacy/build/pdf.js"),
});

消除多余的空格

PDF 有很多种类,这使得读取它们成为一项挑战。加载器默认情况下会解析单个文本元素并将它们与空格连接在一起,但如果您看到过多的空格,这可能不是期望的行为。在这种情况下,您可以使用空字符串覆盖分隔符,如下所示

import { PDFLoader } from "@langchain/community/document_loaders/fs/pdf";

const loader = new PDFLoader("src/document_loaders/example_data/example.pdf", {
parsedItemSeparator: "",
});

const docs = await loader.load();

此页面是否有用?


您也可以留下详细的反馈 在 GitHub 上.