Descargar un PDF con Java a partir de la URL
Hola! Estoy intentando hacer un mĂ©todo en Java que recibe como entrada una URL y devuelve su contenido en texto plano, y estoy encontrando grandes dificultades cuando se trata de un documento PDF (content-type=application/pdf). He intentado varias formas. Primero hacĂa URL.openStream() y el contenido lo copiaba byte a byte a un FileOutputStream de nombre "foo.pdf". "foo.pdf" se parece a lo que quiero (al verlo con cat parece igual), pero está corrompido. El pdftotext no lo traga, ni el ggv me lo lee. Lo he comparado byte a byte con lo que realmente deberĂa ser, y el parecido es de 6558 bytes diferentes contra 220274 iguales (o sea, muy parecido, pero demasiado diferente)... DespuĂ©s he intentado hacerlo con un ContentHandler especĂfico para PDF (con su ContentHandlerFactory), usando la clase PDFStream del paquete itext. A partir del contenido PDFStream que recupero de la URL de esta manera, lo copio byte a byte en un FileOutputStream al fichero "foo.pdf", como antes. Y, como antes, "foo.pdf" se parece mucho a lo que quiero pero parece corrompido y no puedo usarlo con pdftotext. En fin, no sĂ© quĂ© tal me habrĂ© explicado... Alguna sugerencia, por favor?? Es bastante urgente...
DespuĂ©s de dos dĂas de intensa bĂşsqueda de una soluciĂłn, ha sido animarme a preguntarlo, y encontrarla solita al momento... suele pasar....
Pues bien, por si a alguien le resulta de ayuda, lo he resuelto con una llamada al comando wget... Si es que... no podĂa ser más fácil!! Pero es que no sabĂa que existĂa eso...
O sea, que el código es más o menos:
Runtime runtime = Runtime.getRuntime();
Process p = runtime.exec("exec " + urlAsString);
Saludos!
Pues bien, por si a alguien le resulta de ayuda, lo he resuelto con una llamada al comando wget... Si es que... no podĂa ser más fácil!! Pero es que no sabĂa que existĂa eso...
O sea, que el código es más o menos:
Runtime runtime = Runtime.getRuntime();
Process p = runtime.exec("exec " + urlAsString);
Saludos!