Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480

    Creare file PDF da JTable

    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

  2. #2
    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

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480
    Si infatti stavo vedendo proprio questo.
    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();
            
        }
    ma non riesco a riadattare le dimensioni della tabella in questo caso.
    Dove posso trovare i metodi di questa libreria ?

  4. #4
    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

  5. #5
    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

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480
    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

  7. #7
    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:
    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);
    ovviamente provvederai a crerti l'oggetto e salvarlo nella List ciclando sulla tabella, il mio si tratta solo di un esempio.
    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

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480
    Ciao,
    ho costriuto il mio file inserendo anche la jTable con i dati utilizzando la libreria iText
    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);
    
    ....
    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 ?

    Grazie

  9. #9
    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

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480
    Ok Grazie risolto

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.