Example usage for com.itextpdf.text.pdf PdfReader PdfReader

List of usage examples for com.itextpdf.text.pdf PdfReader PdfReader

Introduction

In this page you can find the example usage for com.itextpdf.text.pdf PdfReader PdfReader.

Prototype

public PdfReader(final PdfReader reader) 

Source Link

Document

Creates an independent duplicate.

Usage

From source file:br.com.smarttaco.util.HelenaBarbosa.java

/**
 * pdf2txt//from  w w  w .  j  a  v  a  2 s  . c  om
 *
 * @param pdf
 * @param paginas se for <code>null</code> realiza leitura completa.
 * @param txt
 * @throws FileNotFoundException
 * @throws IOException
 */
private static void pdf2txt(final String pdf, List<Integer> paginas, final String txt)
        throws FileNotFoundException, IOException {
    PdfReader reader = new PdfReader(pdf);
    //System.out.println(reader.getInfo().toString());
    if (paginas != null) {
        reader.selectPages(paginas);
    }
    PdfReaderContentParser parser = new PdfReaderContentParser(reader);
    PrintWriter out = new PrintWriter(txt, "UTF-8");
    TextExtractionStrategy strategy;
    for (int i = 1; i <= reader.getNumberOfPages(); i++) {
        strategy = parser.processContent(i, new SimpleTextExtractionStrategy());
        out.println(strategy.getResultantText());
    }
    out.flush();
    out.close();
    reader.close();
}

From source file:br.jus.jfpr.Divisor1.java

/**
 * Divide um arquivo inicialmente em 2, testa se o tamanho que todos
 * arquivos ficaram dentro do limite, se no ficaram apaga tudo e recomea
 * dividindo por, 3, 4, 5, etc. at que todos arquivo fiquem dentro do
 * limite/*from  www . j  av a  2s. c  o m*/
 *
 * @param arquivoEntrada O arquivo que ser dividido
 * @param arquivoSaida O nome do arquivo que ser criado
 * @param tamArqSel Tamanho selecionado que devero ficar os arquivos
 * divididos
 * @return String informativa do resultado
 */
public static String dividePDF(File arquivoEntrada, String arquivoSaida, int tamArqSel) {

    int daPagina = 1;
    int paraPagina;
    int tamInicial;
    // FileOutputStream arquivoSair = null;
    String MensagemErro = "ok";
    int fatorDivisao = 2; //Incialmente dividir em 2
    arquivoSaida = arquivoSaida.substring(0, arquivoSaida.indexOf('.')) + "-divido"; //PAra definir o nome do arquivo de sada

    try {
        PdfReader PdfDeEntrada = new PdfReader(arquivoEntrada.getAbsolutePath()); //Para ler o arquivo de entrada
        final int totalPaginas = PdfDeEntrada.getNumberOfPages(); //Verifica o total de pginas
        tamInicial = paraPagina = (totalPaginas / fatorDivisao) + 1; //Define o tamanho (em pginas) do 1 arquivo e em quanto dever incrementar(sero o mesmo)
        PdfImportedPage pagina;

        int i = 1; //Contador simples
        while (i <= fatorDivisao && totalPaginas > fatorDivisao) { //Enquanto no fizer todas as divises
            Document documento = new Document();
            FileOutputStream arquivoSair = new FileOutputStream(arquivoSaida + "-" + i + ".pdf"); //Cria o arquivo, vazio
            PdfWriter writer = PdfWriter.getInstance(documento, arquivoSair); //
            documento.open();
            PdfContentByte PContentByte = writer.getDirectContent();
            while (daPagina <= paraPagina) {
                documento.newPage(); //Aloca uma nova pginA
                pagina = writer.getImportedPage(PdfDeEntrada, daPagina); //Seleciona uma pgina especfica. indicada pelo contador
                PContentByte.addTemplate(pagina, 0, 0); //Adiciona a pagina ao contedo
                daPagina++; //Contador simples
            }
            arquivoSair.flush();
            documento.close(); //Grava o arquivo de sada
            arquivoSair.close();
            File arquivoDest = new File(arquivoSaida + "-" + i + ".pdf");
            if (arquivoDest.length() > tamArqSel) { // O tamanho do arquivo de destino ficou maior do que deveria
                delete(arquivoSaida, i); //Chamar a funo para deletar todos arquivos at a chave i
                daPagina = i = 1; //Para recomear tudo de novo
                fatorDivisao++; //Se um arquivo ficou maior, ento deve aumentar a diviso
                tamInicial = paraPagina = (totalPaginas / fatorDivisao) + 1; //Para recomear tudo de novo
            } else {
                i++; //Continua a divisao
                if (i == fatorDivisao) { //Ou seja, chegou a ultima divisao
                    paraPagina = totalPaginas; //O ultimo arquivo conter mais pginas
                } else {
                    paraPagina += tamInicial; //Cada arquivo ter o mesmo nmero de pginas//Incrementa sempre o tamanho inicial
                }
            }
        }
    } catch (IOException | DocumentException e) {
        System.err.println(e.getMessage());
        MensagemErro = e.getMessage();
    }
    return MensagemErro;
}

From source file:br.unifor.mia.xmpsemantico.xmp.MetadataXmp.java

License:GNU General Public License

/**
 * Reads the XML stream inside a PDF file into an XML file.
 * @param src  A PDF file containing XMP data
 * @param dest XML file containing the XMP data extracted from the PDF
 * @throws IOException/*from  w  w w .  j  ava  2  s  .c  o m*/
 */
public void readXmpMetadata() throws IOException {
    PdfReader reader = new PdfReader(pathPdf);
    FileOutputStream fos = new FileOutputStream(pathXMP);
    byte[] b = reader.getMetadata();
    fos.write(b, 0, b.length);
    fos.flush();
    fos.close();
    reader.close();
}

From source file:ch.kostceco.tools.kostsimy.comparison.modulepdfa.impl.PdfExtractJpegModuleImpl.java

License:Open Source License

/** Parses a PDF and extracts all the images.
 * //from  w ww  .  ja v  a 2 s  .  c  o  m
 * @param src
 *          the source PDF
 * @param dest
 *          the resulting Image */
public void extractImages(String srcPdf, String destImage) throws IOException, DocumentException {
    jpegCounter = 0;
    ccittCounter = 0;
    jp2Counter = 0;
    jbig2Counter = 0;
    try {
        PdfReader reader = new PdfReader(srcPdf);
        PdfReaderContentParser parser = new PdfReaderContentParser(reader);
        MyImageRenderListener listener = new MyImageRenderListener(destImage);
        for (int i = 1; i <= reader.getNumberOfPages(); i++) {
            parser.processContent(i, listener);
        }
        reader.close();
    } catch (IOException e) {
        getMessageService().logError(getTextResourceService().getText(MESSAGE_XML_MODUL_PDF_EXTRACT)
                + getTextResourceService().getText(ERROR_XML_UNKNOWN, e.getMessage()));
    }
}

From source file:ch.kostceco.tools.kostval.validation.modulepdfa.impl.ValidationJimageValidationModuleImpl.java

License:Open Source License

/** Parses a PDF and extracts all the images.
 * // w ww  .  ja  v a 2 s. com
 * @param src
 *          the source PDF
 * @param dest
 *          the resulting PDF */
public void extractImages(String srcPdf, String destImage) throws IOException, DocumentException {
    PdfReader reader = new PdfReader(srcPdf);
    PdfReaderContentParser parser = new PdfReaderContentParser(reader);
    MyImageRenderListener listener = new MyImageRenderListener(destImage);
    for (int i = 1; i <= reader.getNumberOfPages(); i++) {
        parser.processContent(i, listener);
    }
    reader.close();
}

From source file:classes.DocumentSignature.java

public static ByteArrayOutputStream getSignedDocument(Document document) throws Exception {
    ByteArrayOutputStream os = new ByteArrayOutputStream();
    PdfReader reader = new PdfReader(document.getContent());
    PdfStamper stamper = new PdfStamper(reader, os);

    // get all signers of the document
    ArrayList<User> signers = DocumentSignature.getDocumentSigners(document.getDocumentId());

    try {//from   ww w . jav  a 2 s .  c o  m
        for (User signer : signers) {
            if (signer.getSignature() == null) {
                continue;
            }

            // get user signature
            Image signatureImage = Image.getInstance(getImageBytes(signer.getSignature()));

            for (DocumentSignature signature : getDocumentSignatures(document.getDocumentId(),
                    signer.getUserId())) {
                int x = signature.getSignLocationX();
                int y = signature.getSignLocationY();
                //signatureImage.setAbsolutePosition(x, y);
                PdfContentByte canvas = stamper.getOverContent(signature.getPageNumber());

                //System.out.println("bottom: " + canvas.getPdfDocument().bottom());
                //System.out.println("top: " + canvas.getPdfDocument().top());
                //System.out.println("left: " + canvas.getPdfDocument().left());
                //System.out.println("right: " + canvas.getPdfDocument().right());

                //canvas.addImage(signatureImage);
                canvas.addImage(signatureImage, SIGNATURE_IMAGE_WIDTH, 0, 0, SIGNATURE_IMAGE_HEIGHT, x, y);
            }
        }

        return os;
    } finally {
        stamper.close();
    }
}

From source file:co.com.realtech.mariner.util.files.PDFUtils.java

public static File agregarTexto(byte[] bytes, String text) {
    File temp = null;/*from  www.  j a va2 s  . c o m*/
    try {
        temp = File.createTempFile("archivo", ".pdf");
        OutputStream oos = new FileOutputStream(temp);
        Document document = new Document();
        PdfWriter writer = PdfWriter.getInstance(document, oos);
        document.open();
        PdfContentByte cb = writer.getDirectContent();
        ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
        //InputStream targetStream = new FileInputStream(initialFile);
        // Load existing PDF
        PdfReader reader = new PdfReader(bis);
        PdfImportedPage page = writer.getImportedPage(reader, 1);
        // Copy first page of existing PDF into output PDF
        document.setPageSize(reader.getPageSize(1));
        document.newPage();
        cb.addTemplate(page, 0, 0);

        ColumnText ct = new ColumnText(cb);
        Phrase myText = new Phrase(text);
        Font fuente = new Font();
        fuente.setSize(6);
        myText.setFont(fuente);
        ct.setSimpleColumn(myText, 0, -1, document.right(), document.top(), -10, Element.ALIGN_RIGHT);
        ct.go();

        ColumnText ct2 = new ColumnText(cb);
        Phrase myText2 = new Phrase(text);
        Font fuente2 = new Font();
        fuente2.setSize(6);
        myText2.setFont(fuente);
        ct2.setSimpleColumn(myText, 0, -1, document.right(), document.top(), 248, Element.ALIGN_RIGHT);
        ct2.go();

        ColumnText ct3 = new ColumnText(cb);
        Phrase myText3 = new Phrase(text);
        Font fuente3 = new Font();
        fuente3.setSize(6);
        myText3.setFont(fuente);
        ct3.setSimpleColumn(myText, 0, -1, document.right(), document.top(), 505, Element.ALIGN_RIGHT);
        ct3.go();

        document.close();
    } catch (Exception e) {
        System.out.println("e = " + e);
    }
    return temp;
}

From source file:co.unicauca.proyectobase.entidades.MetodosPDF.java

public void manipulatePdf(String src, String dest) throws IOException, DocumentException {
    PdfReader reader = new PdfReader(src);
    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
    HashMap<String, String> info = reader.getInfo();
    info.put("Title", "Hello World stamped");
    info.put("Subject", "Hello World with changed metadata");
    info.put("Keywords", "iText in Action, PdfStamper");
    info.put("Creator", "Silly standalone example");
    info.put("Author", "Also Bruno Lowagie");
    info.put("Cod", codigoFirma("104611024139"));
    stamper.setMoreInfo(info);/*from w ww . jav  a2s. c  o  m*/
    stamper.close();
    reader.close();
}

From source file:com.automaster.autoview.server.servlet.ContratoPfServlet.java

public void contratoComodato(HttpServletRequest request, HttpServletResponse response) throws IOException {
    try {/*from   w w  w.jav a  2 s  . c om*/

        // 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());
    }
}

From source file:com.automaster.autoview.server.servlet.ContratoPfServlet.java

public void contratoVenda(HttpServletRequest request, HttpServletResponse response) throws IOException {
    try {/*from   w  ww  . ja  v  a  2  s.c o  m*/

        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());
    }
}