PDF text extraction plugin for ElizaOS.
To add this plugin to your Eliza OS project, run the following command:
elizaos plugins add @elizaos/plugin-pdfbun add @elizaos/plugin-pdf
No configuration required. Uses pdfjs-dist for local PDF processing.
To use this plugin, add its name to the plugins array within your character configuration object. Eliza OS will then load and initialize the plugin automatically.
const character: Partial<Character> = {
name: "MyAgent",
plugins: ["@elizaos/plugin-pdf"],
};Extracts text from PDF files.
Methods:
convertPdfToText(pdfBuffer: Buffer): Promise<string>- Convert PDF buffer to textconvertPdfToTextWithOptions(pdfBuffer: Buffer, options): Promise<PdfConversionResult>- Convert with optionsgetDocumentInfo(pdfBuffer: Buffer): Promise<PdfDocumentInfo>- Get full document information
Example:
import * as fs from "node:fs/promises";
import { ServiceType, type IPdfService } from "@elizaos/core"; // Assuming ServiceType and IPdfService are available
async function extractTextFromPdf(runtime: IAgentRuntime, filePath: string) {
try {
// Obtain the PdfService instance from the runtime
const pdfService = runtime.getService<IPdfService>(ServiceType.PDF);
if (!pdfService) {
console.error("PdfService not found. Ensure the plugin is registered.");
return;
}
// Read the PDF file into a buffer
const pdfBuffer = await fs.readFile(filePath);
// Convert the PDF buffer to text
const textContent = await pdfService.convertPdfToText(pdfBuffer);
console.log("Extracted Text:", textContent);
return textContent;
} catch (error) {
console.error("Error extracting text from PDF:", error);
}
}
// Assuming 'agentRuntime' is your initialized IAgentRuntime instance
// extractTextFromPdf(agentRuntime, 'path/to/your/document.pdf');pdfjs-dist- PDF parsing and rendering
MIT