Aplicação web simples para abrir PDFs, selecionar trechos de texto e exportar/importar seleções em TXT. Focada em compatibilidade e uso direto no navegador sem build.
- Abre arquivos PDF via
<input type="file">usando PDF.js. - Reconstrói o texto das páginas preservando espaços entre palavras para evitar “palavras coladas”.
- Exporta cada seleção em blocos de duas linhas:
Página Ne o texto. Blocos separados por uma linha em branco. - Importa TXT tanto no formato novo (duas linhas por seleção) quanto no formato antigo (TSV).
- Destaques visuais no PDF estão desativados por simplicidade; seleções são listadas no painel lateral.
index.html: HTML principal, inclui PDF.js via CDN, definebase hrefrelativo e chamaapp.js.styles.css: estilos básicos da interface e da lista de seleções.app.js: lógica de abertura do PDF, extração de texto, seleção, exportação/importação e renderização da lista.
- Inicie um servidor estático na pasta do projeto:
python3 -m http.server 8000
- Abra
http://localhost:8000/no navegador. - Clique em “Abrir PDF” e selecione um arquivo.
- Selecione trechos de texto com o mouse.
- Use “Exportar TXT” para baixar as seleções.
- Use “Importar TXT” para carregar seleções previamente exportadas.
- Novo formato (recomendado): para cada seleção
- Linha 1:
Página <número> - Linha 2:
<texto selecionado> - Bloco separado dos demais por uma linha em branco.
- Linha 1:
- Formato antigo (compatível): linhas TSV com chaves
p,q,s,eetc. (detectado automaticamente no import).
- PDF.js via CDN:
index.htmlreferencia a versão 3.11.174.app.jsdefineGlobalWorkerOptions.workerSrcpara o worker do PDF.js.
- Fallbacks automáticos (em
openPdfFile):- Tenta abrir com worker (padrão).
- Se falhar, desativa worker e tenta novamente.
- Se ainda falhar, lê o arquivo como
ArrayBuffere abre pelo conteúdo.
base href="./"noindex.htmlpara funcionar em subpaths (ex.: GitHub Pages).
- Atualizar versão do PDF.js:
- Troque as URLs de
pdf.min.jsepdf_viewer.min.css/jsnoindex.htmlpara a nova versão. - Atualize
workerSrcno topo deapp.jspara a versão correspondente. - Teste a abertura de PDFs e seleção/exportação.
- Troque as URLs de
- Ajustar formato de exportação:
- Edite
exportTxt()emapp.jspara mudar a estrutura das linhas/blocos conforme necessidade.
- Edite
- Reativar destaques visuais (opcional):
- As funções de highlight estão desativadas; seria preciso restaurar a criação de elementos
.highlightnatextLayere atualização emrenderHighlightsForPage.
- As funções de highlight estão desativadas; seria preciso restaurar a criação de elementos
- PDFs remotos requerem CORS adequado no servidor de origem.
- Seleções baseiam-se na
textLayer; documentos com texto não extraível (apenas imagem) não funcionarão. - Navegadores modernos recomendados; testado com Chromium/Firefox.
Sem licença explícita definida. Use conforme necessário ou adicione uma licença de sua preferência.