¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo leer el contenido de un archivo PDF en Java: Tutorial paso a paso

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

Hi

the scenario is File to Proxy, i have to read a pdf files content(all text) i have written the code

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"); // The PDF file from where you would like to extract

File output = new File("SampleText.txt"); // The text file where you are going to store the extracted data

pd = PDDocument.load(input);

System.out.println(pd.getNumberOfPages()); //prints number of pages

System.out.println(pd.isEncrypted()); //false as not encrypted

pd.save("CopyOfOriginal.pdf"); // Creates a copy called "CopyOforiginal.pdf"

PDFTextStripper stripper = new PDFTextStripper();

stripper.setStartPage(1); //Start extracting from page 1

stripper.setEndPage(1); //Extract till page 1

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

stripper.writeText(pd, wr);

if (pd != null) {

pd.close();

}

// I use close() to flush the stream.

wr.close();

}

catch (Exception e)

{

e.printStackTrace();

}

}

}

it works i have modified it to work in java mapping as

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()); //convert Tranformationimput to inputstream than pass it to PDDocument constructor to read Pdf from Inputstream.

//System.out.println(pd.getNumberOfPages()); //prints number of pages

PDFTextStripper stripper = new PDFTextStripper();

stripper.setStartPage(1); //Start extracting from page 1

stripper.setEndPage(1); //Extract till page 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...

Solo necesitas agregar esos archivos JAR a la carpeta raíz del proyecto (en eclipse/nwds).

Haz clic derecho en la carpeta del proyecto (raíz) -> importar -> General (Archivo de Archivo) -> selecciona tu archivo JAR

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

Me alegra saberlo Vinay

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

Gracias, señor.

Tu blog fue increíble, pude probar mi archivo binario directamente en OM y obtuve el resultado.

Coloqué el archivo de la API de Apache tal como está con el nombre de pdfbox bajo el archivo importado y mi segundo archivo con el nombre de pdf pudo acceder a él.

El programa de mapeo de Java (el segundo) anterior está un poco 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>");

Tiene que 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>");

Actualmente solo lee 4 líneas del pdf.

Saludos

Vinay

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

Hola Vinay,

Los archivos jar de la API externa deben formar parte de tu archivo de desarrollo de Java en la carpeta raíz.

También podrías utilizar el concepto de mi blog para probar directamente tu código de mapeo de Java desde el mapeo de interfaz/operación.

Saludos cordiales,

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?