Imprimer un fichier PDF existant [Résolu]

cs_redbar 114 Messages postés mardi 26 janvier 2010Date d'inscription 26 mai 2014 Dernière intervention - 24 oct. 2011 à 19:25 - Dernière réponse : cs_redbar 114 Messages postés mardi 26 janvier 2010Date d'inscription 26 mai 2014 Dernière intervention
- 26 oct. 2011 à 15:46
Bonjour à tous

Je bute un peu sur un travail. J'ai créer un fichier PDF avec l'API itext pour l'imprimer. Mais mon souci est que le fichier une fois créé n'apparait pas automatiquement pour que je puisse lancer l'impression. Pour faire donc l'impression il me faut aller dans le reppertoire du fichier pour l'ouvrir avant de l'imprimer. Je voudrais que le fichier dès qu'il est créé s'ouvre automatiquement pour que je puisse l'imprimer.

Voici mon code de création de mon fichier

class ImprimerlivreListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
Document document = new Document(PageSize.A4);
try{
PdfWriter  writer = PdfWriter.getInstance(document, new FileOutputStream("rapport/Livredecredit.pdf"));
document.addTitle("Livre de credit");
      document.addAuthor("Athanase KOUASSI");
      document.addSubject("Génération de PDF.");
      document.addKeywords("iText, gestion de stock");
document.open();


      
//Recupere la date système
Date date = new Date();
//formater la date
SimpleDateFormat sdf = new SimpleDateFormat("dd MMMM yyyy");
Paragraph paragraphe = new Paragraph("Date : "+sdf.format(date));
paragraphe.setAlignment(Paragraph.ALIGN_RIGHT);		
document.add(new Paragraph("        "));
//document.add(new Paragraph("        "));
document.add(paragraphe);
document.add(new Paragraph("        "));
document.add(new Paragraph("        "));	
document.add(new Paragraph("Client  : "+ nom.toUpperCase()));				
document.add(new Paragraph("Contact : "+contact));
document.add(new Paragraph("        "));
document.add(new Paragraph("        "));
document.add(new Paragraph("        "));
Paragraph paratitre = new Paragraph("LIVRE DE CREDIT", FontFactory.getFont(FontFactory.COURIER, 20f,Font.BOLD));
paratitre.setAlignment(Paragraph.ALIGN_CENTER);
document.add(paratitre);	

Statement state = Maconnexion.getInstance().createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
ResultSet res state.executeQuery("SELECT TO_CHAR(datfact, 'DD/MM/YYYY'),TO_CHAR(id_fact,'9999'),TO_CHAR(restapayer,'9999999') FROM facture WHERE facture.id_client'"+idClient+"' AND restapayer > 0 ORDER BY datfact");
//pour obtenir le nombre de lignes du tableau à imprimer
ResultSetMetaData resmeta = res.getMetaData();
res.last();
//nombre de ligne du tableau à imprimer
int nbLigne = res.getRow()+1;

//tableau(nbrecolonnes,nbrelignes)
Table tableau = new Table(3,nbLigne);
tableau.setAutoFillEmptyCells(true);
tableau.setPadding(2);

Cell cell = new Cell("Date Facture");
cell.setHeader(true);
cell.setBackgroundColor(Color.darkGray.brighter().brighter().brighter());
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
tableau.addCell(cell);

cell = new Cell("Numero facture");
cell.setHeader(true);
cell.setBackgroundColor(Color.darkGray.brighter().brighter().brighter());
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
tableau.addCell(cell);

cell = new Cell("Montant à payer");
cell.setHeader(true);
cell.setBackgroundColor(Color.darkGray.brighter().brighter().brighter());
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
tableau.addCell(cell);
tableau.endHeaders();


res.beforeFirst();
while(res.next()){			
for(int i = 1; i <=  resmeta.getColumnCount(); i++){
Chunk chunk = new Chunk( (String) res.getObject(i));
Phrase phrase = new Phrase(chunk);
tableau.addCell(phrase);
}
}
 document.add(tableau);
     document.add(new Paragraph("    Total des sommes dues à ce jour   "+new Conversion().convertirEntierString(soldeDuClient(idClient)), FontFactory.getFont(FontFactory.COURIER, 15f,Font.BOLD)));

 
         res.close();
         state.close();
}catch(SQLException as){
as.printStackTrace();

}catch (DocumentException de) {
de.printStackTrace();

} catch (IOException ioe) {
  ioe.printStackTrace();

}
 
document.close();
}

}


Merci pour votre aide
Afficher la suite 

4 réponses

Répondre au sujet
cs_Julien39 6449 Messages postés mardi 8 mars 2005Date d'inscription 15 mars 2018 Dernière intervention - 25 oct. 2011 à 08:26
+3
Utile
Bonjour,

Pour ouvrir ton fichier pdf, en réalité, il faut lancer l'application qui te permet de lire le pdf (AdobeReader par exemple).

Pour lancer une application en java, on procède de la facon suivante :

/* Recuperation de l'environnement */
Runtime runtime = Runtime.getRuntime(); 

/* Tableau de parametres : chemin vers l'appli, chemin vers le pdf */
String[] parametres = new String[]{
"C:\\Program Files\\Adobe\\Reader 9.0\\Reader\\AcroRd32.exe", 
"C:\\tonFichier.pdf"
};

/* Execution */
try {
runtime.exec(parametres);
}
catch(Exception e){
e.printStackTrace();
}


PS : traite les exceptions plus proprement que ce que j'ai fait.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Julien39
cs_redbar 114 Messages postés mardi 26 janvier 2010Date d'inscription 26 mai 2014 Dernière intervention - 25 oct. 2011 à 18:20
+3
Utile
Bonsoir Julien39
Merci pour ton aide. je viens de le texte et ça marche très bien.
Merci
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_redbar
cs_Julien39 6449 Messages postés mardi 8 mars 2005Date d'inscription 15 mars 2018 Dernière intervention - 26 oct. 2011 à 07:53
+3
Utile
Ok, j'accepte la réponse, essaye d'y penser la prochaine fois.

Bonne journée
a+
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Julien39
cs_redbar 114 Messages postés mardi 26 janvier 2010Date d'inscription 26 mai 2014 Dernière intervention - 26 oct. 2011 à 15:46
0
Utile
salut
Ok c'est compris. Merci encore pour ton aide.

bonne journée
Commenter la réponse de cs_redbar

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.