Urgent probleme en iText

Fermé
miss pardon Messages postés 10 Date d'inscription mercredi 10 septembre 2008 Statut Membre Dernière intervention 13 septembre 2008 - 11 sept. 2008 à 13:44
 anas.basso - 14 août 2009 à 11:32
Bonjour,
je suis une debutante en netbeans et je veux savoir comment introduire l'API iText pour transferer mes données en pdf .svp donner moi tous les etapes et merci
A voir également:
  • Urgent probleme en iText
  • Itext® - Télécharger - PDF

4 réponses

Attention, j'utilise une vieille version de iText écrite en 2001 (qui marche encore bien).

Il faut d'abord importer iText et la classe PdfWriter :

import com.lowagie.text.*;
import com.lowagie.text.pdf.PdfWriter;

// Dans votre propre classe, vous pouvez prédéfinir des polices de caractères :

Font header01Font = new Font(Font.TIMES_NEW_ROMAN, 5, Font.NORMAL, new Color(0, 0, 0));
Font header02Font = new Font(Font.TIMES_NEW_ROMAN, 10, Font.BOLD, new Color(0, 0, 0));
Font header03Font = new Font(Font.TIMES_NEW_ROMAN, 8, Font.BOLD, new Color(0, 0, 0));
Font detailFont = new Font(Font.TIMES_NEW_ROMAN, 8, Font.NORMAL, new Color(0, 0, 0));
Font footerFont = new Font(Font.TIMES_NEW_ROMAN, 5, Font.BOLD, new Color(0, 0, 0));

// Créez votre Document (ici de format A4 paysage (avec rotate(), mais ce n'est pas obligé !, ensuite j'indique les marges :)

Document document = new Document(PageSize.A4.rotate(), 10, 10, 25, 25);

// Il faut créer le writer: (où TARGET_PATH peut être remplacé par le chemin du pdf à créer sur votre poste, par exemple "C:\\truc\\fichier.pdf")

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

// Vous pouvez ajouter les informations qui figureront dans les proprités du PDF :
document.addAuthor("Miss Pardon");
document.addTitle("LE TITRE DE MON DOCUMENT");
document.addSubject("Blablabla, truc machin biduile");
document.addCreationDate();


//Ensuite, créez des objets Phrase, HeaderFooter... et ajoutez-les à votre document :

Phrase ph1 = new Phrase ();
ph1.add (new Phrase("L'en-tête de mon document\n", header01Font));
ph1.add (new Phrase("etc\n\n\n)); // NB les \n sont des sauts de ligne
// Création de l'en-tête header avec ph1 comme contenu
HeaderFooter header = new HeaderFooter(ph1, false);
// Ajout de l'en-tête header au document
document.setHeader(header);

// Idem pour le pied-de-page
Phrase footPh1 = new Phrase("Page ", footerFont);
Phrase footPh2 = new Phrase("", footerFont);
HeaderFooter footer = new HeaderFooter(footPh1, footPh2);
footer.setAlignment(Element.ALIGN_CENTER);
document.setFooter(footer);

// Ouverture du document
document.open();


// Création d'une table de 12 colonnes qu'on ajoutera au document :
Table datatable = new Table(12);
datatable.setCellpadding(0);
datatable.setCellspacing(0);
// Pas de bordure :
datatable.setBorder(Rectangle.NO_BORDER);
// On indique les largeurs respectives des colonnes :
int headerwidths[] = {2, 4, 8, 2, 8, 8, 8, 8, 36, 6, 6, 4};
datatable.setWidths(headerwidths);
// Largeur totale de la table :
datatable.setWidth(100);

// Autres configurations par défaut :
datatable.setDefaultCellBorder(Rectangle.NO_BORDER);
datatable.setDefaultHorizontalAlignment(Element.ALIGN_CENTER);
datatable.setDefaultRowspan(1);
datatable.setDefaultColspan(1);

// Ecriture de l'en-tête de table :
datatable.addCell(new Phrase("Colonne numéro 1", header03Font));
datatable.addCell(new Phrase("Colonne numéro 2", header03Font));
datatable.addCell(new Phrase("Colonne numéro 3", header03Font));
// ...
// Etc jusqu'à votre 12ème colonne :
datatable.addCell(new Phrase("Colonne numéro 12", header03Font));

// fin de l'en-tête de table :
datatable.endHeaders();

// Ecrire le contenu de votre tableau, 12 cellules par ligne :
table.addCell(new Phrase("celllule 1 blablabla", detailFont));
table.addCell(new Phrase("celllule 2 blablabla", detailFont));
// ... etc ...
table.addCell(new Phrase("celllule 12 blablabla", detailFont));

// et répéter autant de fois qu'il y a de lignes (attention de ne pas sauter une cellule si son contenu est vide,
// écrire alors table.addCell(new Phrase("", detailFont));

// Ajouter la table au document :
document.add(datatable);

// Fermer le document :
document.close();
6
miss pardon Messages postés 10 Date d'inscription mercredi 10 septembre 2008 Statut Membre Dernière intervention 13 septembre 2008
11 sept. 2008 à 15:27
Merci de ton aide in2ni.
-1
Désolé je viens seulement de voir ton dernier message. Je te conseillerais, pour plus de clarté, de créer une classe par grand ensemble de fonctionnalité. Par exemple, une classe spéciale pour écrire les données vers PDF. Bien sûr celle-ci devra accéder d'une manière ou d'une autre aux données en entrée. Mais pour t'aider il faudrait que tu décrives un peu mieux ton projet d'application...
0
Bonjour, j'utilise netbeans 6.5 comme ide, et le visual javasever faces, hibarnate..., je veux utiliser itext pour la génération des pdf et rtf en utilison des des beans, comme dois je procéder, quelles librairies me faudra...
merci
0
Faites un clic droit sur votre projet (si vous ne l'avez pas encore créé, File->New Project)
Dans le menu popup, sélectionnez Properties
Dans Categories, choisissez Libraries
Cliquez sur le bouton Add Libraries
Puis sur le bouton Manage Libraries
Puis New Library
Indiquez lui comme nom, par exemple, iText. (en type: Class Libraries), puis Ok
Dans l'onglet Classpath à droite, cliquez sur Add JAR/Folder, indiquez le chemin de votre fichier itext.jar et de tous les autres jar dont il aura besoin (il est possible qu'iText ait des dépendances)
Revenez sur Projects/Properties/Libraries/, puis le bouton Add Library, et ajoutez la librairie iText, et voilà !

Bien sûr, dans votre code, il faut importer les classes ou packages nécessaires à iText (import...)

Bonne chance !
-1
miss pardon Messages postés 10 Date d'inscription mercredi 10 septembre 2008 Statut Membre Dernière intervention 13 septembre 2008
11 sept. 2008 à 14:32
bonjour,
merci beaucoup pour votre aide.Mais est ce que vous peut m'aider a trouver un exemple de class qui permis de exporter les données en pdf.

merci d'avance
-1
miss pardon Messages postés 10 Date d'inscription mercredi 10 septembre 2008 Statut Membre Dernière intervention 13 septembre 2008
11 sept. 2008 à 22:55
salut en fait j'ai essayer avec cette classe ,j'ai dessiné mon interface,et j'ai importé les API nécessaire mais je sais pas où écrire mes programmes.est c que dans le source de chaque Jtable,jText.... ou bien c'est une classe indépendante????
si tu peux m'aider ce serait une bonne chose
merci
-2