Imprimir cupom não fiscal

Bom dia.
Quero que ao finalizar o pagamento seja impresso um cupom não fiscal, como sou novo em Java e nunca fiz codifiquei para impressão não tenho ideia de como começar. Segue abaixo o evento do botao finalizar pagamento, que já esta salvando no banco de dados as vendas.

evento botao finalizar pagamento:

private void jbFinalizarPagamentoActionPerformed(java.awt.event.ActionEvent evt) {                                                     
        // Botao evento de finaliza a venda.        

        //declarando variaveis
        double pgCartao, pgDinheiro, totalPago, totalVenda, troco, desconto, totalGeral, txMaquineta, vlCartao;

        pgCartao = Double.parseDouble(jtfCartao.getText());
        pgDinheiro = Double.parseDouble(jtfDinheiro.getText());
        desconto = Double.parseDouble(jtfDesconto.getText());
        totalVenda = Double.parseDouble(jtfTotalp.getText());
        txMaquineta = Double.parseDouble(jtfTaxa.getText());

        //Calcular pagamento e trouco se tiver        
        totalVenda = totalVenda - desconto;
        totalGeral = totalVenda;
        totalPago = pgDinheiro;
        vlCartao = pgCartao - (pgCartao * txMaquineta);

        jtfTotalGeral.setText(String.valueOf(totalGeral));
        troco = (totalGeral - totalPago) - pgCartao;
        jtfTroco.setText(String.valueOf(troco));
        jtfVlReceberCartao.setText(String.valueOf(vlCartao));

        //instanciando o objeto venda.
        Vendas objv = new Vendas();
        Funcionarios objf = new Funcionarios();
        VendasMaquinetas objvm = new VendasMaquinetas();

        Maquinetas m = new Maquinetas();
        m = (Maquinetas) jcbMaquineta.getSelectedItem();
        objvm.setMaquineta(m);

        objvm.setValorReceber(vlCartao);

        VendasMaquinetasDao dao = new VendasMaquinetasDao();
        dao.cadastrarVendaMaquineta(objvm);

        //dados do cliente
        objv.setCliente(cliente);

        objf.setNome(jtfVendedorP.getText());

        //pega data da venda.
        try {
            SimpleDateFormat dataBr = new SimpleDateFormat("dd/MM/yyyy");
            String strFormatoBr = jftDataVendap.getText();
            Date dt = dataBr.parse(strFormatoBr);

            SimpleDateFormat dataEua = new SimpleDateFormat("yyyy-MM-dd");
            String strFormatoEua = dataEua.format(dt);

            objv.setDataVenda(dt);

        } catch (ParseException ex) {
            JOptionPane.showMessageDialog(null, "Erro ao Converter Um Texto Para Date " + ex);
        }

        //pegar o total da venda
        objv.setTotalVenda(totalGeral);
        objv.setObs(jtaObs.getText());
        objv.setFuncionario(objf);
        objvm.setMaquineta(null);

        VendasDao dao_v = new VendasDao();
        dao_v.cadastrarVenda(objv);

        //pegar o ultimo id da venda realizada.
        objv.setCodigoVenda(dao_v.retornaUltimaVenda());

        //cadastrando os produtos na tabela itemvendas.
        for (int i = 0; i < carrinho.getRowCount(); i++) {
            int qtdEstoque, qtdVendida, qtdAtualizada;

            ProdutosDao daoProduto = new ProdutosDao();
            EstoquesDao daoEstoque = new EstoquesDao();
            Produtos objp = new Produtos();
            ItemsVendas item = new ItemsVendas();
            item.setVenda(objv);

            objp.setCodigo(Integer.parseInt(carrinho.getValueAt(i, 0).toString()));
            item.setProduto(objp);
            item.setQtdVenda(Integer.parseInt(carrinho.getValueAt(i, 2).toString()));
            item.setPrecoVenda(Double.parseDouble(carrinho.getValueAt(i, 3).toString()));
            item.setSubtotal(Double.parseDouble(carrinho.getValueAt(i, 4).toString()));

            //baixa no estoque
            qtdEstoque = daoEstoque.retornaEstoqueAtual(objp.getCodigo());
            qtdVendida = Integer.parseInt(carrinho.getValueAt(i, 2).toString());
            qtdAtualizada = qtdEstoque - qtdVendida;

            daoEstoque.baixaEstoque(objp.getCodigo(), qtdAtualizada);

            ItemsVendasDao daoitem = new ItemsVendasDao();
            daoitem.cadastraItem(item);
        }
        JOptionPane.showMessageDialog(null, "Venda Registrada com Sucesso!");

               
        //limpando campos
        jtfDinheiro.setText("0");
        jtfCartao.setText("0");
        jtfDesconto.setText("0");
        jtfTroco.setText("0");
        jtfTotalp.setText("");
        jtfTotalGeral.setText("");
        jtaObs.setText("");

        dispose();
    }