bonjour à tous
tout est dans le titre!
après de multiples recherches, j'ai entendu parler de l'api iText et je souhaite afficher un pdf existant dans un jpanel
Est ce possible?
merci à tous ceux qui voudront bien m'aider
PS; je débute :oops:
Version imprimable
bonjour à tous
tout est dans le titre!
après de multiples recherches, j'ai entendu parler de l'api iText et je souhaite afficher un pdf existant dans un jpanel
Est ce possible?
merci à tous ceux qui voudront bien m'aider
PS; je débute :oops:
itext sert à générer et modifier des fichiers pdfs, pas a en faire du rendu.
Merci de me répondre
Comment faire alors si je veux afficher un pdf dans mon application
Quel API utiliser
avec 30 secondes de recherche google, on trouve déjà plusieurs api pour le faire:
https://pdf-renderer.dev.java.net/
http://www.jpedal.org/
http://www.icepdf.org/
http://www.qoppa.com/jpvindex.html
http://bfo.co.uk/products/pdfviewer/
Merci
j'avais effectivement trouvé plusieurs de ces API mais aucune lib gratuite ne parlait d'affichage dans un jpanel
J'ai quand meme a peu près reussi avec pdfrenderer pour l'integrer dans mon appli
le pdf s'affiche dans mon jpanel, le defilement des pages aussi à l' aide de 2 jbutton
mais certaines pages ne se dessinent pas entierement, si je reviens sur les pages d'avant puis sur la page qui pose pb cette fois ci ca marche parfaitement
Je me demandait si le pb viendrait que l'image n'aurait pas le temps de se charger completement alors que le programme l'afficherait.
Quelqu'un voitd'ou ca peut venir?
Pour ma part j'utilise icepdf qui fonctionne très bien et qui permet peut s'afficher dans un JPanel.
C'est le seul "renderer" qui m'ai convaincu.
bonjour
j ai jete un coup d oeil du cote de icepdf mais la lib n est pas gratuite
peut etr que je me trompe
La version sans le moteur de font semble gratuite.
Donc, tout dépendra de la construction des pdf que tu souhaites afficher.
(textes vectorisés ? polices standard ou non ? ... ...)
Ils fournissent des exemples sur le site avec lesquels tu peux désactiver ou non le moteur de font. Ca te donnera un aperçu des limitations de la version gratuite.
Personnellement, j'utilise le logiciel par défaut du système pour faire ouvrir les .pdf.
Après en effet, ce n'est donc pas intégré directement dans mon application, mais les besoins que j'avais ne le nécessitaient pas.
j'ai réussi à fixer mon pb avec pdf renderer grace à la methode waitforcurrentpage()
Bien sur un autre pb apparaitCode:
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 import com.sun.pdfview.*; import java.io.*; import java.nio.channels.FileChannel; import java.nio.ByteBuffer; import java.util.logging.Level; import java.util.logging.Logger; public class PdfManager extends PagePanel { private File fichierPDF; private RandomAccessFile raf; private FileChannel channel; private PDFFile pdffile; private ByteBuffer buf; private PDFPage page; private int nbPagePdf = 1, numPagePdf = 1; public PdfManager(File fichierPdf, int numPagePdf) { super(); setBounds(835, 125, 355, 455); setFichierPdf(PathManager.setPathFile(0)); setPagePdf(1); } public void setFichierPdf(File fichierPdf) { this.fichierPDF = fichierPdf; try { raf = new RandomAccessFile(fichierPDF,"r"); channel = raf.getChannel(); buf = channel.map(FileChannel.MapMode.READ_ONLY,0, channel.size()); nbPagePdf = (new PDFFile(buf)).getNumPages(); } catch (Exception e) {} } public void setPagePdf(int numPagePdf) { this.numPagePdf = numPagePdf; try { page = (new PDFFile(buf)).getPage(numPagePdf); } catch (IOException ex) {} showPage(page); waitForCurrentPage(); } public int getCurrentPagePdf() { return numPagePdf; } public int getNbPagePdf() { return nbPagePdf; } }
Sur certaines images pdf j'ai un message d'erreur qui apparait. Je pense que c'est lié à la construction de certains PDF en CMY lors de la conversion
svp aidez moi je sèche completement
Code:
1
2
3
4
5
6
7 sun.awt.image.ImageFormatException: Unsupported color conversion request at sun.awt.image.JPEGImageDecoder.readImage(Native Method) at sun.awt.image.JPEGImageDecoder.produceImage(JPEGImageDecoder.java:119) at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:246) at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:172) at sun.awt.image.ImageFetcher.run(ImageFetcher.java:136)
C'est un peu au delà de nos possibilités sur le coup. La seule chose que tu puisses faire est de déclarer un bug sur le tracker de pdfrenderer ou d'utiliser une autre librairie (IcePDF par exemple ;) )
Effectivement, il ss'agit peut etre de l'API qui ne gère pas ce type de document creer en CMY
J'ai testé icePdf open source ou les documents en CMY s'affichent correctement mais il me génère d'autre erreur avec des documents un peu lourd
Du coup, je reste tout de même sur PDFRenderer qui est plus satisfaisant à mon gout pour mon appli qui est destiné à gérer des documents scannés en PDF(donc en RGB)
En tout cas merci à tous pour votre aide