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

API standards et tierces Java Discussion :

Visualiser des pdf dans un panel


Sujet :

API standards et tierces Java

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 15
    Points : 17
    Points
    17
    Par défaut Visualiser des pdf dans un panel
    Bonjour,

    Je réalise une application dans laquelle je veux pouvoir visualiser des fichiers PDF à l'interieur d'un panel. Je ne veux pas les modifier, mais je veux tout de même utiliser certaines foncionalités d'adobe reader.
    Je m'y connais pas très bien, mais l'idéal pour moi serait de pouvoir afficher l'interface adobe dans mon panel et ensuite de charger les documents PDF dans cette interface.

    J'ai entendu parler de PDFBox, et ce que c'est ce qu'il me faut, n'y a-t-il pas plus simple?

    Merci de vos réponses

  2. #2
    Membre à l'essai
    Profil pro
    Developpeur
    Inscrit en
    Novembre 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Novembre 2004
    Messages : 12
    Points : 13
    Points
    13

  3. #3
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 15
    Points : 17
    Points
    17
    Par défaut
    Super, c'est exactement ce qu'il me fallait.

    Par contre j'ai un petit problème pour l'utiliser:
    Voila mon 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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    import com.sun.pdfview.PDFFile;
    import com.sun.pdfview.PDFPage;
    import com.sun.pdfview.PagePanel;
    import java.io.*;
    import java.nio.ByteBuffer;
    import java.nio.channels.FileChannel;
    import javax.swing.*;
     
    /**
     * An example of using the PagePanel class to show PDFs. For more advanced
     * usage including navigation and zooming, look ad the 
     * com.sun.pdfview.PDFViewer class.
     *
     * @author joshua.marinacci@sun.com
     */
    public class PDFView {
     
        public static void setup() throws IOException {
     
            //set up the frame and panel
            JFrame frame = new JFrame("PDF Test");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            PagePanel panel = new PagePanel();
            frame.add(panel);
            frame.pack();
            frame.setVisible(true);
     
            //load a pdf from a byte buffer
            File file = new File("D:/users/horel/eclipse/workspace/testetout/bin/pdf");
            RandomAccessFile raf = new RandomAccessFile(file,"r");
            FileChannel channel = raf.getChannel();
            ByteBuffer buf = channel.map(FileChannel.MapMode.READ_ONLY,
                0, channel.size());
            PDFFile pdffile = new PDFFile(buf);
     
            // show the first page
            PDFPage page = pdffile.getPage(1);
            panel.showPage(page);
     
        }
     
        public static void main(final String[] args) {
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    try {
                    	PDFView.setup();
                    } catch (IOException ex) {
                        ex.printStackTrace();
                    }
                }
            });
        }
    }
    Et la réponse de la console:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    java.io.FileNotFoundException: D:\users\horel\eclipse\workspace\testetout\bin\pdf (Accès refusé)
    	at java.io.RandomAccessFile.open(Native Method)
    	at java.io.RandomAccessFile.<init>(Unknown Source)
    	at PDFView.setup(PDFView.java:32)
    	at PDFView$1.run(PDFView.java:48)
    	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    	at java.awt.EventQueue.dispatchEvent(Unknown Source)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.run(Unknown Source)
    Pourtant le fichier BDCarto.pdf existe à l'emplacement spécifié.

    Je ne sait pas ce qu'est un "RandomAccessFile". Quelqu'un a une idée?

    PS: Merci beaucoup mikemikemike c'est vraiment ce dont j'avais besoin.

  4. #4
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 15
    Points : 17
    Points
    17
    Par défaut
    OOOOUUUPSSS!!!!

    Pardon en fait ça marche super bien.
    Je suis vraiment un looser, j'avais pas rentré le chemin d'acces

    Désolé.

  5. #5
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 15
    Points : 17
    Points
    17
    Par défaut
    Cette fois, j'ai essayé d'intégrer le pdf viewer dans une InternalFrame.

    Voila le 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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    import javax.swing.JInternalFrame;
     
    import com.sun.pdfview.PDFFile;
    import com.sun.pdfview.PDFPage;
    import com.sun.pdfview.PagePanel;
    import java.io.*;
    import java.nio.ByteBuffer;
    import java.nio.channels.FileChannel;
    import javax.swing.*;
     
    public class FicheIFrame extends JInternalFrame{
    	public FicheIFrame(){
    		super("Fiches de spécifications", 
    				false, //resizable
    	              false, //closable
    	              true, //maximizable
    	              false);//iconifiable
     
    		 setSize(357,265);
    		 setLocation(300,0);
    		 run();
     
    	}
    	 public void setup() throws IOException {
    		 PagePanel panel = new PagePanel();
    		 this.add(panel);
    		 File file = new File("D:/users/horel/eclipse/workspace/Project/bin/pdf/BDCarto.pdf");
    	        RandomAccessFile raf = new RandomAccessFile(file,"r");
    	        FileChannel channel = raf.getChannel();
    	        ByteBuffer buf = channel.map(FileChannel.MapMode.READ_ONLY,
    	            0, channel.size());
    	        PDFFile pdffile = new PDFFile(buf);
    	        PDFPage page = pdffile.getPage(0);
    	        panel.showPage(page);
    	 }
    	 public void run() {
             try {
             	setup();
             } catch (IOException ex) {
                 ex.printStackTrace();
             }
         }
     ;
    }
    et voila la réponse de la console:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CONFIG: Protege 3.2.1 Build 365, JVM 1.6.0_04-b12, memory=66M, Windows XP, encoding=UTF-8, language=fr, country=FR
    WARNING: Plugins directory not found: D:\users\horel\eclipse\workspace\Project\plugins -- PluginUtilities.findPluginsDirectory()
    Error reading map.  PlatformID=3, PlatformSpecificID=1
    Reason: java.lang.IllegalArgumentException
    Error reading map.  PlatformID=3, PlatformSpecificID=1
    Reason: java.lang.IllegalArgumentException
    Error reading map.  PlatformID=3, PlatformSpecificID=1
    Reason: java.lang.IllegalArgumentException
    WARNING: missing bundle: protege_text -- BundleHelper.<init>()
    je ne sais pas à quoi correspondent ces "PlatformID" et "PlatformSpecificID"
    Quelqu'un aurait une idée?

Discussions similaires

  1. gérer des pdf dans une base de données
    Par marion5515 dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 28/04/2008, 15h40
  2. deplacer des objets dans un panel
    Par chris81 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 21/03/2008, 12h44
  3. [SSRS][2k5] Probleme avec la visualisation des pdf
    Par cedrico15 dans le forum SSRS
    Réponses: 0
    Dernier message: 08/02/2008, 10h10
  4. [C# 2.0][Ajouter des Controls dans un panel
    Par the big ben 5 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 11/11/2006, 09h07
  5. Ajouter des cercles dans un Panel
    Par guano dans le forum 2D
    Réponses: 4
    Dernier message: 16/03/2006, 10h19

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