pdf-extractor-data
v1.0.3
Published
Addon nativo Node.js em C++ para extração de dados de PDF
Maintainers
Readme
extrator-dados-pdf
Addon nativo Node.js (C++/N-API) para extrair texto e metadados básicos de PDFs usando PDFium.
Requisitos
- Node.js 18+ (recomendado 20+)
- Python 3 (node-gyp)
- Ferramentas de build C++
- Windows: Visual Studio Build Tools 2022 (C++), MSVC x64
- Linux/macOS: Clang/GCC e CMake (a validar)
Observação: este repositório inclui binários do PDFium para Windows x64 em pdfium/lib/win/x64. A DLL (pdfium.dll) é copiada automaticamente para a pasta de saída durante o build.
Instalação e build (local)
npm install
npm run buildSe alterar os fontes nativos, rode:
npm run rebuildBuild no Windows
- Instale o Visual Studio Build Tools 2022 (com workload de C++ / MSVC x64) e Python 3.
- Os binários do PDFium para Windows x64 já estão neste repositório em
pdfium/lib/win/x64. - Rode:
Anpm install npm run buildpdfium.dllserá copiada automaticamente para a pasta de saída do addon.
Build no Linux
- Instale as ferramentas de build:
(Em outras distros, instale os equivalentes;sudo apt-get update sudo apt-get install -y build-essential python3 make g++ cmakeiconvgeralmente faz parte da glibc.) - Coloque o
libpdfium.socorrespondente na árvore do projeto:- x64:
pdfium/lib/linux/x64/lib/libpdfium.so - arm64:
pdfium/lib/linux/arm64/lib/libpdfium.so
- x64:
- Rode:
O build copia onpm install npm run buildlibpdfium.sopara a pasta de saída e definerpathpara carregá-lo em runtime.
Suporte de plataforma (atual)
- Windows x64: suportado
- Linux/macOS: em planejamento
Uso básico
const { extractPdf } = require('extrator-dados-pdf'); // ou require('./') durante o desenvolvimento
const filePath = 'test/exemplo.pdf';
// Extração básica
const result = extractPdf(filePath);
console.log(result.metadata); // { title, author, pages }
console.log(result.pages[0].text); // texto da primeira página
// PDF com senha
const secured = extractPdf(filePath, { password: 'minha-senha' });Retorno:
{
metadata: {
title: string,
author: string,
pages: number
},
pages: Array<{ page: number, text: string }>
}Testes
Coloque um PDF de exemplo em test/exemplo.pdf e rode:
npm testEstrutura
index.js: API JavaScript (carrega o addon nativo)src/addon.cc: implementação C++ com PDFiumbinding.gyp: configuração de build (link + cópia da DLL no Windows)pdfium/: binários pré-compilados do PDFium (Windows x64) e libstest/: testes de unidade/integração
Erros comuns
- Falha ao abrir PDF: arquivo inexistente, corrompido ou senha incorreta
- Dependências de build ausentes: confira Requisitos
Licença
Usa PDFium (BSD-3-Clause). Verifique compatibilidade conforme seu caso.
