[JAVA] jpanel in pdf

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
racerider
Prode Principiante
Messaggi: 64
Iscrizione: sabato 14 maggio 2011, 13:28
Desktop: Gnome 3
Distribuzione: Ubuntu 14.04.1 LTS x64
Località: Perugia

[JAVA] jpanel in pdf

Messaggio da racerider »

Ciao a tutti ragazzi, ho un problema un po' insolito :D
mi servirebbe di mettere ciò che ho all'interno del mio jpanel (testo compreso) all'interno di un file pdf (o comunque aver la possibilità di stamparlo).
Vado ad essere più chiaro, il mio programma ha al suo interno delle informazioni formattate in un certo modo, per esempio delle tabelle con poi un radio button ecc, l'utente deve aver la possibilità di trasformare in cartaceo (mantenendo la stessa formattazione) ciò che l'applicazione produce.

Ho letto qualcosa riguardo al trasformare il mio jpanel in un pdf e la cosa mia ha incuriosito molto solo che non trovo spunti validi, tipo in questo codice come potrei fare?

Codice: Seleziona tutto

public class Main extends javax.swing.JPanel {


    public Main() {
        initComponents();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jTextField1 = new javax.swing.JTextField();
        jRadioButton1 = new javax.swing.JRadioButton();
        jButton1 = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTextArea1 = new javax.swing.JTextArea();

        jTextField1.setText("Prova testo");

        jRadioButton1.setText("Prova radio");

        jButton1.setText("Stampa");

        jTextArea1.setColumns(20);
        jTextArea1.setRows(5);
        jTextArea1.setText("Prova di text area");
        jScrollPane1.setViewportView(jTextArea1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addGap(0, 0, Short.MAX_VALUE)
                        .addComponent(jButton1))
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 488, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jRadioButton1))
                        .addGap(0, 689, Short.MAX_VALUE)))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jRadioButton1)
                .addGap(18, 18, 18)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 256, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 221, Short.MAX_VALUE)
                .addComponent(jButton1)
                .addContainerGap())
        );
    }// </editor-fold>                        


    // Variables declaration - do not modify                     
    private javax.swing.JButton jButton1;
    private javax.swing.JRadioButton jRadioButton1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextArea jTextArea1;
    private javax.swing.JTextField jTextField1;
    // End of variables declaration                   
}

Avatar utente
cortinico
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 477
Iscrizione: venerdì 15 maggio 2015, 16:49
Desktop: Unity
Distribuzione: Ubuntu 15.04 amd64
Sesso: Maschile
Località: Pisa
Contatti:

Re: [JAVA] jpanel in pdf

Messaggio da cortinico »

Ciao,

Sì si può fare utilizzando il metodo

Codice: Seleziona tutto

print(Graphics)
sui controlli swing che hai creato (quindi i vari jButton e compagnia bella...)
Come Graphics gli devi passare un

Codice: Seleziona tutto

PdfGraphics2D
e dovresti essere apposto.

In particolare puoi dare un'occhiata a questo articolo:
http://www.javaworld.com/article/207619 ... o-pdf.html

Dove mi pare sia spiegato molto bene. Nel caso prova ad implementarlo e riposta il codice se hai dei problemi
"Look wide, and even when you think you are looking wide – look wider still!"
http://ncorti.com
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 8 ospiti