Extraire pdf d'une pièce jointe [Résolu]

ptitjibus 4 Messages postés mardi 4 novembre 2003Date d'inscription 5 septembre 2007 Dernière intervention - 4 sept. 2007 à 18:17 - Dernière réponse : ptitjibus 4 Messages postés mardi 4 novembre 2003Date d'inscription 5 septembre 2007 Dernière intervention
- 5 sept. 2007 à 10:10
Bonjour à tous,

je suis en train de développer un client mail avec l'API javaMail qui va chercher les mails sur une boite POP.
Mon appli doit extraire la pièce jointe du mail, qui en l'occurrence est un fichier pdf.
Malheureusement lorsque que je crée le pdf sur la machine j'obtiens que des pages blanches.
voilà mon code :

                for ( int i=0 ; i<n ; i++) {
                    Part part = ((Multipart) content).getBodyPart(i);
                    String disposition = part.getDisposition();
                   
                    if ((disposition != null)&&((disposition.equals(Part.ATTACHMENT)||(disposition.equals(Part.INLINE))))
                            && (!part.getContentType().startsWith("text/plain") || !part.getContentType().startsWith("text/html"))) {
           
                        // extraction du pdf et enregistrement dans le répertoire correspondant
                        String fileName = createFileName(dirFile,part.getFileName());
                        save = new File( dirFile + fileName);
                        FileOutputStream ecriture = new FileOutputStream(save);
                       
                        InputStreamReader lecture = new InputStreamReader(part.getInputStream());
                        int flux;
                        while ((flux = lecture.read())!=-1) {
                            ecriture.write(flux);
                        }
                        lecture.close();
                        ecriture.close();

                    }
                }

merci d'avance
Afficher la suite 

5 réponses

Répondre au sujet
Twinuts 5261 Messages postés dimanche 4 mai 2003Date d'inscription 20 avril 2018 Dernière intervention - 5 sept. 2007 à 09:43
+3
Utile
Salut,

autant pour moi j'ai zappé le ! ^^

essai de faire d'utiliser les charset exemple :
String encoding = "8859_1"; //ou UTF-8 à voir
InputStreamReader lecture = new InputStreamReader(part.getInputStream(), encoding);
BufferedWriter ecriture = new BufferedWriter(new OutputStreamWriter(
                    new FileOutputStream(filename), encoding));

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Twinuts
Twinuts 5261 Messages postés dimanche 4 mai 2003Date d'inscription 20 avril 2018 Dernière intervention - 4 sept. 2007 à 19:36
0
Utile
Salut,

avant toute chose le mime-type d'un pdf n'est pas de type "text/plain" et encore moins "text/html" mais de type "application/pdf" donc ton if n'est pas valide

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
Commenter la réponse de Twinuts
ptitjibus 4 Messages postés mardi 4 novembre 2003Date d'inscription 5 septembre 2007 Dernière intervention - 5 sept. 2007 à 09:37
0
Utile
Salut,

mon if est correct.
si tu regarde bien, il y a un "!" devant mes tests avec "text/plain" et "text/html" donc le traitement de mon pdf est correct.
Le problème c'est lors de la création du fichier et de l'écriture dans celui-ci. Il doit y avoir un souci d'encodage lors de l'écriture dans le pdf.
J'ai comparé mon pdf original et celui créé par l'appli avec un comparateur, et le texte des 2 documents ne diffère pas beaucoup. Apparrement des "?" remplace des caractères dans le nouveau document.

Je ne sais pas quoi faire.
Commenter la réponse de ptitjibus
ptitjibus 4 Messages postés mardi 4 novembre 2003Date d'inscription 5 septembre 2007 Dernière intervention - 5 sept. 2007 à 10:06
0
Utile
Trop fort
ça marche avec l'encoding 8859_1
par contre avec UTF-8, ça ne marche pas

Merci beaucoup pour ton aide
Commenter la réponse de ptitjibus
ptitjibus 4 Messages postés mardi 4 novembre 2003Date d'inscription 5 septembre 2007 Dernière intervention - 5 sept. 2007 à 10:10
0
Utile
Encore merci
tu m'as enlevé une grosse épine du pied !
Commenter la réponse de ptitjibus

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.