
PDF é o formato de documento digital mais utilizado. Podemos analisar documentos PDF e extrair texto e imagens deles programaticamente. Pode ser útil em vários casos, como análise de texto, recuperação de informações, conversão de documentos, etc. Neste artigo, aprenderemos como extrair texto e imagens de documentos PDF usando Java.
Os seguintes tópicos serão abordados neste artigo:
- API Java para extrair texto e imagens de documentos PDF
- Extrair texto de documentos PDF usando Java
- Extrair texto de páginas específicas de um documento PDF usando Java
- Obter imagens de documentos PDF usando Java
- Extraia imagens de páginas específicas de um documento PDF usando Java
- Extraia e salve imagens em arquivos usando Java
API Java para extrair texto e imagens de documentos PDF
Para extrair texto e imagens de documentos PDF, usaremos a API GroupDocs.Parser for Java. Ele permite a extração de texto bruto, formatado e estruturado, metadados e imagens de arquivos dos formatos suportados. Faça o download do JAR da API ou adicione a seguinte configuração pom.xml em um aplicativo Java baseado em Maven.
<repository>
<id>GroupDocsJavaAPI</id>
<name>GroupDocs Java API</name>
<url>https://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-parser</artifactId>
<version>22.3</version>
</dependency>
Extrair texto de documentos PDF usando Java
Podemos analisar qualquer documento PDF e extrair texto seguindo as etapas abaixo:
- Primeiramente, carregue o arquivo PDF usando a classe Parser.
- Em seguida, chame o método Parser.getText() para extrair o texto do documento carregado.
- Em seguida, obtenha resultados no objeto de classe TextReader.
- Por fim, chame o método TextReader.readToEnd() para ler todos os caracteres da posição atual até o final do leitor de texto e devolvê-los como uma string.
O exemplo de código a seguir mostra como extrair texto de um arquivo PDF usando Java.
// Este exemplo de código demonstra como analisar um PDF e extrair texto.
// Crie uma instância da classe Parser
Parser parser = new Parser("D:\\Files\\Parser\\sample.pdf");
// Extraia um texto para o leitor
try (TextReader reader = parser.getText()) {
// Imprimir um texto do documento
// Se a extração de texto não for compatível, um leitor será nulo
System.out.println(reader == null ? "Text extraction isn't supported" : reader.readToEnd());
}

Extrair texto de documentos PDF usando Java
Extrair texto de uma página específica de um documento PDF usando Java
Você pode analisar um documento PDF e extrair texto de uma página específica seguindo as etapas simples mencionadas abaixo:
- Primeiramente, carregue o arquivo PDF usando a classe Parser.
- Em seguida, obtenha as informações do documento usando o método Parser.getDocumentInfo().
- Em seguida, verifique se o IDocumentInfo.getPageCount() não é zero.
- Depois disso, chame o método Parser.getText() com índice de página para extrair o texto dessa página específica e obter resultados no objeto da classe TextReader.
- Por fim, mostre os resultados chamando o método TextReader.readToEnd() para ler o texto extraído.
O exemplo de código a seguir mostra como extrair texto de uma página específica usando Java.
// Este exemplo de código demonstra como analisar um PDF e extrair texto de uma página específica.
// Crie uma instância da classe Parser
Parser parser = new Parser("D:\\Files\\Parser\\sample.pdf");
// Obtenha as informações do documento
IDocumentInfo documentInfo = parser.getDocumentInfo();
// Verifique se o documento tem páginas
if (documentInfo == null || documentInfo.getRawPageCount() == 0) {
System.out.println("Document hasn't pages.");
return;
}
// Extraia um texto para o leitor
try (TextReader reader = parser.getText(1)) {
// Imprimir um texto do documento
// Se a extração de texto não for compatível, um leitor será nulo
System.out.println(reader.readToEnd());
}
A API também permite verificar se o documento suporta o recurso de extração de texto. Para isso, podemos usar a propriedade Parser.getFeatures().isText(). Leia mais sobre recursos suportados.
Obter imagens de documentos PDF usando Java
Podemos analisar qualquer documento PDF e extrair imagens seguindo as etapas abaixo:
- Primeiramente, carregue o arquivo PDF usando a classe Parser.
- Em seguida, chame o método Parser.getImages() e obtenha a coleção de objetos PageImageArea do documento carregado.
- Em seguida, verifique se a coleção não é nula.
- Depois disso, itere sobre todas as imagens encontradas.
- Por fim, mostre os detalhes das imagens.
O exemplo de código a seguir mostra como obter detalhes de imagens de um arquivo PDF usando Java.
// Este exemplo de código demonstra como analisar um PDF e obter imagens.
// Crie uma instância da classe Parser
Parser parser = new Parser("D:\\Files\\Parser\\images.pdf");
// Extrair imagens
Iterable<PageImageArea> images = parser.getImages();
// Verifique se a extração de imagens é suportada
if (images == null) {
System.out.println("Images extraction isn't supported");
return;
}
// Iterar sobre imagens
for (PageImageArea image : images) {
// Imprima um índice de página, retângulo e tipo de imagem:
System.out.println("Page: " + image.getPage().getIndex());
System.out.println("Image Rectangle: " + image.getRectangle());
System.out.println("Image Filetype: " + image.getFileType());
System.out.println("----------------------------------------");
}

Obter imagens de documentos PDF usando Java
Extraia imagens de uma página específica de um documento PDF usando Java
Podemos extrair imagens de uma página específica seguindo os passos simples mencionados abaixo:
- Primeiramente, carregue o arquivo PDF usando a classe Parser.
- Em seguida, obtenha as informações do documento usando o método Parser.getDocumentInfo().
- Em seguida, verifique se o IDocumentInfo.getPageCount() não é zero.
- Depois disso, chame o método Parser.getImages() com índice de página para extrair imagens dessa página específica.
- Finalmente, itere sobre todas as imagens encontradas e mostre detalhes.
O exemplo de código a seguir mostra como extrair imagens de uma página específica usando Java.
// Este exemplo de código demonstra como analisar um PDF e obter imagens de uma página específica.
// Crie uma instância da classe Parser
Parser parser = new Parser("D:\\Files\\Parser\\images.pdf");
// Obtenha as informações do documento
IDocumentInfo documentInfo = parser.getDocumentInfo();
// Verifique se o documento tem páginas
if (documentInfo.getPageCount() == 0) {
System.out.println("Document hasn't pages.");
return;
}
int pageIndex = 1;
// Iterar sobre imagens
// Ignoramos a verificação nula, pois verificamos o suporte ao recurso de extração de imagens anteriormente
for (PageImageArea image : parser.getImages(pageIndex)) {
// Imprima um índice de página, retângulo e tipo de imagem:
System.out.println("Page: " + image.getPage().getIndex());
System.out.println("Image Rectangle: " + image.getRectangle());
System.out.println("Image Filetype: " + image.getFileType());
System.out.println("----------------------------------------");
}
Extraia e salve imagens em arquivos usando Java
Também podemos salvar as imagens extraídas seguindo as etapas abaixo:
- Primeiramente, carregue o arquivo PDF usando a classe Parser.
- Em seguida, chame o método Parser.getImages() e obtenha a coleção de objetos PageImageArea do documento carregado.
- Em seguida, crie uma instância da classe ImageOptions e defina o formato da imagem.
- Depois disso, itere sobre todas as imagens encontradas.
- Finalmente, salve usando o método save(). Ele usa o caminho do arquivo de saída e ImageOptions como argumentos.
O exemplo de código a seguir mostra como extrair e salvar imagens em arquivos usando Java.
// Este exemplo de código demonstra como extrair e imagens no diretório.
// Crie uma instância da classe Parser
Parser parser = new Parser("D:\\Files\\Parser\\images.pdf");
// Extrair imagens do documento
Iterable<PageImageArea> images = parser.getImages();
// Verifique se a extração de imagens é suportada
if (images == null) {
System.out.println("Page images extraction isn't supported");
return;
}
// Crie as opções para salvar imagens no formato PNG
ImageOptions options = new ImageOptions(ImageFormat.Png);
int imageNumber = 0;
// Iterar sobre imagens
for (PageImageArea image : images)
{
// Salve a imagem no arquivo PNG
image.save(String.format("D:\\Files\\Parser\\Images\\%d.png", imageNumber), options);
imageNumber++;
}

Extraia e salve imagens em arquivos usando Java
Obtenha uma licença gratuita
Você pode experimentar a API sem limitações de avaliação solicitando uma licença temporária gratuita.
Conclusão
Neste artigo, aprendemos como:
- extrair todo o texto de um documento PDF inteiro ou páginas específicas do documento usando Java;
- extrair imagens de um arquivo PDF programaticamente;
- salve as imagens extraídas em um disco local.
Além disso, você pode aprender mais sobre GroupDocs.Parser for Java API usando a documentação. Em caso de qualquer ambiguidade, não hesite em contactar-nos no fórum.