IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Afficher un PDF dans une application


Sujet :

Android

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 131
    Points : 109
    Points
    109
    Par défaut Afficher un PDF dans une application
    Bonjour,

    A priori il n'y a pas de lecteur natif de pdf dans le SDK android.

    Je débute et me documente pour réaliser une application :

    je cherche un module qui permet d'afficher directement et rapidement un PDF de plusieurs pages dans l'application
    sans passer par le navigateur browser

    Pourrez-vous m'orienter ou me briefer à ce sujet ?

    Merci d'avance
    Amicalement

  2. #2
    Membre habitué
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Avril 2010
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 108
    Points : 163
    Points
    163
    Par défaut
    Comme android ne gère pas en natif le PDF, il faut que l'utilisateur possède une application qui permette la lecture du fichier PDF.

    Tu ne peut pas extraire les images du fichier PDF et les afficher ? l'utilisateur ne verra pas de différence non?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 131
    Points : 109
    Points
    109
    Par défaut
    Bonjour,

    Il s'agit d'afficher des PDF de plusieurs pages dans une application
    Il semble être possible d'embarquer une reader de PDF directement dans l'apps
    et ne pas dépendre ni du navigateur ni de l'éventualité que l'utilisateur dispose déjà d'une reader installé

    qu'en pensez-vous ?

    A+

  4. #4
    Inscrit

    Profil pro
    Inscrit en
    Février 2008
    Messages
    658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 658
    Points : 892
    Points
    892
    Par défaut
    Regarde bien dans le forum j'ai bien resolu ce probleme en un moment donné

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 131
    Points : 109
    Points
    109
    Par défaut
    Bonjour,

    merci, tu parles de cette réponse ?

    A+

  6. #6
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour,

    je cherche un module qui permet d'afficher directement et rapidement un PDF de plusieurs pages dans l'application
    sans passer par le navigateur browser
    Voici un bout de code . Par contre cela implique que l'utilisateur a un viewer pdf installé sur son téléphone. après tu peux toujours regarder si un viewer est installé ( pour ça je ne sais pas encore comment faire ) et s'il n'y en a pas alors lui proposer directement d'en installer un depuis le market .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    File file = new File("/sdcard/example.pdf");
     
                    if (file.exists()) {
                        Uri path = Uri.fromFile(file);
                        Intent intent = new Intent(Intent.ACTION_VIEW);
                        intent.setDataAndType(path, "application/pdf");
    // optionnel a toi de voir quel flag tu souhaites
                        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
     
                        try {
                            startActivity(intent);
                        } 
                        catch (ActivityNotFoundException e) {
                            Toast.makeText(OpenPdf.this, 
                                "No Application Available to View PDF", 
                                Toast.LENGTH_SHORT).show();
                        }
                    }
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  7. #7
    Membre éclairé
    Avatar de ZouBi
    Inscrit en
    Octobre 2007
    Messages
    508
    Détails du profil
    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 508
    Points : 812
    Points
    812
    Par défaut
    Citation Envoyé par Feanorin Voir le message
    après tu peux toujours regarder si un viewer est installé ( pour ça je ne sais pas encore comment faire )
    La réponse est dans le code que tu viens de donner

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
                        try {
                            ...
                        } 
                        catch (ActivityNotFoundException e) {
                            // Pas de Viewer
                        }
                    }

  8. #8
    Inscrit

    Profil pro
    Inscrit en
    Février 2008
    Messages
    658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 658
    Points : 892
    Points
    892
    Par défaut
    Citation Envoyé par Benoit* Voir le message
    Bonjour,

    merci, tu parles de cette réponse ?

    A+

    Exactement.

  9. #9
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mars 2009
    Messages : 135
    Points : 110
    Points
    110
    Par défaut
    voila ce code ,il fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
     
    public class ExampleReadPdfActivity extends Activity {
    	WebView webview;
    	public String url ="http://commonsware.com/Android/Android-1_0-CC.pdf";
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            WebView webview = (WebView) findViewById(R.id.webview);
            webview.getSettings().setJavaScriptEnabled(true);
            webview.loadUrl("http://docs.google.com/gview?embedded=true&url="
    				+ url);
        }
    }

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 141
    Points : 177
    Points
    177
    Par défaut
    C'est intéressant j'ai fait aujourd'hui une appli basée sur un viewer pdf (en l’occurrence
    celui fourni sur la Galaxy Tab) pour afficher des documents.

    L'approche est d'utiliser les Intents.

    Alors pour compléter le code de Feanorin j'ai en plus ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    String extension = android.webkit.MimeTypeMap.getFileExtensionFromUrl(Uri.fromFile(file).toString());
    String mimetype = android.webkit.MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
    intent.setDataAndType(Uri.fromFile(file), mimetype);
    ça permet de détecter le mimetype . J'ai pas tester avec plusieurs viewers, mais en
    théorie ça doit afficher à l’utilisateur les différentes applis "compatibles".

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 131
    Points : 109
    Points
    109
    Par défaut
    Bonjour à tous,

    Merci Feanorin, ZouBi, jahbromo, tabbabi, UbuntuMan

    En fait, je pensais éviter de dépendre d'une application tierce préalablement installée (un Reader PDF) pour être certain que l’utilisateur puisse lire mes PDF dans tous les cas et directement dans l'application...

    Ce qui se fait nativement sur iOs (pas taper, pas taper )

    Donc si j'ai bien compris ( ? ) je dois chercher les sources d'un reader à compiler dans l'apps, cela va être coton...

    Dans le genre
    http://mupdf.com/repos/mupdf/android
    http://code.google.com/p/droidreader/
    http://pdfbox.apache.org

    Qu'en pensez-vous ?

    Amitiés

    B2

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 141
    Points : 177
    Points
    177
    Par défaut
    Surtout pas et personnellement je trouve que l'approche d'utiliser un service distant est
    moyenne voir très discutable pour l'utilisateur (moi dés que j'ai un doute, je vire).

    Maintenant comme déjà évoqué, ce n'est pas la peine de re-inventer la roue : il existe déjà
    plein de Readers dans la nature. Chacun aura sa préférence.

    Il faut juste qu'un soit installé : c'est juste un pré requis.

    D'ailleurs question comment tu feras si le Reader que tu souhaites embarquer est mis à
    niveau... Tu re-compiles ?

    Les Intents c'est la seule voie valable .

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 131
    Points : 109
    Points
    109
    Par défaut
    Bonsoir,

    Citation Envoyé par UbuntuMan Voir le message
    Surtout pas et personnellement je trouve que l'approche d'utiliser un service distant est moyenne
    pourquoi évoques-tu "un service distant", j'ai du mal à comprendre ?

    Amicalement
    B

  14. #14
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 2
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par Benoit* Voir le message
    Bonjour,

    A priori il n'y a pas de lecteur natif de pdf dans le SDK android.

    Je débute et me documente pour réaliser une application :

    je cherche un module qui permet d'afficher directement et rapidement un PDF de plusieurs pages dans l'application
    sans passer par le navigateur browser

    Pourrez-vous m'orienter ou me briefer à ce sujet ?

    Merci d'avance
    Amicalement

    voila ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    public class LiecteurPDFActivity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    File file = new File("/sdcard/Embedded.Android.pdf" ); // mettre le nom du fichier PDF if (file.exists()) { 
    Uri path = Uri.fromFile(file); 
    Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(path, "application/pdf"); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    try { 
    startActivity(intent);
    }
     catch (ActivityNotFoundException e) { Toast.makeText(LiecteurPDFActivity.this, "No Application Available to View PDF", Toast.LENGTH_SHORT).show(); }
     } 
    }
    }

Discussions similaires

  1. Afficher chemin absolu dans une application
    Par azila dans le forum C++
    Réponses: 2
    Dernier message: 21/11/2006, 13h20
  2. Réponses: 4
    Dernier message: 08/08/2006, 20h57
  3. [PDF] Afficher un pdf dans une page web
    Par hutchuck dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 16/01/2006, 12h21
  4. Comment afficher des JPEG dans une application Delphi ?
    Par Bouguennec dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/09/2005, 22h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo