Ciao a tutti
dovrei creare un file .pdf da elementi presenti sulla GUI, tra cui dati presenti in JTable, JTextArea..
Qualcuno sa dirmi da dove cominciare ?
Grazie
Ciao a tutti
dovrei creare un file .pdf da elementi presenti sulla GUI, tra cui dati presenti in JTable, JTextArea..
Qualcuno sa dirmi da dove cominciare ?
Grazie
itext.
io l'ho usato, facile ed intuitivo.
http://sourceforge.net/projects/itext/
Ciao.![]()
I computer sono incredibilmente veloci, accurati e stupidi.
Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
Insieme sono una potenza che supera l'immaginazione.
A.Einstein
Si infatti stavo vedendo proprio questo.
ma non riesco a riadattare le dimensioni della tabella in questo caso.codice:private void createPdf(JTable tabellaMesi, File f) throws FileNotFoundException, DocumentException { Document document = new Document(); PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(f)); document.open(); PdfContentByte cb = writer.getDirectContent(); PdfTemplate tp = cb.createTemplate(500, 500); Graphics2D g2; g2 = tp.createGraphicsShapes(500, 500); tabellaMesi.print(g2); g2.dispose(); cb.addTemplate(tp, 30, 300); document.close(); }
Dove posso trovare i metodi di questa libreria ?
http://www.coderanch.com/how-to/java...w-summary.html
ma ti conviene portarti la tabella?
io ho preso una LinkedList mi sono salvato i miei dati nella struttura e a poco a poco popolavo il mio PDF.
I computer sono incredibilmente veloci, accurati e stupidi.
Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
Insieme sono una potenza che supera l'immaginazione.
A.Einstein
scusa ho sbagliato link
http://api.itextpdf.com/itext/com/it...kage-tree.html
I computer sono incredibilmente veloci, accurati e stupidi.
Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
Insieme sono una potenza che supera l'immaginazione.
A.Einstein
Dici di utilizzare una LinkedList per salvarmi prima tutti i dati?
Dato che il pdf devo popolarlo non solo con una tabella ma devo inserirci anche il testo selezionato da delle jcombobox nonchè da jtextarea, ecc..come posso utilizzare una LinkedList? Mi fai un esempio?
Grazie
Ti puoi costruire un bean dove inserisci i tuoi dati e poi inserirlo nella List.
Ad esempio la classifica di un torneo.
Avrai il tuo oggetto Squadra con nome, punti, posizione.
Una volta recuperati dalla tabella puoi fare:
ovviamente provvederai a crerti l'oggetto e salvarlo nella List ciclando sulla tabella, il mio si tratta solo di un esempio.codice:LinkedList<Squadra> list=new LinkedList<Squadra>(); //==> ma puoi usare un Vector, un ArrayList o simile Squadra sq=new Squadra("Toronto FC", 12, 5); list.add(sq);
Ciao![]()
Ultima modifica di schumy2000; 18-02-2015 a 11:11
I computer sono incredibilmente veloci, accurati e stupidi.
Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
Insieme sono una potenza che supera l'immaginazione.
A.Einstein
Ciao,
ho costriuto il mio file inserendo anche la jTable con i dati utilizzando la libreria iText
la tabella mi viene stampata nel pdf al centro del foglio e non riesco ad individuare il metodo per posizionarla sulla sinistra, puoi darmi qualche suggerimento ?codice:..... PdfPTable table = new PdfPTable(5); PdfPCell c1 = new PdfPCell(new Phrase("Month")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); c1 = new PdfPCell(new Phrase("G")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); c1 = new PdfPCell(new Phrase("Gd")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); table.setHeaderRows(1); c1 = new PdfPCell(new Phrase("Gc")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); table.setHeaderRows(1); c1 = new PdfPCell(new Phrase("h")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); table.setHeaderRows(1); for (int i = 0; i < tableM.getRowCount(); i++) { for (int j = 0; j < tableM.getColumnCount(); j++) { table.addCell(tableM.getValueAt(i, j).toString()); } } document.add(preface); document.add(table); ....
Grazie
Non ne so molto perché la mia tabella era di grandezza 100%
prova con l'istruzione
table.setHorizontalAlignment(Element.ALIGN_LEFT);
Ciao.
I computer sono incredibilmente veloci, accurati e stupidi.
Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
Insieme sono una potenza che supera l'immaginazione.
A.Einstein
Ok Grazie risolto![]()