Avalados por :

Como ler o conteúdo de um arquivo PDF em Java: Tutorial passo a passo

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 26 Vistas
0
Cargando...

Olá

o cenário é de Arquivo para Proxy, tenho que ler o conteúdo de arquivos PDF (todo o texto) e escrevi o código

import java.io.IOException;

import java.io.FileReader;

import java.io.BufferedReader;

import java.io.*;

import org.apache.pdfbox.util.*;

import org.apache.pdfbox.pdmodel.*;

class ReadPdf

{

public static void main(String args[])

{

PDDocument pd;

BufferedWriter wr;

try {

File input = new File("original.pdf"); // O arquivo PDF de onde você gostaria de extrair

File output = new File("SampleText.txt"); // O arquivo de texto onde você vai armazenar os dados extraídos

pd = PDDocument.load(input);

System.out.println(pd.getNumberOfPages()); //imprime o número de páginas

System.out.println(pd.isEncrypted()); //falso pois não está criptografado

pd.save("CopyOfOriginal.pdf"); // Cria uma cópia chamada "CopyOforiginal.pdf"

PDFTextStripper stripper = new PDFTextStripper();

stripper.setStartPage(1); //Começa a extrair da página 1

stripper.setEndPage(1); //Extrai até a página 1

wr = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(output)));

stripper.writeText(pd, wr);

if (pd != null) {

pd.close();

}

// Eu uso close() para limpar o fluxo.

wr.close();

}

}

está funcionando, modifiquei para funcionar no mapeamento de java como

import java.io.InputStream;

import java.io.OutputStream;

import java.util.Map;

import java.util.HashMap;

import java.io.IOException;

import java.io.FileReader;

import java.io.BufferedReader;

import java.io.*;

import org.apache.pdfbox.util.*;

import org.apache.pdfbox.pdmodel.*;

import com.sap.aii.mapping.api.AbstractTransformation;

import com.sap.aii.mapping.api.StreamTransformationException;

import com.sap.aii.mapping.api.TransformationInput;

import com.sap.aii.mapping.api.TransformationOutput;

public class PdftoXml extends AbstractTransformation

{

public void transform(TransformationInput in, TransformationOutput out) throws StreamTransformationException

{

PDDocument pd;

BufferedWriter wr;

try {

pd = PDDocument.load(in.getInputPayload().getInputStream()); //converter Tranformationimput para inputstream e passá-lo para o construtor PDDocument para ler o PDF do Inputstream.

//System.out.println(pd.getNumberOfPages()); //imprime o número de páginas

PDFTextStripper stripper = new PDFTextStripper();

stripper.setStartPage(1); //Começa a extrair da página 1

stripper.setEndPage(1); //Extrai até a página 1

String str = stripper.getText(pd);

String content[] = str.split("\n");

String result ="<?xml version=\"1.0\" encoding=\"UTF-8\"?>";

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Basta adicionar esses arquivos JAR à pasta raiz do projeto (no eclipse/nwds).

Clique com o botão direito na pasta do projeto (raiz) -> Importar -> Geral (Arquivo de Arquivo) -> selecione seu arquivo JAR

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Fico feliz em saber, Vinay

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Obrigado, senhor.

Seu blog foi incrível, pude testar meu arquivo binário diretamente no OM e obtive o resultado.

Coloquei o arquivo da API do Apache exatamente como está, com o nome de pdfbox sob o arquivo importado e meu segundo arquivo com o nome de pdf conseguiu acessá-lo.

O programa de mapeamento Java (o segundo) anterior está um pouco equivocado.

result = result.concat("<field1>"+content[0]+"</field1>");

result = result.concat("<field2>"+content[1]+"</field1>");

result = result.concat("<field3>"+content[2]+"</field1>");

result = result.concat("<field4>"+content[3]+"</field1>");

Deve ser

result = result.concat("<field1>"+content[0]+"</field1>");

result = result.concat("<field2>"+content[1]+"</field2>");

result = result.concat("<field3>"+content[2]+"</field3>");

result = result.concat("<field4>"+content[3]+"</field4>");

Atualmente, lê apenas 4 linhas do pdf.

Saudações

Vinay

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá Vinay,

Os arquivos jar da API externa devem fazer parte do seu arquivo de desenvolvimento Java na pasta raiz.

Você também pode usar o conceito do meu blog para testar diretamente seu código de mapeamento Java a partir do mapeamento de interface/operação.

Atenciosamente,

Praveen Gujjeti

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?