Imprimer un fichier PDF existant [Résolu]

Messages postés
114
Date d'inscription
mardi 26 janvier 2010
Dernière intervention
26 mai 2014
- - Dernière réponse : cs_redbar
Messages postés
114
Date d'inscription
mardi 26 janvier 2010
Dernière intervention
26 mai 2014
- 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 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Dernière intervention
17 mai 2018
3
Merci
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.

Merci cs_Julien39 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de cs_Julien39
Messages postés
114
Date d'inscription
mardi 26 janvier 2010
Dernière intervention
26 mai 2014
3
Merci
Bonsoir Julien39
Merci pour ton aide. je viens de le texte et ça marche très bien.
Merci

Merci cs_redbar 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de cs_redbar
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Dernière intervention
17 mai 2018
3
Merci
Ok, j'accepte la réponse, essaye d'y penser la prochaine fois.

Bonne journée
a+

Merci cs_Julien39 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de cs_Julien39
Messages postés
114
Date d'inscription
mardi 26 janvier 2010
Dernière intervention
26 mai 2014
0
Merci
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.