Foro de elhacker.net

Programación => Java => Mensaje iniciado por: MaX2 en 23 Agosto 2021, 18:18 pm



Título: Como leer archivos PDF en Android
Publicado por: MaX2 en 23 Agosto 2021, 18:18 pm
Hola, estaba utilizando la librería PDFViewer, pero parece que ha muerto, lleva tiempo sin funcionar.

Código:
https://github.com/barteksc/AndroidPdfViewer

Así que me he puesto a buscar alguna solución para poder leer archivos PDF que se encuentren en la carpeta Documentos de la Memoria Externa, y no soy capaz de leer estos PDF.

He probado abrirlos desde el WebView con PDF.js pero solo funciona con archivos que estén en la carpeta Assets, aparte de que es muy lento, y tiene algunos inconvenientes más.

Código:
https://mozilla.github.io/pdf.js/ 

Código:
Uri path = Uri.parse(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS) + "/1.pdf");
webView.loadUrl("file:///android_asset/pdfjs/web/viewer.html?file=" + path + "#zoom=page-width");


He probado con otras librerías, pero son muy pobres y no son muy practicas porque para pasar de página hay que utilizar botones, con lo que un documento grande es una pesadilla pulsar tantas veces el botón para pasar de página.

El PDF tengo que abrirlo en la misma aplicación, por lo que utilizar el código para abrir los pdf con aplicaciones externas no me sirve, y tampoco código que tenga que hacer uso de internet, porque la mayoría de las veces no tengo cobertura.


Si alguien me puede echar una mano para poder leer archivos PDF se lo agradecería.

P.D. No utilizo código kotlin

Gracias.


Título: Re: Como leer archivos PDF en Android
Publicado por: rub'n en 29 Agosto 2021, 15:42 pm
Eso parece más java que otra cosa.

Usaste iText pdf? Esta api funciona si o si


Título: Re: Como leer archivos PDF en Android
Publicado por: MaX2 en 30 Agosto 2021, 09:33 am
Que tal rub'n, la verdad que no me entero como funciona la libreria iText para leer PDF, ya sea desde Assets, o desde la memoria externa  :-(

He intentado buscar un codigo para ver como poder leer los PDFs, pero lo que encuentro crear o extraer texto del PDF, y algunos comentarios dicen que iText no es un visor de PDFs.


Salu2.


Título: Re: Como leer archivos PDF en Android
Publicado por: MaX2 en 30 Agosto 2021, 13:31 pm
Hola, como te comentaba en el primer post, estaba utilizando la librería PDFViewer, que funcionaba de maravillas, pero al volver a compilar la aplicación me muestra esta este problema:

(https://uploadimagenes.com/pictures/dd1e1b70096ecaccef8632b77f3473bc.jpg)
 
y como en la web github hay un comentario que dice "Looking for new maintainer!" según la traducción que hace google "Buscando nuevo mantenedor!" y con el fallo que lleva meses dándome, supongo que ya no se puede utilizar.


Me puedes poner un ejemplo con código para que pueda ver como utilizar la Liberia iText para mostrar PDFs ?



Salu2.


Título: Re: Como leer archivos PDF en Android
Publicado por: MaX2 en 2 Septiembre 2021, 15:37 pm
No se si alguien mas puede responder, pero dejo una captura que muestra el error que se produce cuando se intenta generar el apk, es lógico que muestre un error ya que hay un problema, pero a ver si por el tipo de error puede dar una pista de porque no se puede utilizar esta librería.

Ya no se que pensar si es problema de esta librería PDFViewer, que pensaba que había muerto porque ya no la actualizaban, pero he probado con la librería PdfViewPager y paso lo mismo

(https://uploadimagenes.com/pictures/0d9d1a2196906fe3976dcd2fceec6c86.png)

Si alguien sabe porque no se actualizan las librerías o que es lo que esta impidiendo que se actualicen, le agradecería su ayuda.


Salu2.


Título: Re: Como leer archivos PDF en Android
Publicado por: rub'n en 4 Septiembre 2021, 06:27 am
Okk okk, entiendo más ahora.

Ese visor, no se si con itext te ayude entiendo que no.

Probaste ?
 https://developer.android.com/reference/android/graphics/pdf/PdfRenderer.html

Con itext pdf tu creas un pdf desde cero con java, no se si kotlin.



Título: Re: Como leer archivos PDF en Android
Publicado por: MaX2 en 4 Septiembre 2021, 06:51 am
Si, Perú lo que me hace falta es ver un ejemplo de cómo leer esta PDF, que muy bien no creo que lo esté haciendo porque no me deja abrirlos.

Y el problema igual lo tengo en Android, tampoco es que este seguro, pero me tiene un poco mosca que como te digo en el post anterior no pueda leer de  librerías distintas..


Título: Re: Como leer archivos PDF en Android
Publicado por: rub'n en 4 Septiembre 2021, 16:30 pm
Si, Perú lo que me hace falta es ver un ejemplo de cómo leer esta PDF, que muy bien no creo que lo esté haciendo porque no me deja abrirlos.

Y el problema igual lo tengo en Android, tampoco es que este seguro, pero me tiene un poco mosca que como te digo en el post anterior no pueda leer de  librerías distintas..

Dependencias
https://mvnrepository.com/artifact/com.itextpdf/itext7-core/7.1.16

Prueba esto socio.
https://github.com/David-Hackro/ExamplesAndroid/tree/master/PDF/Creacion%20PDF

Dependencia de itext pdf
https://github.com/David-Hackro/ExamplesAndroid/blob/master/PDF/Creacion%20PDF/app/build.gradle


Clase de ejemplo donde se crear el PDF

https://github.com/David-Hackro/ExamplesAndroid/blob/master/PDF/Creacion%20PDF/app/src/main/java/com/example/hackro/itext/Metodos.java


Título: Re: Como leer archivos PDF en Android
Publicado por: MaX2 en 4 Septiembre 2021, 18:08 pm
Amigo rub'n yo no quero crear PDFs, ya los tengo creados, solo quiero abrir los PDFs que ya tengo en la memoria externa, y abrirlos dentro de la aplicación.




Título: Re: Como leer archivos PDF en Android
Publicado por: Machacador en 4 Septiembre 2021, 18:48 pm
Amigo rub'n yo no quero crear PDFs, ya los tengo creados, solo quiero abrir los PDFs que ya tengo en la memoria externa, y abrirlos dentro de la aplicación.


Y que tal si instalas alguna aplicacion de estas que aparecen aquí: https://www.xatakandroid.com/listas/mejores-apps-para-leer-editar-archivos-pdf-android

 :rolleyes: :o :rolleyes:


Título: Re: Como leer archivos PDF en Android
Publicado por: MaX2 en 4 Septiembre 2021, 19:16 pm
Hola Machacador, tengo varias aplicaciones de esas instaladas, y mediante un Intent se pueden abrir, pero no me interesa ese método, el funcionamiento del trabajo con la aplicación no es el mismo, busco que el pdf se muestre dentro de la aplicación.


Título: Re: Como leer archivos PDF en Android
Publicado por: rub'n en 5 Septiembre 2021, 01:55 am
@MaX2 Te estas volviendo loco

Con el api también puedes leer, escribir, crearlo etc.

Wtf, estas hablando como para atrás y palante como dice  en mi jodida tierra.


Título: Re: Como leer archivos PDF en Android
Publicado por: MaX2 en 5 Septiembre 2021, 11:57 am
Si la verdad es que me estoy liando un poco.

Te entendí que con la librería iText no se podían leer PDFs, que solo era para crearlos, y la verdad que la información que veo y los ejemplos son para crear PDFs.

Vale, vamos a probar con la librería iText…

Me pones dos enlaces para poner las dependencias de iText
Uno que me lleva a cargar la librería:
implementation 'com.itextpdf:itext7-core:7.1.16'
 
y otra que es esta:
implementation 'com.itextpdf:itextpdf:5.5.13.2'

Cual de las dos es el que tengo que utilizar, solo para leer PDFs de la memora externa ?
Supongo que el segundo, por poner en el texto itextpdf, entonces la otra para que es?

O hay que poner las dos, lo pregunto ya que pones los dos link, para no ir pegando bandazos, y no liarme.

Y los links que has ido poniendo, son para crear PDFs, como te digo yo solo quiero Leer PDFs de la Memoria Externa.


Título: Re: Como leer archivos PDF en Android
Publicado por: rub'n en 5 Septiembre 2021, 14:26 pm
Okk bien eso es, si te trancas siempre empieza desde el inicio que seguro algo se escape socio.

Si te fijas ambas dependencias son números diferentes una más actual que otra.

Usa la 7.1.16

Prueba el ejemplo así como esta, y crea tu pdf con a penas una letra en el y ábrelo con el plugin que te pase de android.

Aplica la de Jack el destripador, "empecemos por partes"


* Que estas haciendo actualmente para leer desde la memoria externa?


Título: Re: Como leer archivos PDF en Android
Publicado por: MaX2 en 5 Septiembre 2021, 16:05 pm
La pregunta que me haces te la responde después….

Mira, he creado un PDF con la librería iText, he puesto dos líneas de texto y he creado el pdf,
Luego lo he abierto y lo ha mostrado,

Ahora he probado con otro archivo que he creado con Word, he puesto una tabla con texto,

(https://uploadimagenes.com/pictures/d0f4b752759c63451b2d43b7ff2cd6e1.jpg)

lo he abierto con esta librería, y lo ha convertido todo a texto, quitando la tabla que contenía el pdf,

(https://uploadimagenes.com/pictures/97ee8f47a6a0015f6b74c460ec5ddacc.jpg)

no se si es porque estoy utilizando un TextView para mostrarlo, no se de otra forma :(  :-(

Hay PDFs que están escaneado, por lo que el contenido es una foto, lo he probado también, y no muestra nada, bueno una ventana en blanco.

Sobre la pregunta que me haces, lo que he estado utilizando hasta ahora para abrir los PDFs, que me ha empezado a dar error, no sé porque, si es porque la librería ya esta muerta, o tengo un problema con Android que no me deja cargar la librería (el error que me da es el que te he capturado en las imágenes de arriba)
La librería que estoy utilizando es la que he comentado en el primer post la PDFViewer

Código:
https://github.com/barteksc/AndroidPdfViewer

Para leer los PDFs primero autorizo la lectura en la memoria, y como hay muchas limitaciones con Android 11, los archivos los tengo en la carpeta Documents de la memoria externa

En el xml:

Código:
<com.github.barteksc.pdfviewer.PDFView
    android:id="@+id/pdf2View_PDF"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_centerInParent="true" />

En el Java para mostrar el PDF:

Código:
pdfView.fromFile(file)
        .load();

este es el código que estoy utilizando para mostrar los PDFs, y que me ha estado funcionando hasta ahora, que me muestra este error:

(https://uploadimagenes.com/pictures/dd1e1b70096ecaccef8632b77f3473bc.jpg)

Si a pesar de mostrarme ese error, intento generar el apk, me muestra este error:

(https://uploadimagenes.com/pictures/01798f39747e9d5fee6740d1bbdb9d93.jpg)




Título: Re: Como leer archivos PDF en Android
Publicado por: rub'n en 5 Septiembre 2021, 17:26 pm
Ese error de esa dependencia no deberias de tenerla socio.

Intenta probar esta a ver que tal.

https://developer.android.com/reference/android/graphics/pdf/PdfRenderer.html


Título: Re: Como leer archivos PDF en Android
Publicado por: MaX2 en 5 Septiembre 2021, 18:04 pm
Que no debería de tener ese error, ya, pero como solucionarlo ?

Y con el iText que pasa? Dices que también se pueden mostrar los pdf, como se pueden mostrar como con cualquier otra librería ?

Y el PdfRenderer, no crees que es un poco lento, hay que crea un renderizador y para cada página, solo puede tener una página abierta en un momento dado, imaginate un documento con 100 paginas o mas.


Título: Re: Como leer archivos PDF en Android
Publicado por: rub'n en 5 Septiembre 2021, 18:30 pm
Y con el iText que pasa? Dices que también se pueden mostrar los pdf, como se pueden mostrar como con cualquier otra librería ?

* Perdoname tu aqui, te complique, la api itext tu le pasas la salida de tu pdf. la ruta mejor dicho.

Es posible que me compartas el proyecto asi por privado?


Título: Re: Como leer archivos PDF en Android
Publicado por: MaX2 en 5 Septiembre 2021, 18:38 pm
Si, no hay problema, pero déjame que termine de probar alguna cosa mas, que me has pillado a medias, y lo limpio un poco de porquería, que te va hacer de no entenderlo, que el proyecto que tengo es con el que realizo las pruebas de todo.