Este artigo apresenta 2 ferramentas para converter documentos PDF em texto editável no Linux, usando uma ferramenta gráfica (Calibre) e uma ferramenta de linha de comando (pdftotext).
É importante notar que as duas ferramentas usadas para extrair texto de arquivos PDF mencionados neste artigo não podem extrair o texto se o PDF for feito de imagens (por exemplo, páginas/imagens de livros digitalizados).
Calibre é um pacote de software de e-book gratuito e de código aberto. Ele oferece suporte à organização, exibição, edição e conversão de e-books, suportando uma ampla variedade de formatos. O aplicativo é executado em Linux, macOS e Microsoft Windows.
O Calibre deve estar disponível nos repositórios de sua distribuição Linux e você deve ser capaz de instalá-lo usando qualquer loja de software que tenha em seu sistema. Por exemplo, para instalá-lo no Debian, Ubuntu, Linux Mint, Fedora, openSUSE ou Arch Linux, use:
sudo apt install calibre
sudo dnf install calibre
sudo zypper install calibre
sudo pacman -S calibre
O Calibre também pode ser instalado no Linux usando o pacote Flathub (requer configuração do Flathub/Flatpak em algumas distribuições do Linux).
Existe ainda outra maneira de instalar o Calibre no Linux explicada na [página de downloads] do aplicativo (https://calibre-ebook.com/download), onde você também encontrará binários do macOS e do Windows.
Relacionado: Como converter PDF em imagem (PNG, JPEG) usando GIMP ou ferramenta de linha de comando pdftoppm
Agora que o Calibre está instalado em seu sistema, inicie-o e clique em Add books
para adicionar o PDF (ou vários PDFs - o Caliber suporta a conversão em lote de vários arquivos PDF em texto) que deseja converter em texto.
Na lista de livros, selecione o PDF (ou vários PDFs para conversão em lote para .txt) que deseja converter em texto e clique no botão Convert books
. No lado superior direito da janela de conversão, escolha TXT como o Output format
:
Existem muitas opções que você pode ajustar nesta caixa de diálogo de conversão. Por exemplo, você pode escolher remover automaticamente o espaçamento entre parágrafos ou inserir uma linha em branco entre os parágrafos (Look & Feel -> Layout
). Você também pode definir a codificação de caracteres e o estilo de finalização de linha (sistema, unix, windows, old_mac) e até mesmo formatá-lo para markdown.
Depois de concluir a configuração, clique no botão OK
para iniciar a conversão do PDF em texto. O arquivo .txt convertido pode ser encontrado no diretório onde você definiu a localização da biblioteca do Caliber (e, em seguida, nas subpastas AuthorName/BookName
; se o autor ou nome do livro não puder ser determinado, a subpasta é chamada de "Desconhecido").
O que falta ao Calibre neste caso é uma maneira de converter apenas uma página ou intervalo de páginas - atualmente, ele só pode converter arquivos PDF inteiros em texto.
Relacionado a PDF: Como criar formulários PDF preenchíveis com o LibreOffice Writer
pdftotext é um utilitário de linha de comando que converte arquivos PDF em texto simples. Ele tem muitas opções, incluindo a capacidade de especificar o intervalo de páginas a ser convertido, manter o layout físico original do texto da melhor maneira possível, definir terminações de linha (unix, dos ou mac) e até mesmo trabalhar com arquivos PDF protegidos por senha.
pdftotextis parte do pacote poppler/poppler-utils/poppler-tools (dependendo da distribuição Linux que você está usando). Instale este pacote da seguinte maneira:
sudo apt install poppler-utils
sudo dnf install poppler-utils
sudo zypper install poppler-tools
sudo pacman -S poppler
Em outras distribuições do Linux, use o gerenciador de pacotes para instalar o pacote poppler/poppler-utils.
Agora que o pacote está instalado, você pode converter um arquivo PDF em texto simples e preservar seu layout (eu recomendo usar esta opção -layout
para manter o layout físico original, mas você também pode tentar sem ela) com:
pdftotext -layout input.pdf output.txt
Você precisará substituir input.pdf
pelo nome do arquivo PDF e output.txt
pelo nome que deseja que o arquivo TXT gerado seja chamado. Adicione também os caminhos antes dos nomes dos arquivos, se necessário (por exemplo, ~/Documents/mypdf.pdf
). Se nenhum arquivo de texto de saída for especificado, pdftotext nomeará o arquivo com o mesmo nome do arquivo PDF original.
A opção de layout preserva o layout do PDF ao convertê-lo em texto, mesmo em casos de PDF com várias colunas.
E se você quiser converter apenas um intervalo de páginas do PDF em texto, em vez de todo o arquivo PDF? Use -f
(primeira página a ser convertida) e -l
(última página a ser convertida) seguido pelo número da página, como esta:
pdftotext -layout -f M -l N input.pdf
Substitua M
e N
pelo número da primeira e última página a extrair e input.pdf
pelo nome do arquivo PDF.
Deseja usar caracteres de fim de linha mac, dos ou unix? Você também pode especificar isso usando -eol
seguido por mac
, dos
ou unix
. Por exemplo, para terminações de linha unix:
pdftotext -layout -eol unix input.pdf
Se você não deseja inserir quebras de página entre as páginas, anexe -nopgbrk
:
pdftotext -layout nopgbrk input.pdf
Deseja converter em lote todos os arquivos PDF de uma pasta para arquivos de texto? O pdftotext não oferece suporte à conversão em lote de PDF em texto (e pdftotext *.pdf
não funciona), mas você pode converter todos os arquivos PDF em uma pasta em texto arquivos usando um loop Bash FOR:
for file in *.pdf; do pdftotext -layout "$file"; done
Para mais opções, execute man pdftotext
e pdftotext --help
.
Você pode gostar de: Baixe Master PDF Editor 4 para Linux (versão de uso gratuito)
Esse post foi traduzido do site LinuxUprising.com pela rtland.team.
Confira a versão original desse post em inglês:
How To Convert PDF To Text On Linux (GUI And Command Line)