Extrair Texto de Arquivo PDF
Neste artigo, vamos analisar os detalhes de extração de texto de um arquivo PDF. Todos esses recursos de extração são fornecidos em um só lugar, na classe PdfExtractor. Veremos como usar esses recursos em nosso código.
A classe PdfExtractor fornece três tipos de capacidades de extração. Essas três categorias são Texto, Imagens e Anexos. Para realizar a extração em cada uma dessas três categorias, o PdfExtractor fornece vários métodos que trabalham juntos para fornecer o resultado final.
Por exemplo, para extrair texto você pode usar três métodos, ou seja, ExtractText, GetText, HasNextPageText e GetNextPageText. Agora, para começar a extrair texto, antes de mais nada, você precisa chamar o método ExtractText; isso irá extrair o texto do arquivo PDF e armazená-lo na memória. Depois disso, o método GetText pegará esse texto extraído e o salvará no disco em um local especificado em um arquivo. HasNextPageText ajuda você a percorrer cada página e verificar se a próxima página tem algum texto ou não. Se contiver algum texto, então GetNextPageText ajudará você a salvar o texto de uma página individual no arquivo.
public static void ExtractText()
{
bool WholeText = true;
// Criar um objeto da classe PdfExtractor
PdfExtractor pdfExtractor = new PdfExtractor();
// Vincular o PDF de entrada
pdfExtractor.BindPdf(_dataDir + "sample.pdf");
// ExtrairTexto
pdfExtractor.ExtractText();
if (!WholeText)
{
pdfExtractor.GetText(_dataDir + "sample.txt");
}
else
{
// Extrair o texto em arquivos separados
int pageNumber = 1;
while (pdfExtractor.HasNextPageText())
{
pdfExtractor.GetNextPageText($"{_dataDir}\\sample{pageNumber:D3}.txt");
pageNumber++;
}
}
}
Para Extrair o Modo de Extração de Texto, use o seguinte código:
public static void ExtractTextExtractonMode()
{
bool WholeText = true;
// Crie um objeto da classe PdfExtractor
PdfExtractor pdfExtractor = new PdfExtractor();
// Vincule o PDF de entrada
pdfExtractor.BindPdf(_dataDir + "sample.pdf");
// ExtrairTexto
// pdfExtractor.ExtractTextMode = 0; //modo puro
pdfExtractor.ExtractTextMode = 1; //modo bruto
pdfExtractor.ExtractText();
if (!WholeText)
{
pdfExtractor.GetText(_dataDir + "sample.txt");
}
else
{
// Extraia o texto em arquivos separados
int pageNumber = 1;
while (pdfExtractor.HasNextPageText())
{
pdfExtractor.GetNextPageText($"{_dataDir}\\sample{pageNumber:D3}.txt");
pageNumber++;
}
}
}