Java gerando PDF

5 respostas Resolvido
programaçãojavamysql
D

Boa tarde!

Alguem pode me ajudar neste seguinte erro por favor.

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {

String nomediretorio = null;

String nomepasta = ClientePF; // Informe o nome da pasta que armazenará o relatório

String separador = java.io.File.separator;

try {

nomediretorio = C:/Imobiliaria + separador + nomepasta;

if (!new File(nomediretorio).exists()) {

(new File(nomediretorio)).mkdir();

}

gerarDocumento(txtID_Cliente.getText());

} catch (Exception e) {

e.printStackTrace();

}

}

public void gerarDocumento(String id) {

Document doc = new Document(PageSize.A4, 41.5f, 41.5f, 55.2f, 55.2f);

try {

List lista = new ArrayList<>();

lista = clientePFDAO.ClientePF_PDF(id);
PdfWriter.getInstance(doc, new FileOutputStream("C:/Imobiliaria/ClientePF/Ficha" + ".pdf"));
        doc.open();

        Paragraph titulo1 = new Paragraph("Ficha de Cadastro", FontFactory.getFont(FontFactory.TIMES_ROMAN,18,Font.BOLD));
        titulo1.setAlignment(Element.ALIGN_CENTER);
        titulo1.setSpacingAfter(10);
        doc.add(titulo1);
        
        doc.add( new Paragraph(""));

        for (ClientePF clientePF : lista) {
        Chunk nome = new Chunk("Nome: ", FontFactory.getFont(FontFactory.TIMES_ROMAN,10,Font.BOLD));
        doc.add(nome);
        Chunk lnome = new Chunk(clientePF.getNome(), FontFactory.getFont(FontFactory.TIMES_ROMAN,10,Font.NORMAL));
        doc.add(lnome);           
        }
        doc.close();

        JOptionPane.showMessageDialog(null, "Relatório salvo com sucesso");
        String caminho = "C:/Imobiliaria/ClientePF/Ficha.pdf";
        Desktop.getDesktop().open(new File(caminho));
    } catch (DocumentException e) {
    } catch (IOException exx) {
        JOptionPane.showMessageDialog(null, "Documento de Requisitos aberto. Feche para gerar um novo.");
    }
}

public List<ClientePF> ClientePF_PDF(String pesquisa) {

    List<ClientePF> listClientePF;
    listClientePF = new ArrayList<>();
    ResultSet rs = null;
    
    
    try{
        
    sql = "select * from clientePF WHERE id_cliente = ?";
    pst = con.prepareStatement(sql);
    pst.setString(1, pesquisa);
    rs = pst.executeQuery();
    
    while (rs.next()) {
       listClientePF.add(new ClientePF(rs.getInt("id_cliente"), rs.getString("nome"), rs.getString("cpf")));
    }
    }catch (SQLException ex) {
        JOptionPane.showMessageDialog(null, "Erro ao iniciar lista"+ex);
    }finally{
        Conexao.closeConnection(con, pst, rs);
    }
    
    return listClientePF;
}

5 Respostas

R

No erro tá falando que a operação não pode ser feita com a conexão fechada. No seu código não vi você abrindo a conexão, só fechando

D

em que parte do codigo deve abrir esta conexão

M
Solucao aceita

Antes de querer fazer um acesso ao banco

D

Vlww
estava executando a conexão na class dao

M

:+1:t2:
Qualquer estamos ai.
Abraço

Criado 11 de agosto de 2018
Ultima resposta 13 de ago. de 2018
Respostas 5
Participantes 3