Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Lire fichier PDF [ Réseau & internet / JavaServerPage (JSP) ] (leviz)

vendredi 22 juin 2007 à 09:11:50 | Lire fichier PDF

leviz

Bonjour,

Voilà mon porblème:
Je dispose d'un tableau dans lequel j'affiche des liens vers des fichiers PDF stocker sur mon serveur. Je cherche à lire le flux du fichier et à l'afficher dans une nouvelle page. Mon problème est que j'arrive à lire le flux mais il m'affiche n'importe quoi, une suite de texte incohérente.

Voici mon code :


File fileToRead = new File(realPath + "\\export\\" + request.getParameter("ID") + "." + request.getParameter("TYPE"));

String fileType = fileToRead.getName().substring(fileToRead.getName().indexOf(".")+1,fileToRead.getName().length());
                if (fileToRead.exists()) {
                    try {
                        BufferedInputStream in = new BufferedInputStream(new FileInputStream(fileToRead));
                        OutputStream s_out = response.getOutputStream();


                        response.setContentLength((int)fileToRead.length());

                        if (fileType.trim().equalsIgnoreCase("log")) {
                            response.setContentType( "text/plain" );
                        }else if (fileType.trim().equalsIgnoreCase("edi")) {
                            response.setContentType( "text/plain" );
                        }else if (fileType.trim().equalsIgnoreCase("pdf")) {
                            response.setContentType( "application/pdf" );
                        }else {
                            response.setContentType( "application/octet-stream" );
                        }

                        //response.addHeader("Content-disposition", "inline; filename=" + fileToRead.getName());

                        int count;
                        byte[] bytes = new byte[128];
                        while ((count = in.read(bytes, 0, bytes.length)) != -1) {
                            s_out.write(bytes, 0, count);
                            count = in.read(bytes, 0, bytes.length);
                        }
                        in.close();
                        s_out.flush();
                        s_out.close();
                    }
                    catch (Exception e) {
                        LogWriter.add("readFile.jsp", e);
                    }


Es-ce que quelqu'un voit si j'ai fait une faute ou s'il me manque quelque chose??

Merci

vendredi 22 juin 2007 à 12:03:09 | Re : Lire fichier PDF

leviz

Réponse acceptée !
Rebonjour

J'ai trouvé la solution pour mon problème :  au lieu de mettre un BufferedInputStream, il faut mettre un simple InputStream et ça marche!!!

Voici le code corrigé :

File fileToRead = new File(realPath + "\\export\\" + request.getParameter("ID") + "." + request.getParameter("TYPE"));

                String fileType = fileToRead.getName().substring(fileToRead.getName().indexOf(".")+1,fileToRead.getName().length());
                if (fileToRead.exists()) {
                    try {
                        FileInputStream in = new FileInputStream(fileToRead);
                        OutputStream s_out = response.getOutputStream();

                        if (fileType.trim().equalsIgnoreCase("log")) {
                            response.setContentType( "text/plain" );
                        }else if (fileType.trim().equalsIgnoreCase("edi")) {
                            response.setContentType( "text/plain" );
                        }else if (fileType.trim().equalsIgnoreCase("pdf")) {
                            response.setContentType( "application/pdf" );
                        }else {
                            response.setContentType( "application/octet-stream" );
                        }

                        response.setContentLength((int)fileToRead.length());
                        response.addHeader("Content-disposition", "attachment; filename=" + fileToRead.getName());
                        response.setHeader("Cache-Control", "no-cache");

                        int read;
                        byte[] bytes = new byte[1024];
                        while ((read = in.read(bytes, 0, bytes.length)) != -1) {
                            s_out.write(bytes, 0, read);
                        }

                        in.close();
                        s_out.flush();
                        s_out.close();
                    }
                    catch (FileNotFoundException e) {
                        LogWriter.add("readFile.jsp", e);
                        e.printStackTrace();
                    } catch (IOException e) {
                        LogWriter.add("readFile.jsp", e);
                        e.printStackTrace();
                    }

J'espère que cela pourra en aidé certain d'entre vous!!

A+

vendredi 28 mars 2008 à 09:55:53 | Re : Lire fichier PDF

infogeni2003

merci bcp pour cet exemple!
ca ma bien aider...

Abbesinfo



Cette discussion est classé dans : lire, pdf, bytes, response, filetoread


Répondre à ce message

Sujets en rapport avec ce message

Lire des bytes avec Scanner [ par FiReTiTi ] Bonjour,je lis un fichier comme ceci avec la classe scanner :DV10 10 108¿?*???ΪÍË|Órhufeilzhfuilehgfqdsuflheziaulfhlzuf&é"'(§è!çà)Je parviens à lire Lire le contenu d'un pdf (contenant un code barre) avec itext [ par byob ] Bonjour, j'ai utilisé la lib d'itext pour creer un pdf avec un code barre : Document document = this.barCode.getDocument();            PdfWriter write [HELP] lecture fichier binaire [ par gabule ] Bonjour, Je dois lire un fichier binaire. et le fichier biaire commence par une ligne. il me faut les donnees qu'il y a apres. Commen,t je fais pour s lire un pdf avec itext [ par lostsouldark ] bonjour,voila mon probleme, je voudrais arriver, simplement, a ouvrir et afficher un pdf dans un jeditorpane par exemple. pas pour le modifier, ni cre Convertion PS en PDF [ par grizlie ] Bonjour a tous, Dans le cadre de mon stage je doit réaliser une convertion d'un fichier postscript en PDF en Java lourd!!!J'ai fait plusieur recherche JTextField [ par d3dzied ] slt, vous pouvez m'aider si en lire le contenu d'un champ texte en utilise le commande suivantString a;a = <font color="#0000c0" siz vidéo [ par LATIFA111 ] j'ai besoin de votre aide. s'il vous plait . est ce qui' il ya quelqun qui peut me donner un code source en java qui permet de lire une séquence vidéo Lire l'arabe sur htc touch cruise [ par imax33 ] Comment faire pour lire les caractères en arabe sur mon htc touch cruise? merci de votre aide Gerer des mouvements [ par aure0213 ] Bonjour, je suis en langage JAVA sous NETBEANSvoila j'ai un problème je dois saisir certaine actions avec Lire.S();et je voudrais lire chacune d'entre imprimante par defaut PDF [ par xcoriolan ] Bonjour, Je dois installer java et blueJ sur mon ordinateur (SE Ubuntu - gnome). J'aimerais avoir comme imprimante par defaut  "PDF" ce qui permet d'é


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,593 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.