Buscar
Social
Ofertas laborales ES

Foro sobre Java EE > mostrar un pdf y hacer highlight - java -springMVC 3

Hola, tengo un problema con mostrar un pdf y remarcar palabras, en este momento utilizo esta rutina


@RequestMapping("/visualizarPdf.htm")
@ResponseBody
public ResponseEntity generatePdf() throws IOException {
PDDocument document = null;
try {
document = new PDDocument();

PDPage page = new PDPage();
document.addPage(corta.cut(confPdfDTO));
ByteArrayOutputStream baos = new ByteArrayOutputStream();
document.save(baos);
HttpHeaders headers = new HttpHeaders();
headers.setContentType(new MediaType("application", "pdf"));
headers.setContentLength(baos.toByteArray().length);
return new ResponseEntity(baos.toByteArray(), headers, HttpStatus.CREATED);
} catch (Exception e) {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.TEXT_PLAIN);
return new ResponseEntity("BROKEN".getBytes(), headers, HttpStatus.CREATED);
} finally {
if (document != null) {
document.close();
}
}
}


basicamente, con un numero y un nombre busca un pdf corta una pagina en ese numero y lo muestra en pantalla.

El problema es el siguiente, primero que al hacerlo asi no tengo ningun control sobre el archivo, sino que se carga , se pone en pantalla completa y no tengo codigo a ejecutar en ese sector. Queda mas o menos asi
http://imageshack.com/a/img854/7049/379u.png .

Lo que necesito saber es si ha alguna forma de hacer un higjlight a una palabra en cuestion.

Otro problema que tiene esta forma de hacerlo que si selecciono una palabra x , y la copio en lugar de copiar esa palabra copia la que esta 4 espacios mas adelante, es como si estuviera desfasado el pdf, espero que alguien pueda ayudarme, muchas gracias de ante mano. Cualquier duda o informacion que quieran saber no duden en consultarme, muchas gracias

abril 1, 2014 | Unregistered Commentermartin

Hola

No sé sí he entendio bien tu problema, lo que quieres es que, dado una página y un texto, es obtener un pdf con esa página y dentro de ese pdf resaltar todas las palabras que conincida con el texto pasado. no?

Si es así lo que tienes que hacer es un método que le pasas como parametros el ruta del pdf original, la pagina y palabra que desear resaltar.

Dentro de ese metodo con Itext es crear el pdf y resaltar la palabras

Saludos

abril 1, 2014 | Registered Commenterxabe

Hola Martin.

Te recomendaria que probaras alguna libreria para hacer el highlight en modo escritorio.
Es decir que debes probar que la libreria te arroje un pdf con el texto resaltado. Si logras eso en escritorio, para pasarlo a web puedes usar el code que nos muestras
(clasico para trabajar archivos pdfs, xls, etc con servlets).

Mas o menos seria asi:

PDF pdf_final = Libreria.highlight(pdf_inicial,"palabra");

esta linea debe funcionar tanto en escritorio como web.

Luego usas el Stream para mostrar este pdf en el browser.

Te dejo un link con algunas librerias para resaltar texto en pdfs:

http://stackoverflow.com/questions/11715752/highlight-words-in-pdf

Saludos.

http://jrichardsz.weebly.com/

abril 1, 2014 | Unregistered Commenterjrichard