Choisir manuelemnt 1 rep pour fichier en java

Fermé
muntu - 28 mars 2012 à 09:33
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 28 mars 2012 à 13:41
Bonjour,

J'expose mon problème. Au j'ai un programme ticket de caisse et je dois générer un pdf. Au fait j'ai trouvé un bout de code qui le fait. C'est à dire je génère un pdf ds le dossier contenant mon projet. Et j'ai une autre fonction qui me permet de choisir manuellement un repertoire pour enregistrer un fichier.

Mon problème c'est que ne n'arrive pas à associer mon programme qui génère le pdf avec la fonction qui me permet de choisir manuellement un répertoire d'enregistrement.

Ce que j'aimerai faire c'est de choisir un repertoire d'enregistrement de fichier et donner un nom à mon fichier.

Voici mes fonctions :


Document document = new Document(PageSize.A6);


Permet de générer un pdf :

try {
// etape 2:
// creation du writer -> PDF ou HTML
PdfWriter.getInstance(document, new FileOutputStream(out));

// etape 3: Ouverture du document
document.open();

// etape 4: Ajout du contenu au document
document.addTitle("Rapport de supervision");
document.addCreationDate();

String str = ecran.getText();

Paragraph p = new Paragraph(str);

// p.setAlignment(1);
document.add(p);

// document.add(icon);

}
catch(DocumentException de) {
System.err.println(de.getMessage());

}
catch(IOException ioe) {
System.err.println(ioe.getMessage());

}
// etape 5: Fermeture du document
document.close();


Fonction permettant de choisir manuellement un répertoire :

public String sauverTicket()
{
JFileChooser cheminFichier = new JFileChooser();
cheminFichier.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int retour = cheminFichier.showSaveDialog(null);
if(retour == JFileChooser.APPROVE_OPTION)
{
return cheminFichier.getSelectedFile().getAbsolutePath();
}
else
{ JOptionPane.showMessageDialog(null, "Veuillez sélectionner un dossier pour l'impression du ticket !", "Erreur !", JOptionPane.ERROR_MESSAGE);
return null;}
}
A voir également:

5 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
28 mars 2012 à 09:47
Le plus simple est peut-être d'utiliser la méthode Files.move sur le fichier PDF créé pour l'envoyer là où tu as défini l'enregistrement.
0
Merci pour la réponse mais j'aimerai savoir si y a moyen d le faire manuellement, parce que là je dois changer tout le tmps mon code. Merci encore
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
Modifié par KX le 28/03/2012 à 10:17
Comment ça "manuellement" ?
Ce que je propose c'est juste de rajouter une instruction pour faire le lien entre tes deux codes :
File.move(document.toPath(),cheminFichier.getSelectedFile().toPath);
PS. Je connais pas ta classe PdfWriter, alors le "document.toPath" est approximatif ;-)
0
J'ai essayé avec ça, il me donne des erreurs. Et, cheminFichier.getSelectedFile() il dit que n'est pas défini pour les types String. document.toPath() Me donne aussi une erreur, il ne reconnait pas la méthode toPath().

Par contre j'ai essayé avec :

PdfWriter.getInstance(document, new FileOutputStream(sauverTicket()));

ça semble marcher, il me propose bien de choisir un repertoire où enregistrer le fichier mais me dit :

C:\Users\Ntounta\workspace\test1\Caisse (Accès refusé) // kelke soit le rep choisi
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
28 mars 2012 à 12:16
Oups ! toPath est une des nouvelles méthodes de Java 7... Tu codes surement en Java 6 !
Essayes alors la méthode renameTo

File fic = ??? // le fichier PDF
fic.renameTo(cheminFichier.getSelectedFile());
0
J'ai vu mon erreur, je devrais spécifier le nom du pdf, j'ai mis un chemin absolu avec c:/toto.pdf ça marché. Je vais tenté avec ma fonction sauverTicket();


Merci encore !!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ç'a marché :

PdfWriter.getInstance(document, new FileOutputStream(sauverTicket()));


Au fait il fallait juste préciser le nom du fichier quand la fonction sauverTicket propose un repertoire alors que moi je doublecliquais sur le repertoire et pour le prog c'était comme si je voulais engeristrer un rep alors qu'il s'attend à un fichier pdf.

En ce qui concerne File fic = ??? // le fichier PDF, j'ai tenté hier mais à mon avis c'est pas approprié pour les pdf, parce que qd j'essaie d'ouvrir le pdf crée il dit que le fichier est corrompu. La méthode appropriée pour créer des pdf en java c'est : PdfWriter.getInstance(document, new FileOutputStream(sauverTicket()));

http://translate.google.be/...
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
28 mars 2012 à 13:41
En fait pour fic, je voulais juste parler du fichier créé dans le répertoire courant.
Par exemple fic = new File("monFichier.pdf");
Mais je ne connais pas le nom de fichier de ton PDF...
0