Red de conocimiento informático - Aprendizaje de programación - Se produce una excepción cuando Java lee archivos pdf.

Se produce una excepción cuando Java lee archivos pdf.

En ese momento, quería leer el texto del pdf en un archivo txt para facilitar la lectura en mi teléfono móvil. Escribí el siguiente código para resolver este pequeño problema.

El. paquete requerido: PDFBox- 0.7.3.zip Descomprima la carpeta: todo en externo, PDFBox-0.7.3.jar en archivo lib

Nota: Solo se puede leer el pdf en formato de texto, si el pdf es en formato de imagen, ¡este programa no se puede utilizar!

Introducción al programa: este programa lee el texto en formato de texto pdf y lo guarda en un documento de texto TXT con el mismo nombre de archivo que el archivo pdf.

Se admite el chino, pero aparecerán caracteres confusos en algunos caracteres.

package com.small;

import java.io.File;

importar java.io.FileOutputStream;

importar java.io.OutputStreamWriter;

importar java.io.Writer;

importar java.net. MalformedURLException;

importar java.net.URL;

importar org.pdfbox.pdmodel.PDDocument;

importar org.pdfbox.util.PDFTextStripper; p>

clase pública Pdfreader {

public void readFdf(archivo de cadena) lanza una excepción {

//Si ordenar

boolean sort = false;

// nombre del archivo pdf

String pdfFile = file;

// Introduzca el nombre del archivo de texto

String textFile = null;

p>

// Método de codificación

Codificación de cadena = "GB2312";

// Número de páginas para comenzar a extraer

int startPage = 1;

p>

//Finalizar número de página de extracción

int endPage = Integer.MAX_VALUE;

//Flujo de entrada de archivos, generar texto file

Salida del escritor = null;

// Documento PDF almacenado en la memoria

Documento PDDocument = null;

prueba {

intente {

// Primero cargue el archivo como una URL, si se recibe una excepción // cargue el archivo desde el sistema de archivos local

URL url = nuevo URL(pdfFile); //Tenga en cuenta que los parámetros se han cambiado, no la URL como en versiones anteriores, sino el Archivo.

document = PDDocument.load(pdfFile);

// Obtener el nombre del archivo PDF

String fileName = url.getFile();

// Nombra el archivo txt recién generado con el nombre del PDF original

if (fileName.length() > 4) {

Archivo salidaArchivo = nuevo archivo (nombre de archivo. subcadena (0, nombre de archivo

.length() - 4)

+ ".txt");

archivo de texto = archivo de salida.getName() ;

}

} catch (MalformedURLException e) {

// Si se obtiene una excepción al cargar como URL, cárgala desde el sistema de archivos / / Tenga en cuenta que los parámetros ya no están en la URL de la versión anterior, sino en Archivo.

documento = PDDocument.load(pdfFile);

if (pdfFile.length() > 4) { textFile = pdfFile.substring(0, pdfFile.length() - 4)

+ ".txt";

}

}

// Flujo de entrada de archivo, escritura en archivo textFile

salida = new OutputStreamWriter(new FileOutputStream(textFile),

codificación);

// PDFTextStripper para extraer texto

PDFTextStripper stripper = null <; /p>

stripper = new PDFTextStripper();

// Establece si se debe ordenar

stripper.setSortByPosition(sort);

// Establece Página de inicio

stripper.setStartPage(startPage);

// Establecer la página final

System.out.print(stripper.getText(document));

stripper.setEndPage(endPage);

// Llama a writeText de PDFTextStripper para extraer y generar texto

stripper.writeText(document, output);

} finalmente {

if (output != null) {

// Cerrar el flujo de salida

output.close();

}

if (document != null) {

// Cerrar documento PDF

document.close();

}

}

} /**

* @param args

*/

public static void main(String[] args) {

Pdfreader pdfReader = new Pdfreader();

prueba {

// Leer archivo pdf

pdfReader.readFdf("d:\\2\\D.pdf");

} catch (Excepción e) {

e.printStackTrace();

}

}

}

/websays/blog/item/bb5a9daa950dc1baca130c7f.html