|     Inicio    |   |         |  |   FOROS      |  |      |      
  Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
  Raspberry Pi Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  AutoIt (Programación) Visual Basic Cosas de Windows Webs interesantes
Translate:
Búsqueda en este sitio:


.

B4A en español - Juan Antonio Villalpando
(BASIC4Android)

-- Tutorial de B4A --

Volver al índice del tutorial

____________________________

54.- Lector PDF. Localizador de archivo.

- Vamos a leer archivos PDF. En principio B4A no tiene herramientas propias para visualizar archivos pdf.

- Para poder visualizar archivos pdf, necesitamos un visor pdf y luego enviar mediante un Intent, el archivo al visor.

- El Intent se utiliza para comunicar una aplicación con otra, en este caso enviaremos un archivos pdf desde nuestra aplicación al visor pdf.

 

 

Vamos a bajar un lector PDF, por ejemplo el APV pdf Viewer, es gratuito, código libre.

 

 

______________________________________________________
- Nuestra aplicación, visor pdf basado en el visor anterior.

- Pero también podemos hacer un programa con el cual localizaremos un archivo pdf y lo podemos visualizar "envíándolo" al visor pdf (APV pdf Viewer) que hemos instalado.

Crea mediante el Designer un "Layout", inserta un Label1 y un ListView.

Prepara un archivo pdf y lo copias en la carpeta Files del proyecto.

Desmarca la línea:

' File.Copy(File.DirAssets,"test.pdf",File.DirRootExternal,"test.pdf")

Esta línea lo que hace es copiar el archivo test.pdf que se encuentra en la carpeta File a la sdcard, ejecuta esa línea solo una vez para realizar la copia.

___________
- Código.

Copia y pega este código en un nuevo proyecto
' Juan Antonio Villalpando
' juana1991@yahoo.com

Sub Process_Globals

End Sub

Sub Globals
    Dim ListView1 As ListView
    Dim Label1 As Label
    Dim ruta As String
End Sub

Sub Activity_Create(FirstTime As Boolean)
    Activity.LoadLayout("Layout")

'   Graba un archivo pdfen el directorio Files del proyecto
'   Ejecuta una vez esta línea para copiar el archivo en la SD card
'   File.Copy(File.DirAssets,"test.pdf",File.DirRootExternal,"test.pdf")
    
    ListFolderContent(File.DirRootExternal)
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub


Sub ListFolderContent(folder As String) As String
    Dim Listado As List
    ruta = folder

    Listado = File.ListFiles(ruta)
    Listado.Sort(True)
    ListView1.Clear
    
    ListView1.AddSingleLine("..") ' Directorio superior
    For n = 0 To Listado.Size-1
    archivo = Listado.Get(n)
    ListView1.AddSingleLine(archivo)
    Next
 
End Sub


Sub ListView1_ItemClick (Position As Int, Value As String)

        Activity.Title = File.Combine(ruta & "/", Value)
        Label1.Text = File.Combine(ruta & "/", Value)
        
        If Value = ".." Then
            ' Elimina el último directorio de la ruta
            ' /mnt/sdcard/Android/data --->>> /mnt/sdcard/Android
            ListFolderContent(ruta.SubString2(0, ruta.LastIndexOf("/")))
            Value = ""
            Activity.Title = File.Combine(ruta & "/", Value)
            Label1.Text = File.Combine(ruta & "/", Value)

        Else
        
            If File.IsDirectory (ruta, Value) Then
            ListFolderContent(File.Combine(ruta & "/", Value))
            End If
        
        End If
        

' Puedes utilizar esta parte del código o la siguiente
           Dim i As Intent         
           i.Initialize(i.ACTION_VIEW, "file://" & File.Combine(ruta & "/", Value))
           i.SetComponent("android/com.android.internal.app.ResolverActivity")
           i.SetType("application/pdf")
           StartActivity(i)
           
' Otra forma de hacerlo
'            Dim i As Intent
'            i.Initialize(i.ACTION_VIEW, "file://" & File.Combine(ruta & "/", Value))
'            i.SetType("application/pdf")
'            i.WrapAsIntentChooser("Elegir Visor PDF")
'            StartActivity(i)
           

End Sub

- En este código hemos utilizado Intent, esta orden nos comunica con otra aplicación, en nuestro caso el sistema busca qué aplicación tenemos asociada a la extensión (MIME) application/pdf, y ejecuta el archivo con esa aplicación asociada. En nuestro caso esa aplicación es el visor APV pdf Visor que hemos instalado previamente.

Para volver a elegir archivo pulsamos el botón del móvil "Atrás".

Para evitar que salga erroe cuando no encuentar pdf, podríamos poner...

Try
StartActivity(i)
Catch
ToastMessageShow ( "No encontrado" ,  True )    
End Try

___________________________________________
- ¿Cómo puedo construir un archivo pdf?

Hay muchas herramientas que convierten un archivo a pdf, te aconsejo PDFill Free. Lo instalas, una vez instalado abres un archivo de texto (o también de imagenes) y una vez abierto le das a Imprimir, una de las "impresoras" será "PDFill PDF&Image Write", pulsas en esa opción y el documento se copiará en formato pdf.

- Con esta herramienta tienes otras posibilidades como cortar páginas de un pdf de varias páginas, unir páginas, etc...

________________________________

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información