com.automaster.autoview.server.servlet.ContratoPfServlet.java Source code

Java tutorial

Introduction

Here is the source code for com.automaster.autoview.server.servlet.ContratoPfServlet.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.automaster.autoview.server.servlet;

import com.automaster.autoview.server.DAO.ClienteDAO;
import com.automaster.autoview.server.DAO.UnidadeDAO;
import com.automaster.autoview.server.DAO.VeiculoDAO;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Phrase;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.ColumnText;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.time.ZoneId;
import java.util.ArrayList;
import java.util.Date;
import java.util.TimeZone;
import java.util.TreeMap;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author Adriano
 */
public class ContratoPfServlet extends HttpServlet {

    private ArrayList<TreeMap<String, String>> clienteAuxiliar = new ArrayList<>();
    private String listaDePlacasComodato = "";
    private String listaDePlacasVenda = "";
    private Date dataAtual = new Date(System.currentTimeMillis());
    private String cab1 = "";
    private String cab2 = "";
    private String cab3 = "";
    private String cab4 = "";
    private String cab5 = "";
    private String cab6 = "";
    private String cab7 = "";
    private String cab8 = "";
    private String cab9 = "";
    private String cab10 = "";
    private String cab11 = "";
    private String cab12 = "";
    private String cab13 = "";
    private String cab14 = "";
    private String cab15 = "";
    private String cab16 = "";
    private String cab17 = "";
    private String cab18 = "";
    private String cab19 = "";
    private String cab20 = "";
    private String cab21 = "";
    private String cab22 = "";
    private String cab23 = "";
    private String cab24 = "";
    private String cab25 = "";
    private String cab255 = "";
    private String cab26 = "";
    private String cab266 = "";
    private String cab2661 = "";
    private String cab27 = "";
    private String cab28 = "";
    private String logradouro = null;
    private String bairro = null;
    private String numero = null;
    private String cidade = null;
    private String cep = null;
    private String uf = null;
    private String nomeEstado = null;
    private final String autoMaster = "AUTO MASTER LTDA";
    private String cnpjUn = null;
    private String cidadeUn = null;
    private String nomeEstadoUn = null;
    private String ufUn = null;
    private String logradouroUn = null;
    private String numeroUn = null;
    private String bairroUn = null;
    private int codCliente = 0;
    private int tipoCliente = 0;
    private String cpfCnpj = null;
    private String url = null;

    /**
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
     * methods.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException, SQLException {
        //System.out.println("URL"+request.getRequestURL().toString());
        url = getServletContext().getRealPath("/");
        //request.getRequestURL().toString().replaceAll("ContratoPfServlet", "");
        //JRGWT/
        //System.out.println("URL absoluta : "+url);
        //System.out.println("getServletContext(): "+url+"\\contratos\\contrato_locacao.pdf" );
        clienteAuxiliar = new ArrayList<>();
        listaDePlacasComodato = "";
        listaDePlacasVenda = "";
        dataAtual = new Date(System.currentTimeMillis());
        cab1 = "";
        cab2 = "";
        cab3 = "";
        cab4 = "";
        cab5 = "";
        cab6 = "";
        cab7 = "";
        cab8 = "";
        cab9 = "";
        cab10 = "";
        cab11 = "";
        cab12 = "";
        cab13 = "";
        cab14 = "";
        cab15 = "";
        cab16 = "";
        cab17 = "";
        cab18 = "";
        cab19 = "";
        cab20 = "";
        cab21 = "";
        cab22 = "";
        cab23 = "";
        cab24 = "";
        cab25 = "";
        cab255 = "";
        cab26 = "";
        cab266 = "";
        cab2661 = "";
        cab27 = "";
        cab28 = "";
        logradouro = null;
        bairro = null;
        numero = null;
        cidade = null;
        cep = null;
        uf = null;
        nomeEstado = null;
        cnpjUn = null;
        cidadeUn = null;
        nomeEstadoUn = null;
        String ufUnidade = null;
        logradouroUn = null;
        numeroUn = null;
        bairroUn = null;
        codCliente = 0;
        tipoCliente = 0;
        cpfCnpj = null;
        //String placa = request.getParameter("placa");        
        codCliente = Integer.parseInt(request.getParameter("codCliente"));
        tipoCliente = Integer.parseInt(request.getParameter("tipoCliente"));
        cpfCnpj = request.getParameter("cpfCnpj").replaceAll("\\.", "").replaceAll("/", "").replaceAll("-", "");
        //
        /*String timeZoneInterface = request.getParameter("timeZone");
        String timeZone = "Z";
        if(timeZoneInterface.equalsIgnoreCase("0")){
        timeZone = "Z";
        } else {
        timeZone = String.valueOf((-1) * (Integer.parseInt(timeZoneInterface) / 60));
        } */
        //TimeZone timeZonePadrao = TimeZone.getTimeZone(ZoneId.of("-3"));
        //
        // busca no BD as informaes do cliente
        ClienteDAO clienteDAO = new ClienteDAO();
        System.out.println("CodCliente - Contrato: " + codCliente);
        TreeMap<String, ArrayList<TreeMap<String, String>>> cliente = clienteDAO.buscarPorCodCliente(codCliente);
        //guarda no map auxiliar
        clienteAuxiliar = cliente.get(cliente.firstKey());
        //busca no BD aas informaes da unidade
        UnidadeDAO unidadeDAO = new UnidadeDAO();
        int codUnidade = Integer.parseInt(clienteAuxiliar.get(0).get("codUnidade"));
        //guarda no map as informaes da unidade
        TreeMap<String, String> unidade = unidadeDAO.buscarPorCodUnidadeCompleta(codUnidade);
        //vaiveis que iro guardar as informaes da unidade
        cnpjUn = formataCNPJ(unidade.get("cnpj"));
        cidadeUn = unidade.get("nomeCidade");
        nomeEstadoUn = unidade.get("nomeCompletoEstado");
        ufUnidade = unidade.get("nomeEstado").toUpperCase();
        logradouroUn = unidade.get("logradouro").toUpperCase();
        numeroUn = unidade.get("numero").toUpperCase();
        bairroUn = unidade.get("bairro").toUpperCase();
        // pega a data atual do sistema        
        //System.out.println("Cliente auxiliar :"+clienteAuxiliar);
        //busca no BD as informaes de endereo do cliente
        TreeMap<String, String> endAuxiliar = new TreeMap<>();
        int index = 0;
        for (TreeMap<String, String> ends : clienteAuxiliar) {
            if (clienteAuxiliar.get(index).get("descricaoEndereco").equalsIgnoreCase("ENDEREO DE COBRANA")
                    && endAuxiliar.get(ends.get("codEndereco")) == null) {
                //System.out.println("linha 01!!");
                logradouro = ends.get("logradouro").toUpperCase();
                bairro = ends.get("bairro").toUpperCase();
                numero = ends.get("numeroEndereco").toUpperCase();
                cidade = ends.get("nomeCidade").toUpperCase();
                cep = ends.get("cep");
                uf = ends.get("estadoUf").toUpperCase();
                nomeEstado = ends.get("nomeEstado").toUpperCase();
                endAuxiliar.put(ends.get("codEndereco"), ends.get("codEndereco"));
                //System.out.println("Linha 02!!");
            }
            index++;
        }
        // montando a string que ir compor o cabealho do contrato
        cab1 = "Pelo presente instrumento particular, de um lado ";
        cab2 = autoMaster;
        cab3 = ", atuante no setor de segurana de monitoramento de veculos, inscrita no ";
        cab4 = "CNPJ: " + cnpjUn;
        cab5 = " localizada na ";
        cab6 = logradouroUn;
        cab7 = " n ";
        cab8 = numeroUn;
        cab9 = ", ";
        cab10 = bairroUn.toUpperCase();
        cab11 = ", ";
        cab12 = cidadeUn.toUpperCase();
        cab13 = "/";
        cab14 = ufUnidade.toUpperCase();
        cab15 = ", doravante ";
        cab16 = "designada simplesmente ";
        cab17 = "AUTO MASTER MONITORAMENTO";
        cab18 = ", e de outro lado ";
        cab19 = clienteAuxiliar.get(0).get("nomeCliente")
                + ((tipoCliente == 1) ? ", CPF: " + formataCPF(cpfCnpj) : ", CNPJ: " + formataCNPJ(cpfCnpj));
        cab20 = " localizado a ";
        cab21 = logradouro;
        cab22 = ", bairro: ";
        cab23 = bairro;
        cab24 = ", N ";
        cab25 = numero;
        cab255 = ", CIDADE : ";
        cab26 = cidade;
        cab266 = ", CEP : ";
        cab2661 = cep;
        cab27 = ", adquirente do RASTREADOR PARA AUTOS AUTO MASTER, ";
        cab28 = "doravante denominado simplesmente como CONTRATANTE, firmam o presente CONTRATO DE PRESTAO DE SERVIOS, "
                + "conforme condies e clusulas adiante mencionadas:";
        //busca no BD os veculos do cliente
        VeiculoDAO veiculoDAO = new VeiculoDAO();
        ArrayList<TreeMap<String, String>> veiculos = veiculoDAO.buscarVeiculoAtivoPorCliente(codCliente);
        //incrementa a string somente com as placas dos veculos do cliente
        TimeZone timeZonePadrao = TimeZone.getTimeZone(ZoneId.of("-3"));
        SimpleDateFormat formatadorData = new SimpleDateFormat("dd/MM/yyyy");
        formatadorData.setTimeZone(timeZonePadrao);
        //System.out.println("timeZonePadrao: "+timeZonePadrao);
        for (int i = 0; i < veiculos.size(); i++) {
            /*if (i == veiculos.size() - 1) {
            if (veiculos.get(i).get("planoCodPlano").equalsIgnoreCase("1")) {
                Date dataAdesao = new Date(Long.parseLong(veiculos.get(i).get("dataAdesao")));                    
                String dataAdesaoFormata = formatadorData.format(dataAdesao);
                listaDePlacasVenda = "" + listaDePlacasVenda + veiculos.get(i).get("placa")+" ("+dataAdesaoFormata+")";
            } else {
                Date dataAdesao = new Date(Long.parseLong(veiculos.get(i).get("dataAdesao")));                    
                String dataAdesaoFormata = formatadorData.format(dataAdesao);
                listaDePlacasComodato = "" + listaDePlacasComodato + veiculos.get(i).get("placa")+" ("+dataAdesaoFormata+")";
            }
            } else {*/
            if (veiculos.get(i).get("planoCodPlano").equalsIgnoreCase("1")) {
                /*Date dataAdesao = new Date(Long.parseLong(veiculos.get(i).get("dataAdesao"))); 
                System.out.println("contrato Long: "+Long.parseLong(veiculos.get(i).get("dataAdesao")));
                System.out.println("getTreeMap Date: "+dataAdesao);
                String dataAdesaoFormata = formatadorData.format(dataAdesao);*/
                listaDePlacasVenda = "" + listaDePlacasVenda + veiculos.get(i).get("placa") + " ("
                        + veiculos.get(i).get("dataAdesaoString") + "), ";
            } else {
                /*Date dataAdesao = new Date(Long.parseLong(veiculos.get(i).get("dataAdesao")));  
                System.out.println("contrato Long: "+Long.parseLong(veiculos.get(i).get("dataAdesao")));
                System.out.println("getTreeMap Date: "+dataAdesao);
                String dataAdesaoFormata = formatadorData.format(dataAdesao);*/
                listaDePlacasComodato = "" + listaDePlacasComodato + veiculos.get(i).get("placa") + " ("
                        + veiculos.get(i).get("dataAdesaoString") + "), ";
            }
            //}
        }
        if (listaDePlacasComodato.equalsIgnoreCase("")) {
            contratoVenda(request, response);
        } else {
            if (!listaDePlacasComodato.equals("") && listaDePlacasVenda.equals("")) {
                contratoComodato(request, response);
            } else if (!listaDePlacasComodato.equals("") && !listaDePlacasVenda.equals("")) {
                contratoLocacaoVenda(request, response);
            }
        }

    }

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /**
     * Handles the HTTP <code>GET</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        try {
            processRequest(request, response);
        } catch (SQLException ex) {
            Logger.getLogger(ContratoPfServlet.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    /**
     * Handles the HTTP <code>POST</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        try {
            processRequest(request, response);
        } catch (SQLException ex) {
            Logger.getLogger(ContratoPfServlet.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>

    private String formataCNPJ(String cnpj) {
        String cnpjFormatado = cnpj.substring(0, 2) + "." + cnpj.substring(2, 5) + "." + cnpj.substring(5, 8) + "/"
                + cnpj.substring(8, 12) + "-" + cnpj.substring(12, 14);
        return cnpjFormatado;
    }

    public String formataCPF(String cpf) {
        String cpfFormatado = cpf.substring(0, 3) + "." + cpf.substring(3, 6) + "." + cpf.substring(6, 9) + "-"
                + cpf.substring(9, 11);
        return cpfFormatado;
    }

    public void contratoComodato(HttpServletRequest request, HttpServletResponse response) throws IOException {
        try {

            // PDF que  o template da aplicao
            PdfReader reader = new PdfReader(url + "/contratos/contrato_locacao.pdf");
            //PDF resultante
            OutputStream os = response.getOutputStream();
            //PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(url+"\\contratos\\contrato_locacao.pdf"));
            PdfStamper stamper = new PdfStamper(reader, os);
            // ir adicionar na primeira pgina do PDF resultante
            PdfContentByte cabecalho = stamper.getOverContent(1);
            // cria um objeto que ir acomodar a o PdfContentByte
            ColumnText collumText = new ColumnText(cabecalho);
            // definie as configuraes de fonte para o objeto frase
            BaseFont normal = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
            BaseFont negrito = BaseFont.createFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
            //cria uma frase
            Phrase phraseCabecalho = new Phrase();
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab1);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab2);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab3);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab4);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab5);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab6);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab7);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab8);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab9);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab10);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab11);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab12);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab13);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab14);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab15);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab16);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab17);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab18);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab19);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab20);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab21);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab22);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab23);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab24);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab25);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab255);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab26);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab266);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab2661);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab27);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab28);
            //adicionar a frase no contener do PDF
            collumText.addText(phraseCabecalho);
            // escolhe alinhamento justificado para o objeto collumText
            collumText.setAlignment(3);
            //justifica a primeira linha
            collumText.setAdjustFirstLine(true);
            //dar uma identao de 30pt na primeira linha do collumText
            collumText.setIndent(30);
            //posiciona o collumText na pgina 1
            //collumText.setSimpleColumn(40, 600, 560, 790);
            collumText.setSimpleColumn(40, 600, 560, 790);
            //escreve o collumText no PDF
            collumText.go(false);

            //String textPlacas1 = "III - Os Equipamentos relacionados abaixo sero instalados no(s) Veiculo(s) de placa(s)";
            String textPlacas1 = "III - Os veculo(s) listado(s) a seguir, com sua(s) respectiva(s) data(s) de instalao, so identificado(s) pela(s) placa(s): ";
            String textPlacas2 = listaDePlacasComodato;
            String textPlacas3 = " sendo vedada a remoo do aparelho rastreador desse(s) veiculo(s), sem prvia e expressa anuncia da Contratada, que se dar sempre por escrito,"
                    + " sob pena de aplicao da penalidade prevista por infrao contratual;";
            // ITENS ADICIONADOS A P?GINA 04 //
            // ir adicionar na quarta pgina do PDF resultante
            PdfContentByte placas = stamper.getOverContent(4);
            // cria um objeto que ir acomodar a o PdfContentByte
            ColumnText collumTextPlacas = new ColumnText(placas);
            // definie as configuraes de fonte para o objeto frase
            //BaseFont bfPlacas = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
            //cria uma frase
            Phrase phrasePlacas = new Phrase();
            //adiciona fonte para a frase
            phrasePlacas.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phrasePlacas.add(textPlacas1);
            //adiciona fonte para a frase
            phrasePlacas.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phrasePlacas.add(textPlacas2);
            //adiciona fonte para a frase
            phrasePlacas.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phrasePlacas.add(textPlacas3);
            //adicionar a frase no contener do PDF
            collumTextPlacas.addText(phrasePlacas);
            //dar uma identao de 30pt na primeira linha do collumText
            collumTextPlacas.setIndent(30);
            // escolhe alinhamento justificado para o objeto collumText
            collumTextPlacas.setAlignment(3);
            //justifica a primeira linha
            collumTextPlacas.setAdjustFirstLine(true);
            //posiciona o collumText na pgina 4
            collumTextPlacas.setSimpleColumn(40, 400, 560, 670);
            //escreve o collumText no PDF
            collumTextPlacas.go(false);

            // ITENS ADICIONADOS A P?GINA 06 //
            String dia = new SimpleDateFormat("dd").format(dataAtual);
            String ano = new SimpleDateFormat("yyyy").format(dataAtual);
            //form.setFieldProperty("txtDataLocal", "txtDataLocal", PdfFormField., inst);
            int mes = dataAtual.getMonth();
            String mesEscrito = null;
            switch (mes) {
            case 0:
                mesEscrito = "janeiro";
                break;
            case 1:
                mesEscrito = "fevereiro";
                break;
            case 2:
                mesEscrito = "maro";
                break;
            case 3:
                mesEscrito = "abril";
                break;
            case 4:
                mesEscrito = "maio";
                break;
            case 5:
                mesEscrito = "junho";
                break;
            case 6:
                mesEscrito = "julho";
                break;
            case 7:
                mesEscrito = "agosto";
                break;
            case 8:
                mesEscrito = "setembro";
                break;
            case 9:
                mesEscrito = "outubro";
                break;
            case 10:
                mesEscrito = "novembro";
                break;
            case 11:
                mesEscrito = "dezembro";
                break;
            }
            String textRodape1 = "Fica eleito o foro da Comarca de ";
            String textRodape12 = cidadeUn.toUpperCase();
            String textRodape121 = ", estado do ";
            String textRodape122 = nomeEstadoUn.toUpperCase();
            String textRodape123 = ", para dirimir eventuais dvidas oriundas do presente contrato, "
                    + "quer na sua aplicao ou interpretao, com renncia a qualquer outro por mais "
                    + "privilegiado que seja. E por estarem assim compromissados, firmam o presente termo "
                    + "em 02 (duas) vias de igual teor e forma na presena de 2 (duas) testemunhas abaixo assinadas.";

            String textRodape2 = cidadeUn + " , " + nomeEstadoUn + "    " + dia + "  de  " + mesEscrito + "  de  "
                    + ano + ".";
            String textRodape3 = autoMaster + "\n" + cnpjUn;
            String textRodape4 = clienteAuxiliar.get(0).get("nomeCliente") + "\n"
                    + ((tipoCliente == 1) ? "CPF: " + formataCPF(cpfCnpj) : "CNPJ: " + formataCNPJ(cpfCnpj));
            // ir adicionar na quarta pgina do PDF resultante
            PdfContentByte rodape = stamper.getOverContent(6);
            // cria um objeto que ir acomodar a o PdfContentByte
            ColumnText collumTextRodape1 = new ColumnText(rodape);
            //cria uma frase
            Phrase phraseRadape1 = new Phrase();
            //adiciona fonte para a frase
            phraseRadape1.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseRadape1.add(textRodape1);
            //adiciona fonte para a frase
            phraseRadape1.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseRadape1.add(textRodape12);
            //adiciona fonte para a frase
            phraseRadape1.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseRadape1.add(textRodape121);
            //adiciona fonte para a frase
            phraseRadape1.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseRadape1.add(textRodape122);
            //adiciona fonte para a frase
            phraseRadape1.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseRadape1.add(textRodape123);
            //adicionar a frase no contener do PDF
            collumTextRodape1.addText(phraseRadape1);
            //dar uma identao de 30pt na primeira linha do collumText
            collumTextRodape1.setIndent(30);
            // escolhe alinhamento justificado para o objeto collumText
            collumTextRodape1.setAlignment(3);
            //justifica a primeira linha
            collumTextRodape1.setAdjustFirstLine(true);
            //posiciona o collumText na pgina 4
            //collumTextRodape1.setSimpleColumn(40, 320, 560, 420);
            collumTextRodape1.setSimpleColumn(40, 380, 560, 480);
            //escreve o collumText no PDF
            collumTextRodape1.go(false);

            // cria um objeto que ir acomodar a o PdfContentByte
            ColumnText collumTextRodape2 = new ColumnText(rodape);
            //cria uma frase
            Phrase phraseRadape2 = new Phrase();
            //adiciona fonte para a frase
            phraseRadape2.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseRadape2.add(textRodape2);
            //adicionar a frase no contener do PDF
            collumTextRodape2.addText(phraseRadape2);
            //dar uma identao de 30pt na primeira linha do collumText
            collumTextRodape2.setIndent(30);
            // escolhe alinhamento justificado para o objeto collumText
            collumTextRodape2.setAlignment(2);
            //justifica a primeira linha
            collumTextRodape2.setAdjustFirstLine(true);
            //posiciona o collumText na pgina 4
            //collumTextRodape2.setSimpleColumn(40, 220, 560, 320);
            collumTextRodape2.setSimpleColumn(40, 280, 560, 400);
            //escreve o collumText no PDF
            collumTextRodape2.go(false);

            // cria um objeto que ir acomodar a o PdfContentByte
            ColumnText collumTextRodape3 = new ColumnText(rodape);
            //cria uma frase
            Phrase phraseRadape3 = new Phrase();
            //adiciona fonte para a frase
            phraseRadape3.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseRadape3.add(textRodape3);
            //adicionar a frase no contener do PDF
            collumTextRodape3.addText(phraseRadape3);
            //dar uma identao de 30pt na primeira linha do collumText
            collumTextRodape3.setIndent(30);
            // escolhe alinhamento justificado para o objeto collumText
            collumTextRodape3.setAlignment(1);
            //justifica a primeira linha
            collumTextRodape3.setAdjustFirstLine(true);
            //posiciona o collumText na pgina 4
            //collumTextRodape3.setSimpleColumn(250, 130, 600, 230);
            collumTextRodape3.setSimpleColumn(250, 200, 600, 300);
            //escreve o collumText no PDF
            collumTextRodape3.go(false);

            // cria um objeto que ir acomodar a o PdfContentByte
            ColumnText collumTextRodape4 = new ColumnText(rodape);
            //cria uma frase
            Phrase phraseRadape4 = new Phrase();
            //adiciona fonte para a frase
            phraseRadape4.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseRadape4.add(textRodape4);
            //adicionar a frase no contener do PDF
            collumTextRodape4.addText(phraseRadape4);
            //dar uma identao de 30pt na primeira linha do collumText
            collumTextRodape4.setIndent(15);
            // escolhe alinhamento justificado para o objeto collumText
            collumTextRodape4.setAlignment(1);
            //justifica a primeira linha
            collumTextRodape4.setAdjustFirstLine(true);
            //posiciona o collumText na pgina 4
            //collumTextRodape4.setSimpleColumn(15, 130, 250, 230);
            collumTextRodape4.setSimpleColumn(25, 200, 200, 300);
            //escreve o collumText no PDF
            collumTextRodape4.go(false);
            stamper.close();
            reader.close();

            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            response.setHeader("Expires", "0");
            response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
            response.setHeader("Pragma", "public");
            // setting the content type
            response.setContentType("application/pdf");
            response.setHeader("Content-Disposition", "attachment; filename=\"Contrato.pdf\"");
            //response.addHeader("Content-Disposition", "attachment; filename=ContratoPf.pdf");
            // the contentlength
            response.setContentLength(baos.size());
            // write ByteArrayOutputStream to the ServletOutputStream
            //OutputStream os = response.getOutputStream();
            baos.writeTo(os);
            os.flush();
            os.close();
        } catch (DocumentException e) {
            throw new IOException(e.getMessage());
        }
    }

    public void contratoVenda(HttpServletRequest request, HttpServletResponse response) throws IOException {
        try {

            PdfReader reader = new PdfReader(url + "/contratos/contrato_venda.pdf");
            //PDF resultante
            OutputStream os = response.getOutputStream();
            PdfStamper stamper = new PdfStamper(reader, os);
            // ir adicionar na primeira pgina do PDF resultante
            PdfContentByte cabecalho = stamper.getOverContent(1);
            // cria um objeto que ir acomodar a o PdfContentByte
            ColumnText collumText = new ColumnText(cabecalho);
            // definie as configuraes de fonte para o objeto frase
            BaseFont normal = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
            BaseFont negrito = BaseFont.createFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
            //cria uma frase
            Phrase phraseCabecalho = new Phrase();
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab1);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab2);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab3);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab4);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab5);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab6);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab7);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab8);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab9);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab10);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab11);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab12);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab13);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab14);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab15);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab16);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab17);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab18);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab19);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab20);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab21);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab22);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab23);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab24);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab25);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab255);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab26);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab266);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab2661);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab27);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab28);
            //adicionar a frase no contener do PDF
            collumText.addText(phraseCabecalho);
            // escolhe alinhamento justificado para o objeto collumText
            collumText.setAlignment(3);
            //justifica a primeira linha
            collumText.setAdjustFirstLine(true);
            //dar uma identao de 30pt na primeira linha do collumText
            collumText.setIndent(30);
            //posiciona o collumText na pgina 1
            collumText.setSimpleColumn(40, 560, 560, 760);
            //escreve o collumText no PDF
            collumText.go(false);
            // ITENS ADICIONADOS A P?GINA 04 //
            // ir adicionar na quarta pgina do PDF resultante
            PdfContentByte placas = stamper.getOverContent(4);
            // cria um objeto que ir acomodar a o PdfContentByte
            ColumnText collumTextPlacas = new ColumnText(placas);
            // definie as configuraes de fonte para o objeto frase
            //BaseFont bfPlacas = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
            //String textPlacas1 = "3.1 - Os Equipamentos relacionados abaixo sero instalados no(s) Veiculo(s) de placa(s) ";
            String textPlacas1 = "3.1 - Os veculo(s) listado(s) a seguir, com sua(s) respectiva(s) data(s) de instalao, so identificado(s) pela(s) placa(s): ";
            String textPlacas2 = listaDePlacasVenda;
            String textPlacas3 = " sendo vedada a remoo do aparelho rastreador desse(s) veiculo(s), sem prvia e expressa anuncia da Contratada, "
                    + "que se dar sempre por escrito, sob pena de aplicao da penalidade prevista por infrao contratual;";
            //cria uma frase
            Phrase phrasePlacas = new Phrase();
            //adiciona fonte para a frase
            phrasePlacas.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phrasePlacas.add(textPlacas1);
            //adiciona fonte para a frase
            phrasePlacas.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phrasePlacas.add(textPlacas2);
            //adiciona fonte para a frase
            phrasePlacas.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phrasePlacas.add(textPlacas3);
            //adicionar a frase no contener do PDF
            collumTextPlacas.addText(phrasePlacas);
            //dar uma identao de 30pt na primeira linha do collumText
            collumTextPlacas.setIndent(30);
            // escolhe alinhamento justificado para o objeto collumText
            collumTextPlacas.setAlignment(3);
            //justifica a primeira linha
            collumTextPlacas.setAdjustFirstLine(true);
            //posiciona o collumText na pgina 4
            collumTextPlacas.setSimpleColumn(40, 600, 560, 800);
            //escreve o collumText no PDF
            collumTextPlacas.go(false);

            // ITENS ADICIONADOS A P?GINA 06 //
            String dia = new SimpleDateFormat("dd").format(dataAtual);
            String ano = new SimpleDateFormat("yyyy").format(dataAtual);
            //form.setFieldProperty("txtDataLocal", "txtDataLocal", PdfFormField., inst);
            int mes = dataAtual.getMonth();
            String mesEscrito = null;
            switch (mes) {
            case 0:
                mesEscrito = "janeiro";
                break;
            case 1:
                mesEscrito = "fevereiro";
                break;
            case 2:
                mesEscrito = "maro";
                break;
            case 3:
                mesEscrito = "abril";
                break;
            case 4:
                mesEscrito = "maio";
                break;
            case 5:
                mesEscrito = "junho";
                break;
            case 6:
                mesEscrito = "julho";
                break;
            case 7:
                mesEscrito = "agosto";
                break;
            case 8:
                mesEscrito = "setembro";
                break;
            case 9:
                mesEscrito = "outubro";
                break;
            case 10:
                mesEscrito = "novembro";
                break;
            case 11:
                mesEscrito = "dezembro";
                break;
            }
            String textRodape1 = "Fica eleito o foro da Comarca de ";
            String textRodape12 = cidadeUn.toUpperCase();
            String textRodape121 = ", estado do ";
            String textRodape122 = nomeEstadoUn.toUpperCase();
            String textRodape123 = ", para dirimir eventuais dvidas oriundas do presente contrato, "
                    + "quer na sua aplicao ou interpretao, com renncia a qualquer outro por mais "
                    + "privilegiado que seja. E por estarem assim compromissados, firmam o presente termo "
                    + "em 02 (duas) vias de igual teor e forma na presena de 2 (duas) testemunhas abaixo assinadas.";

            String textRodape2 = cidadeUn + " , " + nomeEstadoUn + "    " + dia + "  de  " + mesEscrito + "  de  "
                    + ano + ".";
            String textRodape3 = autoMaster + "\n" + cnpjUn;
            String textRodape4 = clienteAuxiliar.get(0).get("nomeCliente") + "\n"
                    + ((tipoCliente == 1) ? "CPF: " + formataCPF(cpfCnpj) : "CNPJ: " + formataCNPJ(cpfCnpj));
            // ir adicionar na quarta pgina do PDF resultante
            PdfContentByte rodape = stamper.getOverContent(6);
            // cria um objeto que ir acomodar a o PdfContentByte
            ColumnText collumTextRodape1 = new ColumnText(rodape);
            //cria uma frase
            Phrase phraseRadape1 = new Phrase();
            //adiciona fonte para a frase
            phraseRadape1.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseRadape1.add(textRodape1);
            //adiciona fonte para a frase
            phraseRadape1.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseRadape1.add(textRodape12);
            //adiciona fonte para a frase
            phraseRadape1.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseRadape1.add(textRodape121);
            //adiciona fonte para a frase
            phraseRadape1.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseRadape1.add(textRodape122);
            //adiciona fonte para a frase
            phraseRadape1.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseRadape1.add(textRodape123);
            //adicionar a frase no contener do PDF
            collumTextRodape1.addText(phraseRadape1);
            //dar uma identao de 30pt na primeira linha do collumText
            collumTextRodape1.setIndent(30);
            // escolhe alinhamento justificado para o objeto collumText
            collumTextRodape1.setAlignment(3);
            //justifica a primeira linha
            collumTextRodape1.setAdjustFirstLine(true);
            //posiciona o collumText na pgina 4
            collumTextRodape1.setSimpleColumn(40, 580, 560, 780);
            //escreve o collumText no PDF
            collumTextRodape1.go(false);

            // cria um objeto que ir acomodar a o PdfContentByte
            ColumnText collumTextRodape2 = new ColumnText(rodape);
            //cria uma frase
            Phrase phraseRadape2 = new Phrase();
            //adiciona fonte para a frase
            phraseRadape2.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseRadape2.add(textRodape2);
            //adicionar a frase no contener do PDF
            collumTextRodape2.addText(phraseRadape2);
            //dar uma identao de 30pt na primeira linha do collumText
            collumTextRodape2.setIndent(30);
            // escolhe alinhamento justificado para o objeto collumText
            collumTextRodape2.setAlignment(2);
            //justifica a primeira linha
            collumTextRodape2.setAdjustFirstLine(true);
            //posiciona o collumText na pgina 4
            collumTextRodape2.setSimpleColumn(40, 580, 560, 680);
            //escreve o collumText no PDF
            collumTextRodape2.go(false);

            // cria um objeto que ir acomodar a o PdfContentByte
            ColumnText collumTextRodape3 = new ColumnText(rodape);
            //cria uma frase
            Phrase phraseRadape3 = new Phrase();
            //adiciona fonte para a frase
            phraseRadape3.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseRadape3.add(textRodape3);
            //adicionar a frase no contener do PDF
            collumTextRodape3.addText(phraseRadape3);
            //dar uma identao de 30pt na primeira linha do collumText
            collumTextRodape3.setIndent(30);
            // escolhe alinhamento justificado para o objeto collumText
            collumTextRodape3.setAlignment(1);
            //justifica a primeira linha
            collumTextRodape3.setAdjustFirstLine(true);
            //posiciona o collumText na pgina 4
            collumTextRodape3.setSimpleColumn(250, 460, 600, 560);
            //escreve o collumText no PDF
            collumTextRodape3.go(false);

            // cria um objeto que ir acomodar a o PdfContentByte
            ColumnText collumTextRodape4 = new ColumnText(rodape);
            //cria uma frase
            Phrase phraseRadape4 = new Phrase();
            //adiciona fonte para a frase
            phraseRadape4.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseRadape4.add(textRodape4);
            //adicionar a frase no contener do PDF
            collumTextRodape4.addText(phraseRadape4);
            //dar uma identao de 30pt na primeira linha do collumText
            collumTextRodape4.setIndent(15);
            // escolhe alinhamento justificado para o objeto collumText
            collumTextRodape4.setAlignment(1);
            //justifica a primeira linha
            collumTextRodape4.setAdjustFirstLine(true);
            //posiciona o collumText na pgina 4
            collumTextRodape4.setSimpleColumn(15, 460, 250, 560);
            //escreve o collumText no PDF
            collumTextRodape4.go(false);

            stamper.close();
            reader.close();

            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            response.setHeader("Expires", "0");
            response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
            response.setHeader("Pragma", "public");
            // setting the content type
            response.setContentType("application/pdf");
            response.setHeader("Content-Disposition", "attachment; filename=\"Contrato.pdf\"");
            //response.addHeader("Content-Disposition", "attachment; filename=ContratoPf.pdf");
            // the contentlength
            response.setContentLength(baos.size());
            // write ByteArrayOutputStream to the ServletOutputStream
            //OutputStream os = response.getOutputStream();
            baos.writeTo(os);
            os.flush();
            os.close();
        } catch (DocumentException e) {
            throw new IOException(e.getMessage());
        }
    }

    public void contratoLocacaoVenda(HttpServletRequest request, HttpServletResponse response) throws IOException {
        try {

            // PDF que  o template da aplicao
            PdfReader reader = new PdfReader(url + "/contratos/contrato_locacao_venda.pdf");
            //PDF resultante
            OutputStream os = response.getOutputStream();
            //PDF resultante
            PdfStamper stamper = new PdfStamper(reader, os);

            // ir adicionar na primeira pgina do PDF resultante
            PdfContentByte cabecalho = stamper.getOverContent(1);
            // cria um objeto que ir acomodar a o PdfContentByte
            ColumnText collumText = new ColumnText(cabecalho);
            // definie as configuraes de fonte para o objeto frase
            BaseFont normal = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
            BaseFont negrito = BaseFont.createFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
            //cria uma frase
            Phrase phraseCabecalho = new Phrase();
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab1);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab2);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab3);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab4);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab5);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab6);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab7);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab8);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab9);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab10);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab11);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab12);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab13);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab14);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab15);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab16);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab17);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab18);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab19);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab20);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab21);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab22);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab23);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab24);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab25);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab255);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab26);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab266);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab2661);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab27);
            //adiciona fonte para a frase
            phraseCabecalho.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalho.add(cab28);
            //adicionar a frase no contener do PDF
            collumText.addText(phraseCabecalho);
            // escolhe alinhamento justificado para o objeto collumText
            collumText.setAlignment(3);
            //justifica a primeira linha
            collumText.setAdjustFirstLine(true);
            //dar uma identao de 30pt na primeira linha do collumText
            collumText.setIndent(30);
            //posiciona o collumText na pgina 1
            collumText.setSimpleColumn(40, 600, 560, 790);
            //escreve o collumText no PDF
            collumText.go(false);
            String textPlacas1 = "III - Os veculo(s) listado(s) a seguir, com sua(s) respectiva(s) data(s) de instalao, so identificado(s) pela(s) placa(s): ";
            String textPlacas2 = listaDePlacasComodato;
            String textPlacas3 = " sendo vedada a remoo do aparelho rastreador desse(s) veiculo(s), sem prvia e expressa anuncia da Contratada, que se dar sempre por escrito,"
                    + " sob pena de aplicao da penalidade prevista por infrao contratual;";
            // ITENS ADICIONADOS A P?GINA 04 //
            // ir adicionar na quarta pgina do PDF resultante
            PdfContentByte placas = stamper.getOverContent(4);
            // cria um objeto que ir acomodar a o PdfContentByte
            ColumnText collumTextPlacas = new ColumnText(placas);
            // definie as configuraes de fonte para o objeto frase
            //BaseFont bfPlacas = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
            //cria uma frase
            Phrase phrasePlacas = new Phrase();
            //adiciona fonte para a frase
            phrasePlacas.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phrasePlacas.add(textPlacas1);
            //adiciona fonte para a frase
            phrasePlacas.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phrasePlacas.add(textPlacas2);
            //adiciona fonte para a frase
            phrasePlacas.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phrasePlacas.add(textPlacas3);
            //adicionar a frase no contener do PDF
            collumTextPlacas.addText(phrasePlacas);
            //dar uma identao de 30pt na primeira linha do collumText
            collumTextPlacas.setIndent(30);
            // escolhe alinhamento justificado para o objeto collumText
            collumTextPlacas.setAlignment(3);
            //justifica a primeira linha
            collumTextPlacas.setAdjustFirstLine(true);
            //posiciona o collumText na pgina 4
            collumTextPlacas.setSimpleColumn(40, 400, 560, 670);
            //escreve o collumText no PDF
            collumTextPlacas.go(false);

            // ITENS ADICIONADOS A P?GINA 06 //
            String dia = new SimpleDateFormat("dd").format(dataAtual);
            String ano = new SimpleDateFormat("yyyy").format(dataAtual);
            //form.setFieldProperty("txtDataLocal", "txtDataLocal", PdfFormField., inst);
            int mes = dataAtual.getMonth();
            String mesEscrito = null;
            switch (mes) {
            case 0:
                mesEscrito = "janeiro";
                break;
            case 1:
                mesEscrito = "fevereiro";
                break;
            case 2:
                mesEscrito = "maro";
                break;
            case 3:
                mesEscrito = "abril";
                break;
            case 4:
                mesEscrito = "maio";
                break;
            case 5:
                mesEscrito = "junho";
                break;
            case 6:
                mesEscrito = "julho";
                break;
            case 7:
                mesEscrito = "agosto";
                break;
            case 8:
                mesEscrito = "setembro";
                break;
            case 9:
                mesEscrito = "outubro";
                break;
            case 10:
                mesEscrito = "novembro";
                break;
            case 11:
                mesEscrito = "dezembro";
                break;
            }
            String textRodape1 = "Fica eleito o foro da Comarca de ";
            String textRodape12 = cidadeUn.toUpperCase();
            String textRodape121 = ", estado do ";
            String textRodape122 = nomeEstadoUn.toUpperCase();
            String textRodape123 = ", para dirimir eventuais dvidas oriundas do presente contrato, "
                    + "quer na sua aplicao ou interpretao, com renncia a qualquer outro por mais "
                    + "privilegiado que seja. E por estarem assim compromissados, firmam o presente termo "
                    + "em 02 (duas) vias de igual teor e forma na presena de 2 (duas) testemunhas abaixo assinadas.";

            String textRodape2 = cidadeUn + " , " + nomeEstadoUn + "    " + dia + "  de  " + mesEscrito + "  de  "
                    + ano + ".";
            String textRodape3 = autoMaster + "\n" + cnpjUn;
            String textRodape4 = clienteAuxiliar.get(0).get("nomeCliente") + "\n"
                    + ((tipoCliente == 1) ? "CPF: " + formataCPF(cpfCnpj) : "CNPJ: " + formataCNPJ(cpfCnpj));
            // ir adicionar na quarta pgina do PDF resultante
            PdfContentByte rodape = stamper.getOverContent(6);
            // cria um objeto que ir acomodar a o PdfContentByte
            ColumnText collumTextRodape1 = new ColumnText(rodape);
            //cria uma frase
            Phrase phraseRadape1 = new Phrase();
            //adiciona fonte para a frase
            phraseRadape1.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseRadape1.add(textRodape1);
            //adiciona fonte para a frase
            phraseRadape1.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseRadape1.add(textRodape12);
            //adiciona fonte para a frase
            phraseRadape1.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseRadape1.add(textRodape121);
            //adiciona fonte para a frase
            phraseRadape1.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseRadape1.add(textRodape122);
            //adiciona fonte para a frase
            phraseRadape1.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseRadape1.add(textRodape123);
            //adicionar a frase no contener do PDF
            collumTextRodape1.addText(phraseRadape1);
            //dar uma identao de 30pt na primeira linha do collumText
            collumTextRodape1.setIndent(30);
            // escolhe alinhamento justificado para o objeto collumText
            collumTextRodape1.setAlignment(3);
            //justifica a primeira linha
            collumTextRodape1.setAdjustFirstLine(true);
            //posiciona o collumText na pgina 4
            //collumTextRodape1.setSimpleColumn(40, 320, 560, 420);
            collumTextRodape1.setSimpleColumn(40, 380, 560, 480);
            //escreve o collumText no PDF
            collumTextRodape1.go(false);

            // cria um objeto que ir acomodar a o PdfContentByte
            ColumnText collumTextRodape2 = new ColumnText(rodape);
            //cria uma frase
            Phrase phraseRadape2 = new Phrase();
            //adiciona fonte para a frase
            phraseRadape2.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseRadape2.add(textRodape2);
            //adicionar a frase no contener do PDF
            collumTextRodape2.addText(phraseRadape2);
            //dar uma identao de 30pt na primeira linha do collumText
            collumTextRodape2.setIndent(30);
            // escolhe alinhamento justificado para o objeto collumText
            collumTextRodape2.setAlignment(2);
            //justifica a primeira linha
            collumTextRodape2.setAdjustFirstLine(true);
            //posiciona o collumText na pgina 4
            //collumTextRodape2.setSimpleColumn(40, 220, 560, 320);
            collumTextRodape2.setSimpleColumn(40, 280, 560, 400);
            //escreve o collumText no PDF
            collumTextRodape2.go(false);

            // cria um objeto que ir acomodar a o PdfContentByte
            ColumnText collumTextRodape3 = new ColumnText(rodape);
            //cria uma frase
            Phrase phraseRadape3 = new Phrase();
            //adiciona fonte para a frase
            phraseRadape3.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseRadape3.add(textRodape3);
            //adicionar a frase no contener do PDF
            collumTextRodape3.addText(phraseRadape3);
            //dar uma identao de 30pt na primeira linha do collumText
            collumTextRodape3.setIndent(30);
            // escolhe alinhamento justificado para o objeto collumText
            collumTextRodape3.setAlignment(1);
            //justifica a primeira linha
            collumTextRodape3.setAdjustFirstLine(true);
            //posiciona o collumText na pgina 4
            //collumTextRodape3.setSimpleColumn(250, 130, 600, 230);
            collumTextRodape3.setSimpleColumn(250, 200, 600, 300);
            //escreve o collumText no PDF
            collumTextRodape3.go(false);

            // cria um objeto que ir acomodar a o PdfContentByte
            ColumnText collumTextRodape4 = new ColumnText(rodape);
            //cria uma frase
            Phrase phraseRadape4 = new Phrase();
            //adiciona fonte para a frase
            phraseRadape4.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseRadape4.add(textRodape4);
            //adicionar a frase no contener do PDF
            collumTextRodape4.addText(phraseRadape4);
            //dar uma identao de 30pt na primeira linha do collumText
            collumTextRodape4.setIndent(15);
            // escolhe alinhamento justificado para o objeto collumText
            collumTextRodape4.setAlignment(1);
            //justifica a primeira linha
            collumTextRodape4.setAdjustFirstLine(true);
            //posiciona o collumText na pgina 4
            //collumTextRodape4.setSimpleColumn(15, 130, 250, 230);
            collumTextRodape4.setSimpleColumn(25, 200, 200, 300);
            //escreve o collumText no PDF
            collumTextRodape4.go(false);

            // ir adicionar na primeira pgina do PDF resultante
            PdfContentByte cabecalhoPagina7 = stamper.getOverContent(7);
            // cria um objeto que ir acomodar a o PdfContentByte
            ColumnText collumTextPagina7 = new ColumnText(cabecalhoPagina7);
            // definie as configuraes de fonte para o objeto frase
            //cria uma frase
            Phrase phraseCabecalhoPagina7 = new Phrase();
            //adiciona fonte para a frase
            phraseCabecalhoPagina7.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalhoPagina7.add(cab1);
            //adiciona fonte para a frase
            phraseCabecalhoPagina7.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalhoPagina7.add(cab2);
            //adiciona fonte para a frase
            phraseCabecalhoPagina7.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalhoPagina7.add(cab3);
            //adiciona fonte para a frase
            phraseCabecalhoPagina7.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalhoPagina7.add(cab4);
            //adiciona fonte para a frase
            phraseCabecalhoPagina7.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalhoPagina7.add(cab5);
            //adiciona fonte para a frase
            phraseCabecalhoPagina7.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalhoPagina7.add(cab6);
            //adiciona fonte para a frase
            phraseCabecalhoPagina7.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalhoPagina7.add(cab7);
            //adiciona fonte para a frase
            phraseCabecalhoPagina7.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalhoPagina7.add(cab8);
            //adiciona fonte para a frase
            phraseCabecalhoPagina7.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalhoPagina7.add(cab9);
            //adiciona fonte para a frase
            phraseCabecalhoPagina7.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalhoPagina7.add(cab10);
            //adiciona fonte para a frase
            phraseCabecalhoPagina7.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalhoPagina7.add(cab11);
            //adiciona fonte para a frase
            phraseCabecalhoPagina7.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalhoPagina7.add(cab12);
            //adiciona fonte para a frase
            phraseCabecalhoPagina7.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalhoPagina7.add(cab13);
            //adiciona fonte para a frase
            phraseCabecalhoPagina7.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalhoPagina7.add(cab14);
            //adiciona fonte para a frase
            phraseCabecalhoPagina7.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalhoPagina7.add(cab15);
            //adiciona fonte para a frase
            phraseCabecalhoPagina7.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalhoPagina7.add(cab16);
            //adiciona fonte para a frase
            phraseCabecalhoPagina7.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalhoPagina7.add(cab17);
            //adiciona fonte para a frase
            phraseCabecalhoPagina7.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalhoPagina7.add(cab18);
            //adiciona fonte para a frase
            phraseCabecalhoPagina7.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalhoPagina7.add(cab19);
            //adiciona fonte para a frase
            phraseCabecalhoPagina7.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalhoPagina7.add(cab20);
            //adiciona fonte para a frase
            phraseCabecalhoPagina7.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalhoPagina7.add(cab21);
            //adiciona fonte para a frase
            phraseCabecalhoPagina7.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalhoPagina7.add(cab22);
            //adiciona fonte para a frase
            phraseCabecalhoPagina7.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalhoPagina7.add(cab23);
            //adiciona fonte para a frase
            phraseCabecalhoPagina7.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalhoPagina7.add(cab24);
            //adiciona fonte para a frase
            phraseCabecalhoPagina7.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalhoPagina7.add(cab25);
            //adiciona fonte para a frase
            phraseCabecalhoPagina7.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalhoPagina7.add(cab255);
            //adiciona fonte para a frase
            phraseCabecalhoPagina7.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalhoPagina7.add(cab26);
            //adiciona fonte para a frase
            phraseCabecalhoPagina7.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalhoPagina7.add(cab266);
            //adiciona fonte para a frase
            phraseCabecalhoPagina7.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalhoPagina7.add(cab2661);
            //adiciona fonte para a frase
            phraseCabecalhoPagina7.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalhoPagina7.add(cab27);
            //adiciona fonte para a frase
            phraseCabecalhoPagina7.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseCabecalhoPagina7.add(cab28);
            //adicionar a frase no contener do PDF
            collumTextPagina7.addText(phraseCabecalhoPagina7);
            // escolhe alinhamento justificado para o objeto collumText
            collumTextPagina7.setAlignment(3);
            //justifica a primeira linha
            collumTextPagina7.setAdjustFirstLine(true);
            //dar uma identao de 30pt na primeira linha do collumText
            collumTextPagina7.setIndent(30);
            //posiciona o collumText na pgina 1
            collumTextPagina7.setSimpleColumn(40, 570, 560, 770);
            //escreve o collumText no PDF
            collumTextPagina7.go(false);

            String textPlacasVenda1 = "3.1 - Os veculo(s) listado(s) a seguir, com sua(s) respectiva(s) data(s) de instalao, so identificado(s) pela(s) placa(s): ";
            String textPlacasVenda2 = listaDePlacasVenda;
            String textPlacasVenda3 = " sendo vedada a remoo do aparelho rastreador desse(s)veiculo(s), sem prvia e expressa anuncia da Contratada, "
                    + "que se dar sempre por escrito, sob pena de aplicao da penalidade prevista por infrao contratual;";

            // ITENS ADICIONADOS A P?GINA 10 //
            // ir adicionar na quarta pgina do PDF resultante
            PdfContentByte placasVenda = stamper.getOverContent(10);
            // cria um objeto que ir acomodar a o PdfContentByte
            ColumnText collumTextPlacasVenda = new ColumnText(placasVenda);
            // definie as configuraes de fonte para o objeto frase
            //BaseFont bfPlacas = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
            //cria uma frase
            Phrase phrasePlacasVenda = new Phrase();
            //adiciona fonte para a frase
            phrasePlacasVenda.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phrasePlacasVenda.add(textPlacasVenda1);
            //adiciona fonte para a frase
            phrasePlacasVenda.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phrasePlacasVenda.add(textPlacasVenda2);
            //adiciona fonte para a frase
            phrasePlacasVenda.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phrasePlacasVenda.add(textPlacasVenda3);
            //adicionar a frase no contener do PDF
            collumTextPlacasVenda.addText(phrasePlacasVenda);
            //dar uma identao de 30pt na primeira linha do collumText
            collumTextPlacasVenda.setIndent(30);
            // escolhe alinhamento justificado para o objeto collumText
            collumTextPlacasVenda.setAlignment(3);
            //justifica a primeira linha
            collumTextPlacasVenda.setAdjustFirstLine(true);
            //posiciona o collumText na pgina 4
            collumTextPlacasVenda.setSimpleColumn(40, 570, 560, 770);
            //escreve o collumText no PDF
            collumTextPlacasVenda.go(false);

            // ir adicionar na quarta pgina do PDF resultante
            PdfContentByte rodapeVenda = stamper.getOverContent(12);
            // cria um objeto que ir acomodar a o PdfContentByte
            ColumnText collumTextRodapeVenda1 = new ColumnText(rodapeVenda);
            //cria uma frase
            Phrase phraseRadapeVenda1 = new Phrase();
            //adiciona fonte para a frase
            phraseRadapeVenda1.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseRadapeVenda1.add(textRodape1);
            //adiciona fonte para a frase
            phraseRadapeVenda1.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseRadapeVenda1.add(textRodape12);
            //adiciona fonte para a frase
            phraseRadapeVenda1.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseRadapeVenda1.add(textRodape121);
            //adiciona fonte para a frase
            phraseRadapeVenda1.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseRadapeVenda1.add(textRodape122);
            //adiciona fonte para a frase
            phraseRadapeVenda1.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseRadapeVenda1.add(textRodape123);
            //adicionar a frase no contener do PDF
            collumTextRodapeVenda1.addText(phraseRadapeVenda1);
            //dar uma identao de 30pt na primeira linha do collumText
            collumTextRodapeVenda1.setIndent(30);
            // escolhe alinhamento justificado para o objeto collumText
            collumTextRodapeVenda1.setAlignment(3);
            //justifica a primeira linha
            collumTextRodapeVenda1.setAdjustFirstLine(true);
            //posiciona o collumText na pgina 4
            //collumTextRodapeVenda1.setSimpleColumn(40, 570, 560, 770);
            collumTextRodapeVenda1.setSimpleColumn(40, 560, 560, 760);
            //escreve o collumText no PDF
            collumTextRodapeVenda1.go(false);

            // cria um objeto que ir acomodar a o PdfContentByte
            ColumnText collumTextRodapeVenda2 = new ColumnText(rodapeVenda);
            //cria uma frase
            Phrase phraseRadapeVenda2 = new Phrase();
            //adiciona fonte para a frase
            phraseRadapeVenda2.setFont(new com.itextpdf.text.Font(normal, 9.6f));
            //adiciona a string que ir compor a frase
            phraseRadapeVenda2.add(textRodape2);
            //adicionar a frase no contener do PDF
            collumTextRodapeVenda2.addText(phraseRadapeVenda2);
            //dar uma identao de 30pt na primeira linha do collumText
            collumTextRodapeVenda2.setIndent(30);
            // escolhe alinhamento justificado para o objeto collumText
            collumTextRodapeVenda2.setAlignment(2);
            //justifica a primeira linha
            collumTextRodapeVenda2.setAdjustFirstLine(true);
            //posiciona o collumText na pgina 4
            //collumTextRodapeVenda2.setSimpleColumn(40, 570, 560, 670);
            collumTextRodapeVenda2.setSimpleColumn(40, 560, 560, 660);
            //escreve o collumText no PDF
            collumTextRodapeVenda2.go(false);

            // cria um objeto que ir acomodar a o PdfContentByte
            ColumnText collumTextRodapeVenda3 = new ColumnText(rodapeVenda);
            //cria uma frase
            Phrase phraseRadapeVenda3 = new Phrase();
            //adiciona fonte para a frase
            phraseRadapeVenda3.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseRadapeVenda3.add(textRodape3);
            //adicionar a frase no contener do PDF
            collumTextRodapeVenda3.addText(phraseRadapeVenda3);
            //dar uma identao de 30pt na primeira linha do collumText
            collumTextRodapeVenda3.setIndent(30);
            // escolhe alinhamento justificado para o objeto collumText
            collumTextRodapeVenda3.setAlignment(1);
            //justifica a primeira linha
            collumTextRodapeVenda3.setAdjustFirstLine(true);
            //posiciona o collumText na pgina 4
            //collumTextRodapeVenda3.setSimpleColumn(250, 440, 600, 540);
            collumTextRodapeVenda3.setSimpleColumn(250, 440, 600, 540);
            //escreve o collumText no PDF
            collumTextRodapeVenda3.go(false);

            // cria um objeto que ir acomodar a o PdfContentByte
            ColumnText collumTextRodapeVenda4 = new ColumnText(rodapeVenda);
            //cria uma frase
            Phrase phraseRadapeVenda4 = new Phrase();
            //adiciona fonte para a frase
            phraseRadapeVenda4.setFont(new com.itextpdf.text.Font(negrito, 9.6f));
            //adiciona a string que ir compor a frase
            phraseRadapeVenda4.add(textRodape4);
            //adicionar a frase no contener do PDF
            collumTextRodapeVenda4.addText(phraseRadapeVenda4);
            //dar uma identao de 30pt na primeira linha do collumText
            collumTextRodapeVenda4.setIndent(30);
            // escolhe alinhamento justificado para o objeto collumText
            collumTextRodapeVenda4.setAlignment(1);
            //justifica a primeira linha
            collumTextRodapeVenda4.setAdjustFirstLine(true);
            //posiciona o collumText na pgina 4
            //collumTextRodapeVenda4.setSimpleColumn(20, 440, 250, 540);
            collumTextRodapeVenda4.setSimpleColumn(25, 440, 200, 540);
            //escreve o collumText no PDF
            collumTextRodapeVenda4.go(false);

            stamper.close();
            reader.close();

            ByteArrayOutputStream baos = new ByteArrayOutputStream();

            /*response.setContentType("text/html");
            PrintWriter out = response.getWriter();
                
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Hola</title>");
            out.println("</head>");
            out.println("<body bgcolor=\"white\">");
            out.println("<p><center>URL : Jaca </center></p>");
            //out.println("<p><center>Caminho absoluto : "+getServletContext().getRealPath("/")+"</center></p>");
            out.println("</body>");
            out.println("</html>");*/
            response.setHeader("Expires", "0");
            response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
            response.setHeader("Pragma", "public");
            // setting the content type
            response.setContentType("application/pdf");
            response.setHeader("Content-Disposition", "attachment; filename=\"Contrato.pdf\"");
            response.addHeader("Content-Disposition", "attachment; filename=ContratoPf.pdf");
            // the contentlength
            response.setContentLength(baos.size());
            // write ByteArrayOutputStream to the ServletOutputStream
            //OutputStream os = response.getOutputStream();
            baos.writeTo(os);
            os.flush();
            os.close();
        } catch (DocumentException e) {
            throw new IOException(e.getMessage());
        }
    }

}