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> 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 { p>
intente { p>
// 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(); p>
// 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() ; p>
}
} 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(); p >
}
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