Lucas Siqueira

Active Member
Licensed User
Longtime User
AbrirPDF:
Sub AbrirPDF(diretorioDoArquivo As String, nomeDoArquivo As String)
    Try
        #If B4A
        ' Plataforma: Android
        Dim provider As FileProvider
        provider.Initialize
        
        ' Copia o arquivo para o diretório compartilhado
        Wait For (File.CopyAsync(diretorioDoArquivo, nomeDoArquivo, provider.SharedFolder, nomeDoArquivo)) Complete (Success As Boolean)
        Log("Android - Cópia do arquivo realizada com sucesso: " & Success)
        
        If Success = False Then
            Log("Android - Erro: falha ao copiar o arquivo para o diretório compartilhado.")
            Return
        End If

        ' Configura a Intent para abrir o PDF
        Dim docIntent As Intent
        docIntent.Initialize(docIntent.ACTION_VIEW, "")
        provider.SetFileUriAsIntentData(docIntent, nomeDoArquivo)
        docIntent.SetType("application/pdf")
        docIntent.Flags = Bit.Or(1, 2) ' FLAG_GRANT_READ_URI_PERMISSION
        StartActivity(docIntent)
        
        #Else If B4I
        ' Plataforma: iOS
        ' Verifica se o arquivo existe
        If File.Exists(diretorioDoArquivo, nomeDoArquivo) = False Then
            Log("iOS - Erro: arquivo PDF não encontrado em " & diretorioDoArquivo & "/" & nomeDoArquivo)
            Return
        End If

        ' Inicializa o DocumentInteraction para abrir o PDF
        Dim docInteraction As DocumentInteraction
        docInteraction.Initialize("docInteraction", diretorioDoArquivo, nomeDoArquivo)
        docInteraction.OpenFile(B4XPages.GetNativeParent(Me).RootPanel)
        Log("iOS - PDF aberto com sucesso.")
        
        #Else If B4J
        ' Plataforma: Desktop
        ' Verifica se o arquivo existe
        If File.Exists(diretorioDoArquivo, nomeDoArquivo) = False Then
            Log("B4J - Erro: arquivo PDF não encontrado em " & diretorioDoArquivo & "/" & nomeDoArquivo)
            Return
        End If

        ' Abre o PDF usando o JFX
        Private fx As JFX
        fx.ShowExternalDocument(File.GetUri(diretorioDoArquivo, nomeDoArquivo))
        Log("B4J - PDF aberto com sucesso.")
        #End If
    Catch
        Log("Erro ao abrir o PDF: " & LastException)
    End Try
End Sub
 
Last edited:
Top