Galera eu tenho uma aplicação no java e o professor da faculdade queria que eu salvasse alguns dados (que está no banco de dados) em arquivo PDF , no meu caso seria uma lista de clientes e uma lista de filmes, que eu consigo acessar em JTable, teria como eu pegar todos esses dados no JTable e colocar num arquivo PDF como se fosse uma lista???
[quote=Adamgnr]Galera eu tenho uma aplicação no java e o professor da faculdade queria que eu salvasse alguns dados (que está no banco de dados) em arquivo PDF , no meu caso seria uma lista de clientes e uma lista de filmes, que eu consigo acessar em JTable, teria como eu pegar todos esses dados no JTable e colocar num arquivo PDF como se fosse uma lista???
[/quote]
Oi!
Sim, sem dúvidas, senão seu professor nem teria pedido não é? 
Podes usar o Jasper Reports para isso. Aqui tem um exemplo de como fazer em Java.
Tem dezenas de exemplos e demonstrações na net de como fazer isso, dê uma pesquisada e qualquer dúvida, poste o seu código com a respectiva dúvida/erro/afins.
Abraços.
acho que isto pode te ajudar
Essa classe que tenho aqui, faz isso…
package TrabalhoPDF;
import java.sql.*;
import javax.swing.*;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Element;
import com.lowagie.text.Font;
import com.lowagie.text.Paragraph;
import com.lowagie.text.Phrase;
import com.lowagie.text.pdf.FontSelector;
import com.lowagie.text.pdf.PdfWriter;
import java.awt.*;
import java.awt.event.*;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.*;
public class ConsultaGrade extends JFrame implements ActionListener
{
JButton b1,b2,b3;
JPanel panel;
JTable tab;
Conexao con = new Conexao();
static JFrame janela;
public static void main(String args[])
{
janela = new ConsultaGrade();
janela.setVisible(true);
}
public ConsultaGrade()
{
setTitle( "Tabela de Filmes" );
setBounds(200,200,600,300);
setResizable(false);
getContentPane().setBackground(Color.white);
b1 = new JButton("Consultar");
b2 = new JButton("Sair");
b3 = new JButton("Imprimir PDF");
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
panel = new JPanel();
panel.setBackground(new Color(230,230,230));
panel.setLayout(new FlowLayout(FlowLayout.LEFT));
panel.add(b1);
panel.add(b3);
panel.add(b2);
getContentPane().add(panel, BorderLayout.NORTH);
String ret = con.conectaAccess();
if (ret!="")
{
JOptionPane.showMessageDialog(null,ret);
System.exit(0);
}
}
public void actionPerformed(ActionEvent e)
{
if (e.getSource()==b1)
{
criaGrade();
JScrollPane scroller = new JScrollPane( tab );
getContentPane().add(scroller, BorderLayout.CENTER);
janela.setVisible(true);
}
if (e.getSource()==b2)
{
// con.close();
System.exit(0);
}
if (e.getSource()==b3) {
Document document = new Document();
ResultSet res;
String cod, nome;
try {
PdfWriter.getInstance(document, new FileOutputStream("c:/filmes.pdf"));
document.open();
res = con.statement.executeQuery("SELECT * FROM Filmes");
res.first();
Paragraph paragraph = new Paragraph();
paragraph.setAlignment(Element.ALIGN_CENTER);
FontSelector font1 = new FontSelector();
font1.addFont(new Font(Font.COURIER,26));
String texto = "RELATÓRIO DE FILMES";
Phrase frase = font1.process(texto);
paragraph.add(new Paragraph(frase));
document.add(paragraph);
document.add(new Paragraph("CÓDIGO TÍTULO"));
int count=0, linha = 38;
do
{
cod = res.getString(1);
nome = res.getString(2);
document.setMargins(20, 20, 50, 50);
document.add(new Paragraph(cod +" "+ nome));
System.out.println(count);
if (count == linha )
{
linha = linha + 38;
document.add(paragraph);
document.add(new Paragraph("CÓDIGO TÍTULO"));
}
count++;
}
while ( res.next() );
JOptionPane.showMessageDialog(null, "Geração Ok");
}
catch (DocumentException de)
{
System.err.println(de.getMessage());
}
catch(IOException ioe)
{
System.err.println(ioe.getMessage());
}
catch (SQLException erro)
{
System.out.println(erro.toString());
}
document.close();
}
}
private void criaGrade()
{
ResultSet res;
try
{
Vector cabecalho = new Vector();
Vector linhas = new Vector();
res = con.statement.executeQuery("select * from Filmes");
res.next();
// busca os cabeçalhos
ResultSetMetaData rsmd = res.getMetaData();
for ( int i = 1; i <= rsmd.getColumnCount(); i++ )
cabecalho.addElement( rsmd.getColumnName( i ) );
// busca dados das linhas
do
{
linhas.addElement( proximaLinha( res, rsmd ) );
}
while ( res.next() );
// Mostra a tabela com cabeçalhos e registros
tab = new JTable( linhas, cabecalho );
tab.setBackground(new Color(250,128,114));
// validate(); ??
}
catch (SQLException erro) { System.out.println(erro.toString());}
}
private Vector proximaLinha(ResultSet rs, ResultSetMetaData rsmd )
{
Vector linhaAtual = new Vector();
try
{
for ( int i = 1; i <= rsmd.getColumnCount(); i++ )
// switch( rsmd.getColumnType(i))
// {
// case Types.VARCHAR:
linhaAtual.addElement(rs.getString(i));//break;
// case Types.TIMESTAMP:
// linhaAtual.addElement(rs.getDate(i));break;
// }
}
catch(SQLException erro) { }
return linhaAtual;
}
}