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

Messages postés
4
Date d'inscription
mardi 4 novembre 2003
Dernière intervention
5 septembre 2007
- 4 sept. 2007 à 18:17 - Dernière réponse :
Messages postés
4
Date d'inscription
mardi 4 novembre 2003
Dernière intervention
5 septembre 2007
- 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 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
5292
Date d'inscription
dimanche 4 mai 2003
Dernière intervention
12 novembre 2018
- 5 sept. 2007 à 09:43
3
Merci
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

Merci Twinuts 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de Twinuts
Messages postés
5292
Date d'inscription
dimanche 4 mai 2003
Dernière intervention
12 novembre 2018
- 4 sept. 2007 à 19:36
0
Merci
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
Messages postés
4
Date d'inscription
mardi 4 novembre 2003
Dernière intervention
5 septembre 2007
- 5 sept. 2007 à 09:37
0
Merci
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
Messages postés
4
Date d'inscription
mardi 4 novembre 2003
Dernière intervention
5 septembre 2007
- 5 sept. 2007 à 10:06
0
Merci
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
Messages postés
4
Date d'inscription
mardi 4 novembre 2003
Dernière intervention
5 septembre 2007
- 5 sept. 2007 à 10:10
0
Merci
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.