List of usage examples for com.itextpdf.text.pdf PdfStamper getOverContent
public PdfContentByte getOverContent(final int pageNum)
PdfContentByte
to write over the page of the original document. From source file:com.automaster.autoview.server.servlet.ContratoPfServlet.java
public void contratoLocacaoVenda(HttpServletRequest request, HttpServletResponse response) throws IOException { try {/*w w w . ja v a 2 s . c o m*/ // 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()); } }
From source file:com.automaster.autoview.server.servlet.LendoTemplateContratoLocacao.java
public static void main(String[] args) throws IOException, DocumentException { //String placa = request.getParameter("placa"); //criando map que ir adicionar as informaes do cliente ArrayList<TreeMap<String, String>> clienteAuxiliar = new ArrayList<TreeMap<String, String>>(); int codCliente = Integer.parseInt("1"); int tipoCliente = Integer.parseInt("1"); String cpfCnpj = "01370797290"; // busca no BD as informaes do cliente ClienteDAO clienteDAO = null;/*from www . j a v a 2 s . co m*/ clienteDAO = new ClienteDAO(); TreeMap<String, ArrayList<TreeMap<String, String>>> cliente = clienteDAO.buscarPorCodCliente(codCliente); //guarda no map auxiliar clienteAuxiliar = cliente.get(cliente.firstKey()); //variveis de endereo do cliente String logradouro = null; String bairro = null; String numero = null; String cidade = null; String cep = null; String uf = null; String nomeEstado = null; //busca no BD aas informaes da unidade UnidadeDAO unidadeDAO = new UnidadeDAO(); int codUnidade = Integer.parseInt("1"); //guarda no map as informaes da unidade TreeMap<String, String> unidade = unidadeDAO.buscarPorCodUnidadeCompleta(codUnidade); //vaiveis que iro guardar as informaes da unidade String autoMaster = "AUTO MASTER LTDA"; String cnpjUn = formataCNPJ(unidade.get("cnpj")); String cidadeUn = unidade.get("nomeCidade"); String nomeEstadoUn = unidade.get("nomeCompletoEstado"); String ufUn = unidade.get("nomeEstado"); String logradouroUn = unidade.get("logradouro"); String numeroUn = unidade.get("numero"); String bairroUn = unidade.get("bairro"); // pega a data atual do sistema Date dataAtual = new Date(System.currentTimeMillis()); //System.out.println("Cliente auxiliar :"+clienteAuxiliar); //busca no BD as informaes de endereo do cliente TreeMap<String, String> endAuxiliar = new TreeMap<String, String>(); 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"); bairro = ends.get("bairro"); numero = ends.get("numeroEndereco"); cidade = ends.get("nomeCidade"); cep = ends.get("cep"); uf = ends.get("estadoUf"); nomeEstado = ends.get("nomeEstado"); endAuxiliar.put(ends.get("codEndereco"), ends.get("codEndereco")); //System.out.println("Linha 02!!"); } index++; } // montando a string que ir compor o cabealho do contrato String cab1 = "Pelo presente instrumento particular, de um lado "; String cab2 = autoMaster; String cab3 = ", atuante no setor de segurana de monitoramento de veculos, inscrita no "; String cab4 = "CNPJ: " + cnpjUn; String cab5 = " localizada na "; String cab6 = logradouroUn; String cab7 = " n "; String cab8 = numeroUn; String cab9 = ", "; String cab10 = bairroUn; String cab11 = ", "; String cab12 = cidadeUn; String cab13 = "/"; String cab14 = ufUn; String cab15 = ", doravante "; String cab16 = "designada simplesmente "; String cab17 = "AUTO MASTER MONITORAMENTO"; String cab18 = ", e de outro lado "; String cab19 = clienteAuxiliar.get(0).get("nomeCliente") + ((tipoCliente == 1) ? ", CPF: " + formataCPF(cpfCnpj) : ", CNPJ: " + formataCNPJ(cpfCnpj)); String cab20 = " localizado a "; String cab21 = logradouro; String cab22 = ", bairro: "; String cab23 = bairro; String cab24 = ", N "; String cab25 = numero; String cab255 = ", CIDADE : "; String cab26 = cidade; String cab266 = ", CEP : "; String cab2661 = cep; String cab27 = ", adquirente do RASTREADOR PARA AUTOS AUTO MASTER, "; String 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 String listaDePlacas = ""; SimpleDateFormat formatadorData = new SimpleDateFormat("dd/MM/yyyy"); for (int i = 0; i < veiculos.size(); i++) { if (i == veiculos.size() - 1) { Date dataAdesao = new Date(Long.parseLong(veiculos.get(i).get("dataAdesao"))); String dataAdesaoFormata = formatadorData.format(dataAdesao); listaDePlacas = " " + listaDePlacas + veiculos.get(i).get("placa") + " (" + dataAdesaoFormata + ")"; } else { Date dataAdesao = new Date(Long.parseLong(veiculos.get(i).get("dataAdesao"))); String dataAdesaoFormata = formatadorData.format(dataAdesao); listaDePlacas = " " + listaDePlacas + veiculos.get(i).get("placa") + " (" + dataAdesaoFormata + "),"; } } 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 = listaDePlacas; String textPlacas3 = ", sendo vedada a remoo do aparelho rastreador desses(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"; // PDF que o template da aplicao PdfReader reader = new PdfReader( "D:\\Users\\Adriano\\Documents\\NetBeansProjects\\JRGWT\\web\\contratos\\contrato_locacao.pdf"); //PDF resultante PdfStamper stamper = new PdfStamper(reader, new FileOutputStream( "D:\\Users\\Adriano\\Documents\\NetBeansProjects\\JRGWT\\web\\contratos\\contrato_locacao1.pdf")); // 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); // 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 = "favereiro"; 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; String textRodape121 = ", estado do "; String textRodape122 = nomeEstadoUn; 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 //collumText.setSimpleColumn(40, 600, 560, 790); 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, 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, 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(30); // 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(25, 200, 200, 300); //escreve o collumText no PDF collumTextRodape4.go(false); stamper.close(); reader.close(); }
From source file:com.automaster.autoview.server.servlet.LendoTemplateContratoLocacaoVenda.java
public static void main(String[] args) throws IOException, DocumentException { //String placa = request.getParameter("placa"); //criando map que ir adicionar as informaes do cliente ArrayList<TreeMap<String, String>> clienteAuxiliar = new ArrayList<TreeMap<String, String>>(); int codCliente = Integer.parseInt("1"); int tipoCliente = Integer.parseInt("1"); String cpfCnpj = "01370797290"; // busca no BD as informaes do cliente ClienteDAO clienteDAO = null;//from w w w .j a v a 2 s. c o m clienteDAO = new ClienteDAO(); TreeMap<String, ArrayList<TreeMap<String, String>>> cliente = clienteDAO.buscarPorCodCliente(codCliente); //guarda no map auxiliar clienteAuxiliar = cliente.get(cliente.firstKey()); //variveis de endereo do cliente String logradouro = null; String bairro = null; String numero = null; String cidade = null; String cep = null; String uf = null; String nomeEstado = null; //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 String autoMaster = "AUTO MASTER LTDA"; String cnpjUn = formataCNPJ(unidade.get("cnpj")); String cidadeUn = unidade.get("nomeCidade"); String nomeEstadoUn = unidade.get("nomeCompletoEstado"); String ufUn = unidade.get("nomeEstado"); String logradouroUn = unidade.get("logradouro"); String numeroUn = unidade.get("numero"); String bairroUn = unidade.get("bairro"); // pega a data atual do sistema Date dataAtual = new Date(System.currentTimeMillis()); //System.out.println("Cliente auxiliar :"+clienteAuxiliar); //busca no BD as informaes de endereo do cliente TreeMap<String, String> endAuxiliar = new TreeMap<String, String>(); 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"); bairro = ends.get("bairro"); numero = ends.get("numeroEndereco"); cidade = ends.get("nomeCidade"); cep = ends.get("cep"); uf = ends.get("estadoUf"); nomeEstado = ends.get("nomeEstado"); endAuxiliar.put(ends.get("codEndereco"), ends.get("codEndereco")); //System.out.println("Linha 02!!"); } index++; } // montando a string que ir compor o cabealho do contrato String cab1 = "Pelo presente instrumento particular, de um lado "; String cab2 = autoMaster; String cab3 = ", atuante no setor de segurana de monitoramento de veculos, inscrita no "; String cab4 = "CNPJ: " + cnpjUn; String cab5 = " localizada na "; String cab6 = logradouroUn; String cab7 = " n "; String cab8 = numeroUn; String cab9 = ", "; String cab10 = bairroUn; String cab11 = ", "; String cab12 = cidadeUn; String cab13 = "/"; String cab14 = ufUn; String cab15 = ", doravante "; String cab16 = "designada simplesmente "; String cab17 = "AUTO MASTER MONITORAMENTO"; String cab18 = ", e de outro lado "; String cab19 = clienteAuxiliar.get(0).get("nomeCliente") + ((tipoCliente == 1) ? ", CPF: " + formataCPF(cpfCnpj) : ", CNPJ: " + formataCNPJ(cpfCnpj)); String cab20 = " localizado a "; String cab21 = logradouro; String cab22 = ", bairro: "; String cab23 = bairro; String cab24 = ", N "; String cab25 = numero; String cab255 = ", CIDADE : "; String cab26 = cidade; String cab266 = ", CEP : "; String cab2661 = cep; String cab27 = ", adquirente do RASTREADOR PARA AUTOS AUTO MASTER, "; String 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 String listaDePlacasComodato = ""; String listaDePlacasVenda = ""; for (int i = 0; i < veiculos.size(); i++) { if (i == veiculos.size() - 1) { if (veiculos.get(i).get("planoCodPlano").equalsIgnoreCase("1")) { listaDePlacasVenda = " " + listaDePlacasVenda + veiculos.get(i).get("placa"); } else { listaDePlacasComodato = " " + listaDePlacasComodato + veiculos.get(i).get("placa"); } } else { if (veiculos.get(i).get("planoCodPlano").equalsIgnoreCase("1")) { listaDePlacasVenda = " " + listaDePlacasVenda + veiculos.get(i).get("placa") + ","; } else { listaDePlacasComodato = " " + listaDePlacasComodato + veiculos.get(i).get("placa") + ","; } } } 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 desses(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"; // PDF que o template da aplicao PdfReader reader = new PdfReader( "D:\\Users\\Adriano\\Documents\\NetBeansProjects\\JRGWT\\web\\contratos\\contrato_locacao_venda.pdf"); //PDF resultante PdfStamper stamper = new PdfStamper(reader, new FileOutputStream( "D:\\Users\\Adriano\\Documents\\NetBeansProjects\\JRGWT\\web\\contratos\\contrato_locacao_venda_01.pdf")); // 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); // 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 = "favereiro"; 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; String textRodape121 = ", estado do "; String textRodape122 = nomeEstadoUn; 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(30); // 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(25, 130, 200, 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, 560, 560, 760); //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 desses(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, 600, 560, 800); //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, 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, 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); //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(25, 440, 200, 540); //escreve o collumText no PDF collumTextRodapeVenda4.go(false); stamper.close(); reader.close(); }
From source file:com.automaster.autoview.server.servlet.LendoTemplateContratoVenda.java
public static void main(String[] args) throws IOException, DocumentException { //String placa = request.getParameter("placa"); //criando map que ir adicionar as informaes do cliente ArrayList<TreeMap<String, String>> clienteAuxiliar = new ArrayList<TreeMap<String, String>>(); int codCliente = Integer.parseInt("2"); int tipoCliente = Integer.parseInt("2"); String cpfCnpj = "53487465000185"; // busca no BD as informaes do cliente ClienteDAO clienteDAO = null;// w w w. ja va 2s.co m clienteDAO = new ClienteDAO(); TreeMap<String, ArrayList<TreeMap<String, String>>> cliente = clienteDAO.buscarPorCodCliente(codCliente); //guarda no map auxiliar clienteAuxiliar = cliente.get(cliente.firstKey()); //variveis de endereo do cliente String logradouro = null; String bairro = null; String numero = null; String cidade = null; String cep = null; String uf = null; String nomeEstado = null; //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 String autoMaster = "AUTO MASTER LTDA"; String cnpjUn = formataCNPJ(unidade.get("cnpj")); String cidadeUn = unidade.get("nomeCidade"); String nomeEstadoUn = unidade.get("nomeCompletoEstado"); String ufUn = unidade.get("nomeEstado"); String logradouroUn = unidade.get("logradouro"); String numeroUn = unidade.get("numero"); String bairroUn = unidade.get("bairro"); // pega a data atual do sistema Date dataAtual = new Date(System.currentTimeMillis()); //System.out.println("Cliente auxiliar :"+clienteAuxiliar); //busca no BD as informaes de endereo do cliente TreeMap<String, String> endAuxiliar = new TreeMap<String, String>(); 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"); bairro = ends.get("bairro"); numero = ends.get("numeroEndereco"); cidade = ends.get("nomeCidade"); cep = ends.get("cep"); uf = ends.get("estadoUf"); nomeEstado = ends.get("nomeEstado"); endAuxiliar.put(ends.get("codEndereco"), ends.get("codEndereco")); //System.out.println("Linha 02!!"); } index++; } // montando a string que ir compor o cabealho do contrato String cab1 = "Pelo presente instrumento particular, de um lado "; String cab2 = autoMaster; String cab3 = ", atuante no setor de segurana de monitoramento de veculos, inscrita no "; String cab4 = "CNPJ: " + cnpjUn; String cab5 = " localizada na "; String cab6 = logradouroUn; String cab7 = " n "; String cab8 = numeroUn; String cab9 = ", "; String cab10 = bairroUn; String cab11 = ", "; String cab12 = cidadeUn; String cab13 = "/"; String cab14 = ufUn; String cab15 = ", doravante "; String cab16 = "designada simplesmente "; String cab17 = "AUTO MASTER MONITORAMENTO"; String cab18 = ", e de outro lado "; String cab19 = clienteAuxiliar.get(0).get("nomeCliente") + ((tipoCliente == 1) ? ", CPF: " + formataCPF(cpfCnpj) : ", CNPJ: " + formataCNPJ(cpfCnpj)); String cab20 = " localizado a "; String cab21 = logradouro; String cab22 = ", bairro: "; String cab23 = bairro; String cab24 = ", N "; String cab25 = numero; String cab255 = ", CIDADE : "; String cab26 = cidade; String cab266 = ", CEP : "; String cab2661 = cep; String cab27 = ", adquirente do RASTREADOR PARA AUTOS AUTO MASTER, "; String 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 String listaDePlacas = ""; for (int i = 0; i < veiculos.size(); i++) { if (i == veiculos.size() - 1) { listaDePlacas = " " + listaDePlacas + veiculos.get(i).get("placa"); } else { listaDePlacas = " " + listaDePlacas + veiculos.get(i).get("placa") + ","; } } 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 = listaDePlacas; String textPlacas3 = ", sendo vedada a remoo do aparelho rastreador desses(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;"; // PDF que o template da aplicao PdfReader reader = new PdfReader( "D:\\Users\\Adriano\\Documents\\NetBeansProjects\\JRGWT\\web\\contratos\\contrato_venda.pdf"); //PDF resultante PdfStamper stamper = new PdfStamper(reader, new FileOutputStream( "D:\\Users\\Adriano\\Documents\\NetBeansProjects\\JRGWT\\web\\contratos\\contrato_venda01.pdf")); // 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); //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 = "favereiro"; 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; String textRodape121 = ", estado do "; String textRodape122 = nomeEstadoUn; 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(30); // 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(25, 460, 200, 560); //escreve o collumText no PDF collumTextRodape4.go(false); stamper.close(); reader.close(); }
From source file:com.cib.statementstamper.windows.StatementStamperMainWindow.java
License:Open Source License
protected ByteArrayOutputStream doStamper(ByteArrayOutputStream baos) throws IOException, DocumentException { map.clear();/*from w w w . j a v a 2s . c o m*/ ByteArrayOutputStream baosFinal = new ByteArrayOutputStream(); PdfReader reader = new PdfReader(baos.toByteArray()); PdfContentStreamProcessor processor = new PdfContentStreamProcessor(this); for (int i = 1; i <= reader.getNumberOfPages(); i++) { actualPage = i; PdfDictionary pageDic = reader.getPageN(i); PdfDictionary resourcesDic = pageDic.getAsDict(PdfName.RESOURCES); processor.processContent(ContentByteUtils.getContentBytesForPage(reader, i), resourcesDic); } Document newDocument = new Document(PageSize.A4); PdfWriter writer = PdfWriter.getInstance(newDocument, baosFinal); newDocument.open(); PdfContentByte canvas = writer.getDirectContent(); // Font myFont = FontFactory.getFont(FontFactory.COURIER, 7, Font.BOLD); Iterator<Entry<Integer, Map<Float, StringBuffer>>> it = map.entrySet().iterator(); while (it.hasNext()) { Map.Entry<Integer, Map<Float, StringBuffer>> pairs = (Map.Entry<Integer, Map<Float, StringBuffer>>) it .next(); Iterator<Entry<Float, StringBuffer>> iter = pairs.getValue().entrySet().iterator(); while (iter.hasNext()) { Map.Entry<Float, StringBuffer> actualEntry = iter.next(); canvas.beginText(); canvas.setFontAndSize(myFontBase, 7); canvas.showTextAligned(Element.ALIGN_LEFT, actualEntry.getValue().toString(), 25, actualEntry.getKey() + 60, 0); canvas.endText(); } newDocument.newPage(); } newDocument.close(); reader = new PdfReader(baosFinal.toByteArray()); PdfReaderContentParser parser = new PdfReaderContentParser(reader); TextMarginFinder finder; for (int i = 1; i <= reader.getNumberOfPages(); i++) { finder = parser.processContent(i, new TextMarginFinder()); if (finder.getLly() <= 68) { getWindow().showNotification("Hiba", "A(z) " + i + ".ik oldalon tl sok a szveg !!!", Notification.TYPE_ERROR_MESSAGE); return null; } } reader = new PdfReader(baosFinal.toByteArray()); PdfStamper stamper = new PdfStamper(reader, baosFinal); int n = reader.getNumberOfPages(); for (int i = 1; i <= n; i++) { PdfContentByte overContent = stamper.getOverContent(i); overContent.addImage(logo, 131, 0, 0, 32, 44, 775); getFooterTable(i, n).writeSelectedRows(0, -1, 27, 68, stamper.getOverContent(i)); // ez a jo getIspLogoTable(i, n).writeSelectedRows(0, -1, 425, 45, stamper.getOverContent(i)); } stamper.close(); reader.close(); return baosFinal; }
From source file:com.education.freelancer.MainActivity.java
private void setSignatureStamp(PdfStamper stamper, AcroFields acroFields, String signId) { String DIRECTORY = Environment.getExternalStorageDirectory().getPath() + "/DigitSign/"; String StoredPath = DIRECTORY + signId + ".png"; AcroFields.FieldPosition f = acroFields.getFieldPositions(signId).get(0); int page = f.page; Rectangle rect = f.position;/*from w w w. jav a 2 s .com*/ File imgFile = new File(StoredPath); Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath()); if (myBitmap == null) { return; } // myBitmap=getResizedBitmap(myBitmap,160); ByteArrayOutputStream stream = new ByteArrayOutputStream(); myBitmap.compress(Bitmap.CompressFormat.PNG, 100, stream); Image img = null; try { img = Image.getInstance(stream.toByteArray()); img.scaleToFit(rect.getWidth(), rect.getHeight()); img.setAbsolutePosition(rect.getLeft(), rect.getBottom()); stamper.getOverContent(page).addImage(img); imgFile.delete(); } catch (DocumentException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
From source file:com.innoq.iQpdfutil.Main.java
License:Open Source License
/** * This method adds a page number to all pages (except the first one) * from the given input pdf and writes the modified pdf to * the output-stream./*from w w w. j a v a2 s.c om*/ * * <p> * The page number is placed in the center at the bottom of the page. * </p> * * <pre> * +-----+ * | | * | | * | | * | -2- | * +-----+ * </pre> * */ private static void numberPages(PdfReader reader, OutputStream os) throws IOException, DocumentException { PdfStamper stamper = new PdfStamper(reader, os); try { int n = reader.getNumberOfPages(); ColumnText text; PdfContentByte contents; Paragraph paragraph; Font headerFont = new Font(Font.FontFamily.COURIER, 12, Font.NORMAL); for (int i = 2; i <= n; i++) { contents = stamper.getOverContent(i); text = new ColumnText(contents); text.setSimpleColumn(1, 10, PageSize.A4.getWidth() - 1, 30, 1, Element.ALIGN_CENTER); paragraph = new Paragraph(String.format("- %d -", i), headerFont); paragraph.setAlignment(Element.ALIGN_CENTER); text.addElement(paragraph); text.go(); } } finally { try { stamper.close(); } catch (Exception e) { e.printStackTrace(); } } }
From source file:com.innoviu.signature.Signature.java
public static void main(String[] args) { boolean isEncrypted = false; boolean isFailed = false; try {//from w w w.j a va 2s.c o m if (args.length < 2) { throw new FileNotFoundException(); } PdfReader reader = new PdfReader(args[0]); isEncrypted = reader.isEncrypted(); String suffix = ".pdf"; if (isEncrypted) { System.out.println("Encrypted"); String[] cmd = { "pdftk", args[0], "output", args[0] + ".pdftk.pdf" }; try { Process proc = Runtime.getRuntime().exec(cmd); proc.waitFor(); } catch (Exception e) { System.out.println("Exception is:" + e); } reader = new PdfReader(args[0] + ".pdftk.pdf"); suffix = ".dec.pdf"; } PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(args[0] + suffix)); PdfContentByte over = stamper.getOverContent(1); String type = args[2]; int xpos = 0; //int xpos = (type == "in") ? 120 : 10; if ("in".equals(type)) { xpos = 0; } else { xpos = 120; } over.setColorFill(BaseColor.WHITE); over.rectangle(xpos + 10, 8, 120, 8); over.fill(); over.beginText(); BaseFont bf_times = BaseFont.createFont(BaseFont.TIMES_ROMAN, "Cp1252", false); over.setFontAndSize(bf_times, 6); over.setColorFill(BaseColor.BLACK); over.showTextAligned(PdfContentByte.ALIGN_RIGHT, args[1], 120 + xpos, 10, 0); over.endText(); stamper.close(); if (isEncrypted) { File file = new File(args[0] + ".pdftk.pdf"); file.delete(); } } catch (FileNotFoundException e) { isFailed = true; e.printStackTrace(); } catch (DocumentException e) { isFailed = true; e.printStackTrace(); } catch (IOException e) { isFailed = true; e.printStackTrace(); } finally { if (isEncrypted) { maintain(args[0]); } else if (isFailed) { fail(args[0]); } else { } } }
From source file:com.kohmiho.mpsr.export.PDFGenerator.java
/** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse * response)//w ww. ja va 2s .c o m */ @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String mpsrID = request.getParameter("MPSR_ID"); if (null == mpsrID) return; MPSRProjectInfo basicInfo = MPSRProjectInfo.getInstance(mpsrID); MPSRExecutiveSummary exeSummary = MPSRExecutiveSummary.getInstance(mpsrID); MPSRStatusSummary statusSummary = MPSRStatusSummary.getInstance(mpsrID); MPSRFunctionPerformance funcPerform = MPSRFunctionPerformance.getInstance(mpsrID); MPSRCostPerformance costPerform = MPSRCostPerformance.getInstance(mpsrID); MPSRSchedulePerformance[] schedulePerform = MPSRSchedulePerformance.getInstance(mpsrID); MPSRSafety safety = MPSRSafety.getInstance(mpsrID); MPSRAuthorization auth = MPSRAuthorization.getInstance(mpsrID); MPSRBudget budget = MPSRBudget.getInstance(mpsrID); MPSRCostReport[] costRpt = MPSRCostReport.getInstance(mpsrID); MPSRSchedule schedule = MPSRSchedule.getInstance(mpsrID); MPSRMilestone[] milestones = MPSRMilestone.getInstance(mpsrID); MPSRLPE lpe = MPSRLPE.getInstance(mpsrID); MPSRInsidePlantDesign[] ipds = MPSRInsidePlantDesign.getInstance(mpsrID); MPSROutsidePlantDesign[] opds = MPSROutsidePlantDesign.getInstance(mpsrID); MPSRProcure procure = MPSRProcure.getInstance(mpsrID); MPSRApprovedChanges[] approvedChanges = MPSRApprovedChanges.getInstance(mpsrID); MPSRPendingChanges[] pendingChanges = MPSRPendingChanges.getInstance(mpsrID); MPSRInsidePlantConstruction[] ipcs = MPSRInsidePlantConstruction.getInstance(mpsrID); MPSROutsidePlantConstruction[] opcs = MPSROutsidePlantConstruction.getInstance(mpsrID); MPSRAppendix[] appendixs = MPSRAppendix.getInstance(mpsrID); MPSRAttachment[] attachments = MPSRAttachment.getInstance(mpsrID); // response.setContentType("application/pdf"); // response.setHeader("Content-Disposition", // "attachment; filename=\"test.pdf\""); Font fontNormal = null; Font fontCoverTitle = new Font(FontFamily.HELVETICA, 20, Font.BOLD); Font fontCoverTableHeader = new Font(FontFamily.HELVETICA, 16, Font.BOLD); Font fontCoverTableContent = new Font(FontFamily.HELVETICA, 16); Font fontChapterHeader = new Font(FontFamily.HELVETICA, 18, Font.BOLD); Font fontSection1Header = new Font(FontFamily.HELVETICA, 16, Font.BOLD); Font fontSection2Header = new Font(FontFamily.HELVETICA, 14, Font.BOLD); Font fontWork = new Font(FontFamily.HELVETICA, 12, Font.UNDERLINE); Font fontTableCaption = new Font(FontFamily.TIMES_ROMAN, 12, Font.BOLD); Font fontTableColumnHeader = new Font(FontFamily.HELVETICA, 12, Font.BOLD); Font fontTableColumnHeaderYellow = new Font(FontFamily.HELVETICA, 12, Font.BOLD); fontTableColumnHeaderYellow.setColor(BaseColor.YELLOW); Font fontTableRowTitle = new Font(FontFamily.HELVETICA, 12, Font.ITALIC); Font fontTableCellBold = new Font(FontFamily.HELVETICA, 12, Font.BOLD); Font fontTableNote = new Font(FontFamily.HELVETICA, 10, Font.ITALIC); Font fontImageCaption = new Font(FontFamily.TIMES_ROMAN, 9, Font.BOLD); Font fontPOTableHeader = new Font(FontFamily.HELVETICA, 10, Font.BOLD); fontPOTableHeader.setColor(BaseColor.YELLOW); Font fontPOTable = new Font(FontFamily.HELVETICA, 9); Font fontPOTableSummary = new Font(FontFamily.HELVETICA, 9, Font.BOLD); Font fontPageHeader = new Font(FontFamily.HELVETICA, 8); Font fontPageFooter = new Font(FontFamily.HELVETICA, 10); Phrase[] headerTexts = new Phrase[] { new Phrase("ELECTRIC DELIVERY", fontPageHeader), new Phrase("DELIVERY PROJECTS & CONSTRUCTION (DP&C)", fontPageHeader), new Phrase("PROJECT MONTHLY REPORT", fontPageHeader) }; Paragraph paragraph = null; PdfPTable table = null; PdfPCell cell = null; Document document = new Document(DEFAULT_PAGE_SIZE, 36, 36, 9 * 10, 36); ByteArrayOutputStream baosOrig = new ByteArrayOutputStream(); XMLWorkerHelper xmlWorker = XMLWorkerHelper.getInstance(); try { PdfWriter writer = PdfWriter.getInstance(document, baosOrig); writer.setStrictImageSequence(true); writer.setLinearPageMode(); writer.setViewerPreferences(PdfWriter.PageModeUseOutlines | PdfWriter.FitWindow); Image icon = getEmbeddedImage(getServletContext(), "/resource/image/company_logo.png"); document.open(); PdfOutline root = writer.getRootOutline(); // *******************************************************************************************// // addOutline(root, writer, MPSRUI.TREE_0); for (int i = 0; i < 2; i++) { document.add(new Paragraph(" ")); } String[] titles = { " DELIVERY PROJECTS & CONSTRUCTION", "MONTHLY REPORT", basicInfo.getReportMonthYear(), basicInfo.getProjectTitle(), "PROJECT No. " + basicInfo.getProjectDefinition() }; int[] spaceingAfters = { 48, 48, 48, 24, 48 }; for (int i = 0; i < titles.length; i++) { paragraph = new Paragraph(); paragraph.setSpacingAfter(spaceingAfters[i]); paragraph.setFont(fontCoverTitle); paragraph.setAlignment(Element.ALIGN_CENTER); paragraph.add(new Chunk(titles[i])); document.add(paragraph); } addCoverImage(document, MPSRUI.getFilePath(mpsrID, basicInfo.getFileName())); document.add(new Paragraph(" ")); table = new PdfPTable(2); table.addCell(new Phrase("Client", fontCoverTableHeader)); table.addCell(new Phrase(basicInfo.getProjectManager(), fontCoverTableContent)); table.addCell(new Phrase("Location", fontCoverTableHeader)); table.addCell(new Phrase(basicInfo.getProjectDirector(), fontCoverTableContent)); document.add(table); // *******************************************************************************************// document.resetPageCount(); document.add(Chunk.NEXTPAGE); writer.setPageEvent(new MPSRPageEventHelper(icon, headerTexts, fontPageFooter)); // *******************************************************************************************// PdfOutline outline1 = addOutline(root, writer, MPSRUI.TREE_1); addSectionTitle(document, MPSRUI.TREE_1, fontChapterHeader, 0, 0, 12); PdfOutline outline2 = addOutline(outline1, writer, "1.1"); addOutline(outline2, writer, MPSRUI.TREE_1_1_1); addSectionTitle(document, MPSRUI.TREE_1_1_1, fontSection2Header, 12, 12, 0); addParagraph(document, writer, xmlWorker, exeSummary.getDesc_1_1_1(), fontNormal, 12, 0, 12); addOutline(outline2, writer, MPSRUI.TREE_1_1_2); addSectionTitle(document, MPSRUI.TREE_1_1_2, fontSection2Header, 12, 12, 0); addParagraph(document, writer, xmlWorker, exeSummary.getDesc_1_1_2(), fontNormal, 12, 0, 12); addOutline(outline2, writer, MPSRUI.TREE_1_1_3); addSectionTitle(document, MPSRUI.TREE_1_1_3, fontSection2Header, 12, 12, 0); addParagraph(document, writer, xmlWorker, exeSummary.getDesc_1_1_3(), fontNormal, 12, 0, 12); addOutline(outline2, writer, MPSRUI.TREE_1_1_4); addSectionTitle(document, MPSRUI.TREE_1_1_4, fontSection2Header, 12, 12, 0); addParagraph(document, writer, xmlWorker, exeSummary.getDesc_1_1_4(), fontNormal, 12, 0, 12); // *******************************************************************************************// // 1.2 Status Summary // *******************************************************************************************// outline2 = addOutline(outline1, writer, MPSRUI.TREE_1_2); addSectionTitle(document, MPSRUI.TREE_1_2, fontSection1Header, 6, 12, 12); paragraph = new Paragraph(); paragraph.add(basicInfo.getProjectTitle()); paragraph.setSpacingAfter(4); document.add(paragraph); table = new PdfPTable(5); table.setTotalWidth(500); table.setLockedWidth(true); table.setWidths(new int[] { 3, 1, 1, 1, 1 }); cell = new PdfPCell( new Phrase("Project #: " + basicInfo.getProjectDefinition(), fontTableColumnHeader)); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); String[] headers = { "Status", "Approved (Include RnC)", "To Date", "At Completion" }; for (String header : headers) { cell = new PdfPCell(new Phrase(header, fontTableColumnHeader)); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); } String[][] cellValues = { { "Budget ($M)", statusSummary.getBudgetStatus(), !"".equals(statusSummary.getBudgetApproved()) ? CURRENCY_FORMATTER .format(Double.parseDouble(statusSummary.getBudgetApproved())) : "", !"".equals(statusSummary.getBudgetToDate()) ? CURRENCY_FORMATTER.format(Double.parseDouble(statusSummary.getBudgetToDate())) : "", !"".equals(statusSummary.getBudgetAtCompletion()) ? CURRENCY_FORMATTER .format(Double.parseDouble(statusSummary.getBudgetAtCompletion())) : "" }, { "Schedule - Duration (months)", statusSummary.getScheduleStatus(), statusSummary.getScheduleApproved(), statusSummary.getScheduleToDate(), statusSummary.getScheduleAtCompletion() }, { "In-Service Date", statusSummary.getInServiceDateStatus(), statusSummary.getInServiceDateApproved(), statusSummary.getInServiceDateToDate(), statusSummary.getInServiceDateAtCompletion() } }; for (int i = 0; i < cellValues.length; i++) { table.addCell(new Phrase(cellValues[i][0])); cell = new PdfPCell(new Phrase(cellValues[i][1])); cell.setBackgroundColor(getBackgroundColor(cellValues[i][1])); cell.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(cell); for (int j = 2; j < 5; j++) { cell = new PdfPCell(new Phrase(cellValues[i][j])); cell.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(cell); } } document.add(table); // -------------------------------------------------------------------// paragraph = new Paragraph("Legend:"); paragraph.setSpacingAfter(4); paragraph.setIndentationLeft(25); document.add(paragraph); table = new PdfPTable(3); table.setTotalWidth(240); table.setLockedWidth(true); table.setHorizontalAlignment(Element.ALIGN_LEFT); String[] legends = { "On Target", "At Risk", "Off Target" }; for (String legend : legends) { cell = new PdfPCell(new Phrase(legend)); cell.setBackgroundColor(getBackgroundColor(legend)); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); cell.setMinimumHeight(18); cell.setPadding(0); table.addCell(cell); } paragraph = new Paragraph(); paragraph.add(table); paragraph.setIndentationLeft(25); document.add(paragraph); // *******************************************************************************************// // 1.2.1 Functional Area Performance Indicators // *******************************************************************************************// addOutline(outline2, writer, MPSRUI.TREE_1_2_1); addSectionTitle(document, MPSRUI.TREE_1_2_1, fontSection2Header, 12, 12, 12); table = new PdfPTable(4); table.setTotalWidth(550); table.setLockedWidth(true); table.setWidths(new int[] { 4, 1, 1, 4 }); headers = new String[] { "Activities", "Current Status", "Trend", "Comments (main performance drives)" }; for (String header : headers) { cell = new PdfPCell(new Phrase(header, fontTableColumnHeader)); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); } Image imgArrowUp = getEmbeddedImage(getServletContext(), "/VAADIN/themes/MPSR/img/Arrow_Up.png"); Image imgArrowDown = getEmbeddedImage(getServletContext(), "/VAADIN/themes/MPSR/img/Arrow_Down.png"); Image imgArrowEven = getEmbeddedImage(getServletContext(), "/VAADIN/themes/MPSR/img/Arrow_Even.png"); Image[] images = { imgArrowUp, imgArrowDown, imgArrowEven }; for (Image image : images) { image.scaleToFit(12, 12); } cellValues = new String[][] { { "Project - " + basicInfo.getProjectTitle(), funcPerform.getProjectStatus(), funcPerform.getProjectTrend(), funcPerform.getProjectComment() }, { " Target Budget", funcPerform.getTargetBudgetStatus(), funcPerform.getTargetBudgetTrend(), funcPerform.getTargetBudgetComment() }, { " Safety", funcPerform.getSafetyStatus(), funcPerform.getSafetyTrend(), funcPerform.getSafetyComment() }, { " Licensing & Permitting", funcPerform.getLicensingStatus(), funcPerform.getLicensingTrend(), funcPerform.getLicensingComment() }, { " Corporate Properties", funcPerform.getCorporateStatus(), funcPerform.getCorporateTrend(), funcPerform.getCorporateComment() }, { " Inside Plant Design & Engineering", funcPerform.getIPDEStatus(), funcPerform.getIPDETrend(), funcPerform.getIPDEComment() }, { " Public Outreach", funcPerform.getOutreachStatus(), funcPerform.getOutreachTrend(), funcPerform.getOutreachComment() }, { " Procurement", funcPerform.getProcureStatus(), funcPerform.getProcureTrend(), funcPerform.getProcureComment() }, { " Construction", funcPerform.getConstructionStatus(), funcPerform.getConstructionTrend(), funcPerform.getConstructionComment() }, { " Environmental - Resource Recovery", funcPerform.getEnviromentStatus(), funcPerform.getEnviromentTrend(), funcPerform.getEnviromentComment() }, { " Salvage", funcPerform.getSalvageStatus(), funcPerform.getSalvageTrend(), funcPerform.getSalvageComment() }, { " Withdrawal", funcPerform.getWithdrawalStatus(), funcPerform.getWithdrawalTrend(), funcPerform.getWithdrawalComment() } }; for (int i = 0; i < cellValues.length; i++) { cell = new PdfPCell(new Phrase(cellValues[i][0])); cell.setHorizontalAlignment(Element.ALIGN_LEFT); table.addCell(cell); cell = new PdfPCell(new Phrase(cellValues[i][1])); cell.setBackgroundColor(getBackgroundColor(cellValues[i][1])); cell.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(cell); if ("Up".equals(cellValues[i][2])) { cell = new PdfPCell(imgArrowUp); } else if ("Down".equals(cellValues[i][2])) { cell = new PdfPCell(imgArrowDown); } else if ("Even".equals(cellValues[i][2])) { cell = new PdfPCell(imgArrowEven); } else { cell = new PdfPCell(); } cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); cell = new PdfPCell(new Phrase(cellValues[i][3])); cell.setHorizontalAlignment(Element.ALIGN_LEFT); table.addCell(cell); } document.add(table); // *******************************************************************************************// document.setPageSize(DEFAULT_PAGE_SIZE.rotate()); document.add(Chunk.NEXTPAGE); addOutline(outline2, writer, MPSRUI.TREE_1_2_2); addSectionTitle(document, MPSRUI.TREE_1_2_2, fontSection2Header, 12, 12, 12); addImage(document, MPSRUI.getFilePath(mpsrID, costPerform.getFileName())); // *******************************************************************************************// // 1.2.3 Schedule Performance // *******************************************************************************************// document.add(Chunk.NEXTPAGE); addOutline(outline2, writer, MPSRUI.TREE_1_2_3); addSectionTitle(document, MPSRUI.TREE_1_2_3, fontSection2Header, 12, 12, 12); table = new PdfPTable(9); table.setTotalWidth(750); table.setLockedWidth(true); table.setWidths(new int[] { 3, 1, 1, 1, 1, 1, 1, 1, 1 }); table.setHorizontalAlignment(Element.ALIGN_CENTER); headers = new String[] { "WBS", "Original Duration", "Remaining Duration", "Baseline Start Date", "Baseline Finish Date", "Start Date", "Finish Date", "Total Float", "Status" }; for (String header : headers) { cell = new PdfPCell(new Phrase(header, fontTableColumnHeaderYellow)); cell.setBackgroundColor(BaseColor.BLUE); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); } for (int i = 0; i < schedulePerform.length; i++) { cell = new PdfPCell(new Phrase(schedulePerform[i].getWBS())); cell.setHorizontalAlignment(Element.ALIGN_LEFT); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); cell = new PdfPCell(new Phrase(Double.toString(schedulePerform[i].getOriginalDuration()))); cell.setHorizontalAlignment(Element.ALIGN_RIGHT); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); cell = new PdfPCell(new Phrase(Double.toString(schedulePerform[i].getRemainingDuration()))); cell.setHorizontalAlignment(Element.ALIGN_RIGHT); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); cell = new PdfPCell(new Phrase(schedulePerform[i].getPlannedStartDate())); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); cell = new PdfPCell(new Phrase(schedulePerform[i].getPlannedFinishDate())); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); cell = new PdfPCell(new Phrase(schedulePerform[i].getStartDate())); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); cell = new PdfPCell(new Phrase(schedulePerform[i].getFinishDate())); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); cell = new PdfPCell(new Phrase(schedulePerform[i].getTotalFloat())); cell.setHorizontalAlignment(Element.ALIGN_RIGHT); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); cell = new PdfPCell(new Phrase(schedulePerform[i].getStatus())); cell.setHorizontalAlignment(Element.ALIGN_LEFT); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); } table.setHeaderRows(1); document.add(table); // *******************************************************************************************// // 1.3 Project Change Control // *******************************************************************************************// document.setPageSize(DEFAULT_PAGE_SIZE); document.add(Chunk.NEXTPAGE); outline2 = addOutline(outline1, writer, MPSRUI.TREE_1_3); addSectionTitle(document, MPSRUI.TREE_1_3, fontSection1Header, 6, 12, 12); addOutline(outline2, writer, MPSRUI.TREE_1_3_1); addSectionTitle(document, MPSRUI.TREE_1_3_1, fontSection2Header, 12, 12, 0); addParagraph(document, writer, xmlWorker, exeSummary.getDesc_1_3_1(), fontNormal, 12, 0, 12); addOutline(outline2, writer, MPSRUI.TREE_1_3_2); addSectionTitle(document, MPSRUI.TREE_1_3_2, fontSection2Header, 12, 12, 0); addParagraph(document, writer, xmlWorker, exeSummary.getDesc_1_3_2(), fontNormal, 12, 0, 12); // *******************************************************************************************// // 2 Safety // *******************************************************************************************// addOutline(root, writer, MPSRUI.TREE_2); addSectionTitle(document, MPSRUI.TREE_2, fontChapterHeader, 0, 24, 12); addParagraph(document, writer, xmlWorker, safety.getDesc1(), fontNormal, 12, 0, 12); paragraph = new Paragraph("Table 2.1 Project Safety Summary", fontTableCaption); paragraph.setAlignment(Element.ALIGN_CENTER); paragraph.setSpacingAfter(6); document.add(paragraph); table = new PdfPTable(3); table.setTotalWidth(300); table.setLockedWidth(true); table.setWidths(new int[] { 1, 1, 1 }); table.setHorizontalAlignment(Element.ALIGN_RIGHT); cell = new PdfPCell(new Phrase("Total Work Hours", fontTableColumnHeaderYellow)); cell.setColspan(3); cell.setBackgroundColor(BaseColor.BLUE); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); headers = new String[] { "Current Period", "Calendar YTD", "Project To Date" }; for (String header : headers) { cell = new PdfPCell(new Phrase(header, fontTableColumnHeader)); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); } cellValues = new String[][] { { INTEGER_FORMATTER.format(safety.getTotalWorkHoursCurrent()), INTEGER_FORMATTER.format(safety.getTotalWorkHoursYTD()), INTEGER_FORMATTER.format(safety.getTotalWorkHoursPTD()) } }; for (int i = 0; i < cellValues.length; i++) { cell = new PdfPCell(new Phrase(cellValues[i][0])); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); cell = new PdfPCell(new Phrase(cellValues[i][1])); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); cell = new PdfPCell(new Phrase(cellValues[i][2], fontTableCellBold)); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); } document.add(table); // ----------------------------------- table = new PdfPTable(4); table.setTotalWidth(500); table.setLockedWidth(true); table.setWidths(new int[] { 2, 1, 1, 1 }); table.setHorizontalAlignment(Element.ALIGN_RIGHT); cell = new PdfPCell(new Phrase("Incidents", fontTableColumnHeaderYellow)); cell.setColspan(4); cell.setBackgroundColor(BaseColor.BLUE); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); cellValues = new String[][] { { "OSHA Recordable", INTEGER_FORMATTER.format(safety.getOshaRecordableCurrent()), INTEGER_FORMATTER.format(safety.getOshaRecordableYTD()), INTEGER_FORMATTER.format(safety.getOshaRecordablePTD()) }, { "First Aid", INTEGER_FORMATTER.format(safety.getFirstAid1Current()), INTEGER_FORMATTER.format(safety.getFirstAid1YTD()), INTEGER_FORMATTER.format(safety.getFirstAid1PTD()) }, { "Near Miss", INTEGER_FORMATTER.format(safety.getNearMissCurrent()), INTEGER_FORMATTER.format(safety.getNearMissYTD()), INTEGER_FORMATTER.format(safety.getNearMissPTD()) }, { "First Aid", INTEGER_FORMATTER.format(safety.getFirstAid2Current()), INTEGER_FORMATTER.format(safety.getFirstAid2YTD()), INTEGER_FORMATTER.format(safety.getFirstAid2PTD()) } }; for (int i = 0; i < cellValues.length; i++) { cell = new PdfPCell(new Phrase(cellValues[i][0], fontTableRowTitle)); cell.setHorizontalAlignment(Element.ALIGN_LEFT); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); cell = new PdfPCell(new Phrase(cellValues[i][1])); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); cell = new PdfPCell(new Phrase(cellValues[i][2])); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); cell = new PdfPCell(new Phrase(cellValues[i][3], fontTableCellBold)); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); } cell = new PdfPCell(new Phrase("*Note - " + safety.getNote(), fontTableNote)); cell.setColspan(4); cell.setHorizontalAlignment(Element.ALIGN_LEFT); cell.setVerticalAlignment(Element.ALIGN_TOP); table.addCell(cell); document.add(table); // *******************************************************************************************// // 3 Project Authorization // *******************************************************************************************// addOutline(root, writer, MPSRUI.TREE_3); addSectionTitle(document, MPSRUI.TREE_3, fontChapterHeader, 0, 24, 12); addParagraph(document, writer, xmlWorker, auth.getDesc1(), fontNormal, 12, 0, 12); table = new PdfPTable(10); table.setSpacingBefore(6); table.setTotalWidth(550); table.setLockedWidth(true); table.setWidths(new int[] { 3, 1, 1, 1, 1, 1, 1, 2, 1, 1 }); table.setHorizontalAlignment(Element.ALIGN_CENTER); headers = new String[] { "$ Millions", "Prior", auth.getHeaderYear0(), auth.getHeaderYear1(), auth.getHeaderYear2(), auth.getHeaderYear3(), auth.getHeaderYear4(), auth.getHeaderPostYear(), "Total", "Auth" }; for (String header : headers) { cell = new PdfPCell(new Phrase(header, fontTableColumnHeader)); cell.setBackgroundColor(BaseColor.YELLOW); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); } cellValues = new String[][] { { "Base", NUMBER_FORMATTER.format(auth.getBasePriorYear()), NUMBER_FORMATTER.format(auth.getBaseYear0()), NUMBER_FORMATTER.format(auth.getBaseYear1()), NUMBER_FORMATTER.format(auth.getBaseYear2()), NUMBER_FORMATTER.format(auth.getBaseYear3()), NUMBER_FORMATTER.format(auth.getBaseYear4()), NUMBER_FORMATTER.format(auth.getBasePostYear()), NUMBER_FORMATTER.format(auth.getBaseTotal()), "" }, { "Risk & Contingency", NUMBER_FORMATTER.format(auth.getRnCPriorYear()), NUMBER_FORMATTER.format(auth.getRnCYear0()), NUMBER_FORMATTER.format(auth.getRnCYear1()), NUMBER_FORMATTER.format(auth.getRnCYear2()), NUMBER_FORMATTER.format(auth.getRnCYear3()), NUMBER_FORMATTER.format(auth.getRnCYear4()), NUMBER_FORMATTER.format(auth.getRnCPostYear()), NUMBER_FORMATTER.format(auth.getRnCTotal()), "" }, { "Total Project " + auth.getTotalProjectDate(), NUMBER_FORMATTER.format(auth.getPriorTotal()), NUMBER_FORMATTER.format(auth.getYear0Total()), NUMBER_FORMATTER.format(auth.getYear1Total()), NUMBER_FORMATTER.format(auth.getYear2Total()), NUMBER_FORMATTER.format(auth.getYear3Total()), NUMBER_FORMATTER.format(auth.getYear4Total()), NUMBER_FORMATTER.format(auth.getPostTotal()), NUMBER_FORMATTER.format(auth.getTotalTotal()), "" }, { "Current Request " + auth.getReq0RequestDate(), NUMBER_FORMATTER.format(auth.getReq0PriorYear()), NUMBER_FORMATTER.format(auth.getReq0Year0()), NUMBER_FORMATTER.format(auth.getReq0Year1()), NUMBER_FORMATTER.format(auth.getReq0Year2()), NUMBER_FORMATTER.format(auth.getReq0Year3()), NUMBER_FORMATTER.format(auth.getReq0Year4()), NUMBER_FORMATTER.format(auth.getReq0PostYear()), NUMBER_FORMATTER.format(auth.getReq0Total()), NUMBER_FORMATTER.format(auth.getReq0Authorization()) }, { "Request Date " + auth.getReq1RequestDate(), NUMBER_FORMATTER.format(auth.getReq1PriorYear()), NUMBER_FORMATTER.format(auth.getReq1Year0()), NUMBER_FORMATTER.format(auth.getReq1Year1()), NUMBER_FORMATTER.format(auth.getReq1Year2()), NUMBER_FORMATTER.format(auth.getReq1Year3()), NUMBER_FORMATTER.format(auth.getReq1Year4()), NUMBER_FORMATTER.format(auth.getReq1PostYear()), NUMBER_FORMATTER.format(auth.getReq1Total()), NUMBER_FORMATTER.format(auth.getReq1Authorization()) }, { "Request Date " + auth.getReq2RequestDate(), NUMBER_FORMATTER.format(auth.getReq2PriorYear()), NUMBER_FORMATTER.format(auth.getReq2Year0()), NUMBER_FORMATTER.format(auth.getReq2Year1()), NUMBER_FORMATTER.format(auth.getReq2Year2()), NUMBER_FORMATTER.format(auth.getReq2Year3()), NUMBER_FORMATTER.format(auth.getReq2Year4()), NUMBER_FORMATTER.format(auth.getReq2PostYear()), NUMBER_FORMATTER.format(auth.getReq2Total()), NUMBER_FORMATTER.format(auth.getReq2Authorization()) }, { "Target Budget", "", "", "", "", "", "", "", auth.getTargetBudget(), "" } }; for (int i = 0; i < cellValues.length; i++) { cell = new PdfPCell(new Phrase(cellValues[i][0])); cell.setHorizontalAlignment(Element.ALIGN_RIGHT); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); for (int j = 1; j < cellValues[i].length; j++) { cell = new PdfPCell(new Phrase(cellValues[i][j])); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); } } document.add(table); // *******************************************************************************************// // 4 Project Budget // *******************************************************************************************// addOutline(root, writer, MPSRUI.TREE_4); addSectionTitle(document, MPSRUI.TREE_4, fontChapterHeader, 0, 24, 12); addParagraph(document, writer, xmlWorker, budget.getDesc1(), fontNormal, 12, 0, 12); table = new PdfPTable(2); table.setSpacingBefore(6); table.setTotalWidth(350); table.setLockedWidth(true); table.setWidths(new int[] { 5, 2 }); table.setHorizontalAlignment(Element.ALIGN_CENTER); cellValues = new String[][] { { "Current Approved Budget (Base + RnC)", CURRENCY_FORMATTER.format(budget.getPMBudget()) + "M" }, { "Approved Phase Funding", CURRENCY_FORMATTER.format(budget.getPMActual()) + "M" }, { "Expended To Date", CURRENCY_FORMATTER.format(budget.getPMCommitment()) + "M" }, { "At Completion", CURRENCY_FORMATTER.format(budget.getPMAdditionalCost()) + "M" } }; for (int i = 0; i < cellValues.length; i++) { cell = new PdfPCell(new Phrase(cellValues[i][0])); cell.setHorizontalAlignment(Element.ALIGN_LEFT); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); cell = new PdfPCell(new Phrase(cellValues[i][1])); cell.setHorizontalAlignment(Element.ALIGN_RIGHT); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); } document.add(table); // ---------------------------------------------------- // table 4.1 // ---------------------------------------------------- paragraph = new Paragraph("Table 4.1 Cost Report Summary", fontTableCaption); paragraph.setAlignment(Element.ALIGN_CENTER); paragraph.setSpacingAfter(6); document.add(paragraph); table = new PdfPTable(5); table.setTotalWidth(500); table.setLockedWidth(true); table.setWidths(new int[] { 1, 1, 1, 1, 1 }); table.setHorizontalAlignment(Element.ALIGN_CENTER); headers = new String[] { "Work Element", "Description", "Estimate", "Actual", "EAC" }; for (String header : headers) { cell = new PdfPCell(new Phrase(header, fontTableColumnHeaderYellow)); cell.setBackgroundColor(BaseColor.BLUE); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); } for (int i = 0; i < costRpt.length; i++) { cell = new PdfPCell(new Phrase(costRpt[i].getWbs())); cell.setHorizontalAlignment(Element.ALIGN_LEFT); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); cell = new PdfPCell(new Phrase(costRpt[i].getWbsDesc())); cell.setHorizontalAlignment(Element.ALIGN_LEFT); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); cell = new PdfPCell(new Phrase(formatNumberString(costRpt[i].getEstimate()))); cell.setHorizontalAlignment(Element.ALIGN_RIGHT); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); cell = new PdfPCell(new Phrase(formatNumberString(costRpt[i].getActual()))); cell.setHorizontalAlignment(Element.ALIGN_RIGHT); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); cell = new PdfPCell(new Phrase(formatNumberString(costRpt[i].getEAC()))); cell.setHorizontalAlignment(Element.ALIGN_RIGHT); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); } document.add(table); // *******************************************************************************************// // 5 Project Schedule // *******************************************************************************************// outline1 = addOutline(root, writer, MPSRUI.TREE_5); addSectionTitle(document, MPSRUI.TREE_5, fontChapterHeader, 0, 24, 12); addOutline(outline1, writer, MPSRUI.TREE_5_1); addSectionTitle(document, MPSRUI.TREE_5_1, fontSection1Header, 6, 12, 12); addParagraph(document, writer, xmlWorker, schedule.getDesc_5_1(), fontNormal, 12, 0, 12); addOutline(outline1, writer, MPSRUI.TREE_5_2); addSectionTitle(document, MPSRUI.TREE_5_2, fontSection1Header, 6, 12, 12); addParagraph(document, writer, xmlWorker, schedule.getDesc_5_2(), fontNormal, 12, 0, 12); addOutline(outline1, writer, MPSRUI.TREE_5_3); addSectionTitle(document, MPSRUI.TREE_5_3, fontSection1Header, 6, 12, 12); addParagraph(document, writer, xmlWorker, schedule.getDesc_5_3(), fontNormal, 12, 0, 12); addOutline(outline1, writer, MPSRUI.TREE_5_4); addSectionTitle(document, MPSRUI.TREE_5_4, fontSection1Header, 6, 12, 12); addParagraph(document, writer, xmlWorker, schedule.getDesc_5_4(), fontNormal, 12, 0, 12); // ---------------------------------------------------- // table 5.1 // ---------------------------------------------------- paragraph = new Paragraph("Table 5.1 Planned Scorecard Milestones", fontTableCaption); paragraph.setAlignment(Element.ALIGN_CENTER); paragraph.setSpacingAfter(6); document.add(paragraph); table = new PdfPTable(3); table.setTotalWidth(500); table.setLockedWidth(true); table.setWidths(new int[] { 3, 1, 1 }); table.setHorizontalAlignment(Element.ALIGN_CENTER); headers = new String[] { "Milestone", "Planned Date", "Finish Date" }; for (String header : headers) { cell = new PdfPCell(new Phrase(header, fontTableColumnHeaderYellow)); cell.setBackgroundColor(BaseColor.BLUE); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); } for (int i = 0; i < milestones.length; i++) { cell = new PdfPCell(new Phrase(milestones[i].getMilestone())); cell.setHorizontalAlignment(Element.ALIGN_LEFT); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); cell = new PdfPCell(new Phrase(milestones[i].getPlannedDate())); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); cell = new PdfPCell(new Phrase(milestones[i].getFinishDate())); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); } document.add(table); // *******************************************************************************************// // 6 License & Permitting, and Environmental Status // *******************************************************************************************// outline1 = addOutline(root, writer, MPSRUI.TREE_6); addSectionTitle(document, MPSRUI.TREE_6, fontChapterHeader, 0, 24, 12); addOutline(outline1, writer, MPSRUI.TREE_6_1); addSectionTitle(document, MPSRUI.TREE_6_1, fontSection1Header, 6, 12, 12); addParagraph(document, writer, xmlWorker, lpe.getDesc_6_1(), fontNormal, 12, 0, 12); outline2 = addOutline(outline1, writer, MPSRUI.TREE_6_2); addSectionTitle(document, MPSRUI.TREE_6_2, fontSection1Header, 6, 12, 12); addOutline(outline2, writer, MPSRUI.TREE_6_2_1); addSectionTitle(document, MPSRUI.TREE_6_2_1, fontSection2Header, 12, 12, 12); addParagraph(document, writer, xmlWorker, lpe.getDesc_6_2_1(), fontNormal, 12, 0, 12); addOutline(outline2, writer, MPSRUI.TREE_6_2_2); addSectionTitle(document, MPSRUI.TREE_6_2_2, fontSection2Header, 12, 12, 12); addParagraph(document, writer, xmlWorker, lpe.getDesc_6_2_2(), fontNormal, 12, 0, 12); // *******************************************************************************************// // 7 Engineering Status // *******************************************************************************************// outline1 = addOutline(root, writer, MPSRUI.TREE_7); addSectionTitle(document, MPSRUI.TREE_7, fontChapterHeader, 0, 24, 12); addOutline(outline1, writer, MPSRUI.TREE_7_1); addSectionTitle(document, MPSRUI.TREE_7_1, fontSection1Header, 6, 12, 12); table = new PdfPTable(5); table.setTotalWidth(500); table.setLockedWidth(true); table.setWidths(new int[] { 2, 1, 1, 1, 3 }); table.setHorizontalAlignment(Element.ALIGN_CENTER); headers = new String[] { "Package", "IFR", "IFC", "Indicator", "Note" }; for (String header : headers) { cell = new PdfPCell(new Phrase(header, fontTableColumnHeaderYellow)); cell.setBackgroundColor(BaseColor.BLUE); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); } for (int i = 0; i < ipds.length; i++) { cell = new PdfPCell(new Phrase(ipds[i].getPackage())); cell.setHorizontalAlignment(Element.ALIGN_LEFT); cell.setVerticalAlignment(Element.ALIGN_TOP); table.addCell(cell); cell = new PdfPCell(new Phrase(ipds[i].getIFR())); cell.setHorizontalAlignment(Element.ALIGN_LEFT); cell.setVerticalAlignment(Element.ALIGN_TOP); table.addCell(cell); cell = new PdfPCell(new Phrase(ipds[i].getIFC())); cell.setHorizontalAlignment(Element.ALIGN_RIGHT); cell.setVerticalAlignment(Element.ALIGN_TOP); table.addCell(cell); cell = new PdfPCell(new Phrase(ipds[i].getIndicator())); cell.setBackgroundColor(getBackgroundColor(ipds[i].getIndicator())); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_TOP); table.addCell(cell); cell = new PdfPCell(new Phrase(ipds[i].getNote())); cell.setHorizontalAlignment(Element.ALIGN_LEFT); cell.setVerticalAlignment(Element.ALIGN_TOP); table.addCell(cell); } document.add(table); // -----------------------------------------------------------------------------------// addOutline(outline1, writer, MPSRUI.TREE_7_2); addSectionTitle(document, MPSRUI.TREE_7_2, fontSection1Header, 6, 12, 12); table = new PdfPTable(5); table.setTotalWidth(500); table.setLockedWidth(true); table.setWidths(new int[] { 2, 1, 1, 1, 3 }); table.setHorizontalAlignment(Element.ALIGN_CENTER); headers = new String[] { "Package", "IFR", "IFC", "Indicator", "Note" }; for (String header : headers) { cell = new PdfPCell(new Phrase(header, fontTableColumnHeaderYellow)); cell.setBackgroundColor(BaseColor.BLUE); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); } for (int i = 0; i < opds.length; i++) { cell = new PdfPCell(new Phrase(opds[i].getPackage())); cell.setHorizontalAlignment(Element.ALIGN_LEFT); cell.setVerticalAlignment(Element.ALIGN_TOP); table.addCell(cell); cell = new PdfPCell(new Phrase(opds[i].getIFR())); cell.setHorizontalAlignment(Element.ALIGN_LEFT); cell.setVerticalAlignment(Element.ALIGN_TOP); table.addCell(cell); cell = new PdfPCell(new Phrase(opds[i].getIFC())); cell.setHorizontalAlignment(Element.ALIGN_RIGHT); cell.setVerticalAlignment(Element.ALIGN_TOP); table.addCell(cell); cell = new PdfPCell(new Phrase(opds[i].getIndicator())); cell.setBackgroundColor(getBackgroundColor(opds[i].getIndicator())); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_TOP); table.addCell(cell); cell = new PdfPCell(new Phrase(opds[i].getNote())); cell.setHorizontalAlignment(Element.ALIGN_LEFT); cell.setVerticalAlignment(Element.ALIGN_TOP); table.addCell(cell); } document.add(table); // *******************************************************************************************// // 8 Procurement Status // *******************************************************************************************// outline1 = addOutline(root, writer, MPSRUI.TREE_8); addSectionTitle(document, MPSRUI.TREE_8, fontChapterHeader, 0, 24, 12); outline2 = addOutline(outline1, writer, MPSRUI.TREE_8_1); addSectionTitle(document, MPSRUI.TREE_8_1, fontSection1Header, 6, 12, 12); table = new PdfPTable(2); table.setTotalWidth(300); table.setLockedWidth(true); table.setWidths(new int[] { 1, 1 }); table.setHorizontalAlignment(Element.ALIGN_CENTER); cellValues = new String[][] { { "Receipted to Date", CURRENCY_FORMATTER.format(procure.getReceiptedToDate()) }, { "Open Commitments", CURRENCY_FORMATTER.format(procure.getOpenCommitment()) }, { "Total", CURRENCY_FORMATTER.format(procure.getTotalPurchaseOrder()) } }; for (int i = 0; i < cellValues.length; i++) { cell = new PdfPCell(new Phrase(cellValues[i][0])); cell.setHorizontalAlignment(Element.ALIGN_LEFT); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); cell = new PdfPCell(new Phrase(cellValues[i][1])); cell.setHorizontalAlignment(Element.ALIGN_RIGHT); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); } document.add(table); addParagraph(document, writer, xmlWorker, procure.getDesc_8_1_B(), fontNormal, 12, 12, 12); outline2 = addOutline(outline1, writer, MPSRUI.TREE_8_2); addSectionTitle(document, MPSRUI.TREE_8_2, fontSection1Header, 6, 12, 12); // ---------------------------------------------------- // section 8.2.1 // ---------------------------------------------------- addOutline(outline2, writer, MPSRUI.TREE_8_2_1); addSectionTitle(document, MPSRUI.TREE_8_2_1, fontSection2Header, 12, 12, 12); addParagraph(document, writer, xmlWorker, procure.getDesc_8_2_1(), fontNormal, 12, 0, 12); table = new PdfPTable(6); table.setTotalWidth(550); table.setLockedWidth(true); table.setWidths(new int[] { 1, 2, 1, 1, 2, 1 }); table.setHorizontalAlignment(Element.ALIGN_CENTER); headers = new String[] { "Purchase Order", "Vendor", "Previous Amount", "This Month Amount", "This Month Description", "Total Amount" }; for (String header : headers) { cell = new PdfPCell(new Phrase(header, fontPOTableHeader)); cell.setBackgroundColor(BaseColor.BLUE); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); } double totalToDate = 0; for (int i = 0; i < approvedChanges.length; i++) { cell = new PdfPCell(new Phrase(approvedChanges[i].getPurchaseOrder(), fontPOTable)); cell.setHorizontalAlignment(Element.ALIGN_LEFT); cell.setVerticalAlignment(Element.ALIGN_TOP); table.addCell(cell); cell = new PdfPCell(new Phrase(approvedChanges[i].getVendor(), fontPOTable)); cell.setHorizontalAlignment(Element.ALIGN_LEFT); cell.setVerticalAlignment(Element.ALIGN_TOP); table.addCell(cell); cell = new PdfPCell( new Phrase(CURRENCY_FORMATTER.format(approvedChanges[i].getPreviousAmount()), fontPOTable)); cell.setHorizontalAlignment(Element.ALIGN_RIGHT); cell.setVerticalAlignment(Element.ALIGN_TOP); table.addCell(cell); cell = new PdfPCell(new Phrase(CURRENCY_FORMATTER.format(approvedChanges[i].getThisMonthAmount()), fontPOTable)); cell.setHorizontalAlignment(Element.ALIGN_RIGHT); cell.setVerticalAlignment(Element.ALIGN_TOP); table.addCell(cell); cell = new PdfPCell(new Phrase(approvedChanges[i].getThisMonthDescription(), fontPOTable)); cell.setHorizontalAlignment(Element.ALIGN_LEFT); cell.setVerticalAlignment(Element.ALIGN_TOP); table.addCell(cell); cell = new PdfPCell( new Phrase(CURRENCY_FORMATTER.format(approvedChanges[i].getTotalAmount()), fontPOTable)); cell.setHorizontalAlignment(Element.ALIGN_RIGHT); cell.setVerticalAlignment(Element.ALIGN_TOP); table.addCell(cell); totalToDate += approvedChanges[i].getTotalAmount(); } document.add(table); table = new PdfPTable(2); table.setTotalWidth(550); table.setLockedWidth(true); table.setWidths(new int[] { 7, 1 }); table.setHorizontalAlignment(Element.ALIGN_CENTER); cell = new PdfPCell(new Phrase("Total To Date", fontPOTableSummary)); cell.setHorizontalAlignment(Element.ALIGN_RIGHT); cell.setVerticalAlignment(Element.ALIGN_TOP); table.addCell(cell); cell = new PdfPCell(new Phrase(CURRENCY_FORMATTER.format(totalToDate), fontPOTableSummary)); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_TOP); table.addCell(cell); document.add(table); // ---------------------------------------------------- // section 8.2.2 // ---------------------------------------------------- addOutline(outline2, writer, MPSRUI.TREE_8_2_2); addSectionTitle(document, MPSRUI.TREE_8_2_2, fontSection2Header, 12, 12, 12); addParagraph(document, writer, xmlWorker, procure.getDesc_8_2_2(), fontNormal, 12, 0, 12); table = new PdfPTable(6); table.setTotalWidth(550); table.setLockedWidth(true); table.setWidths(new int[] { 1, 2, 1, 1, 2, 1 }); table.setHorizontalAlignment(Element.ALIGN_CENTER); headers = new String[] { "Purchase Order", "Vendor", "Previous Amount", "This Month Amount", "This Month Description", "Total Amount" }; for (String header : headers) { cell = new PdfPCell(new Phrase(header, fontPOTableHeader)); cell.setBackgroundColor(BaseColor.BLUE); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); table.addCell(cell); } totalToDate = 0; for (int i = 0; i < pendingChanges.length; i++) { cell = new PdfPCell(new Phrase(pendingChanges[i].getPurchaseOrder(), fontPOTable)); cell.setHorizontalAlignment(Element.ALIGN_LEFT); cell.setVerticalAlignment(Element.ALIGN_TOP); table.addCell(cell); cell = new PdfPCell(new Phrase(pendingChanges[i].getVendor(), fontPOTable)); cell.setHorizontalAlignment(Element.ALIGN_LEFT); cell.setVerticalAlignment(Element.ALIGN_TOP); table.addCell(cell); cell = new PdfPCell( new Phrase(CURRENCY_FORMATTER.format(pendingChanges[i].getPreviousAmount()), fontPOTable)); cell.setHorizontalAlignment(Element.ALIGN_RIGHT); cell.setVerticalAlignment(Element.ALIGN_TOP); table.addCell(cell); cell = new PdfPCell( new Phrase(CURRENCY_FORMATTER.format(pendingChanges[i].getThisMonthAmount()), fontPOTable)); cell.setHorizontalAlignment(Element.ALIGN_RIGHT); cell.setVerticalAlignment(Element.ALIGN_TOP); table.addCell(cell); cell = new PdfPCell(new Phrase(pendingChanges[i].getThisMonthDescription(), fontPOTable)); cell.setHorizontalAlignment(Element.ALIGN_LEFT); cell.setVerticalAlignment(Element.ALIGN_TOP); table.addCell(cell); cell = new PdfPCell( new Phrase(CURRENCY_FORMATTER.format(pendingChanges[i].getTotalAmount()), fontPOTable)); cell.setHorizontalAlignment(Element.ALIGN_RIGHT); cell.setVerticalAlignment(Element.ALIGN_TOP); table.addCell(cell); totalToDate += pendingChanges[i].getTotalAmount(); } document.add(table); table = new PdfPTable(2); table.setTotalWidth(550); table.setLockedWidth(true); table.setWidths(new int[] { 7, 1 }); table.setHorizontalAlignment(Element.ALIGN_CENTER); cell = new PdfPCell(new Phrase("Total To Date", fontPOTableSummary)); cell.setHorizontalAlignment(Element.ALIGN_RIGHT); cell.setVerticalAlignment(Element.ALIGN_TOP); table.addCell(cell); cell = new PdfPCell(new Phrase(CURRENCY_FORMATTER.format(totalToDate), fontPOTableSummary)); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_TOP); table.addCell(cell); document.add(table); // *******************************************************************************************// // 9 Construction Status // *******************************************************************************************// outline1 = addOutline(root, writer, MPSRUI.TREE_9); addSectionTitle(document, MPSRUI.TREE_9, fontChapterHeader, 0, 24, 12); addOutline(outline1, writer, MPSRUI.TREE_9_1); addSectionTitle(document, MPSRUI.TREE_9_1, fontSection1Header, 6, 12, 12); for (int i = 0; i < ipcs.length; i++) { addParagraph(document, writer, xmlWorker, ipcs[i].getWork(), fontWork, 12, 12, 0); addParagraph(document, writer, xmlWorker, ipcs[i].getDescription(), fontNormal, 12, 0, 0); addImage(document, MPSRUI.getFilePath(mpsrID, ipcs[i].getFileName()), "Figure " + ipcs[i].getFigure() + " " + ipcs[i].getTitle(), fontImageCaption, 12, 3, 12); } // -----------------------------------------------------------------------------------------// addOutline(outline1, writer, MPSRUI.TREE_9_2); addSectionTitle(document, MPSRUI.TREE_9_2, fontSection1Header, 6, 12, 12); for (int i = 0; i < opcs.length; i++) { addParagraph(document, writer, xmlWorker, opcs[i].getWork(), fontWork, 12, 12, 0); addParagraph(document, writer, xmlWorker, opcs[i].getDescription(), fontNormal, 12, 0, 0); addImage(document, MPSRUI.getFilePath(mpsrID, opcs[i].getFileName()), "Figure " + opcs[i].getFigure() + " " + opcs[i].getTitle(), fontImageCaption, 12, 3, 12); } // *******************************************************************************************// // Appendix // *******************************************************************************************// if (appendixs.length > 0) { document.add(Chunk.NEXTPAGE); outline1 = addOutline(root, writer, MPSRUI.TREE_APPENDIX); for (int i = 0; i < appendixs.length; i++) { addOutline(outline1, writer, "Appendix " + appendixs[i].getNumber() + " " + appendixs[i].getTitle()); addSectionTitle(document, "Appendix " + appendixs[i].getNumber() + " " + appendixs[i].getTitle(), fontChapterHeader, 0, 12, 12); addParagraph(document, writer, xmlWorker, appendixs[i].getDescription(), fontNormal, 12, 0, 0); importPages(document, writer, mpsrID, appendixs[i].getFileName()); } } // *******************************************************************************************// // Attachment // *******************************************************************************************// if (attachments.length > 0) { document.setPageSize(DEFAULT_PAGE_SIZE); document.add(Chunk.NEXTPAGE); outline1 = addOutline(root, writer, MPSRUI.TREE_ATTACHMENT); for (int i = 0; i < attachments.length; i++) { addOutline(outline1, writer, "Attachment " + attachments[i].getNumber() + " " + attachments[i].getTitle()); addSectionTitle(document, "Attachment " + attachments[i].getNumber() + " " + attachments[i].getTitle(), fontChapterHeader, 0, 12, 12); addParagraph(document, writer, xmlWorker, attachments[i].getDescription(), fontNormal, 12, 0, 0); importPages(document, writer, mpsrID, attachments[i].getFileName()); } } document.close(); // *******************************************************************************************// // retrieve outline PdfReader readerOrig = new PdfReader(baosOrig.toByteArray()); // int origNumberOfPages = readerOrig.getNumberOfPages(); ColumnText ct = new ColumnText(null); ct.addElement(new Paragraph("Table of Contents", fontCoverTitle)); List<HashMap<String, Object>> bookmarkList = SimpleBookmark.getBookmark(readerOrig); fillColumnText(bookmarkList, ct, 18, 0, fontSection2Header); // generate TOC after cover page ByteArrayOutputStream baosTOC = new ByteArrayOutputStream(); PdfStamper stamperTOC = new PdfStamper(readerOrig, baosTOC); int tocPageEnd = 1; while (true) { stamperTOC.insertPage(++tocPageEnd, readerOrig.getPageSize(1)); PdfContentByte underContent = stamperTOC.getUnderContent(tocPageEnd); generatePageHeader(document, underContent, icon, headerTexts); ct.setCanvas(stamperTOC.getOverContent(tocPageEnd)); ct.setSimpleColumn(36, 36, 558, 693); if (!ColumnText.hasMoreText(ct.go())) break; } stamperTOC.close(); // change page labels PdfPageLabels labels = new PdfPageLabels(); labels.addPageLabel(1, PdfPageLabels.LOWERCASE_ROMAN_NUMERALS); labels.addPageLabel(tocPageEnd + 1, PdfPageLabels.DECIMAL_ARABIC_NUMERALS); // add labels ByteArrayOutputStream baosFinal = new ByteArrayOutputStream(); PdfReader readerTOC = new PdfReader(baosTOC.toByteArray()); // String selectPages = String.format("1-%s,%s-%s", tocPageEnd, // tocPageEnd + 1, origNumberOfPages + (tocPageEnd - 1)); // readerTOC.selectPages(selectPages); PdfStamper stamperFinal = new PdfStamper(readerTOC, baosFinal); stamperFinal.getWriter().setPageLabels(labels); stamperFinal.close(); // *******************************************************************************************// // send final PDF to browser response.setHeader("Expires", "0"); response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0"); response.setHeader("Pragma", "public"); response.setContentType("application/pdf"); response.setContentLength(baosFinal.size()); OutputStream os = response.getOutputStream(); os.write(baosFinal.toByteArray()); os.flush(); os.close(); } catch (DocumentException e) { e.printStackTrace(); } }
From source file:com.masscustsoft.service.ToPdf.java
License:Open Source License
@Override protected void run(AbstractResult ret) throws Exception { Map<String, String> i18n = (Map) LightUtil.parseJson(getStr("i18n", "{}")); ThreadHelper.set("_i18n_", i18n); Map rpt = getRpt();/*from ww w .ja v a 2 s . c o m*/ File temp = File.createTempFile("tmp", ".pdf"); String name = MapUtil.getStr(rpt, "title", "No-Name"); HttpServletResponse resp = Upload.getUpload().getResponse(); resp.setHeader("Content-Disposition", "attachment;filename=\"report.pdf\""); resp.setContentType("application/pdf"); LightUtil.doCache(resp); createPdf(rpt, i18n, temp); FileInputStream is = new FileInputStream(temp); PdfReader reader = new PdfReader(is); int pages = reader.getNumberOfPages(); File temp2 = File.createTempFile("pdf", ".pdf"); OutputStream out = new FileOutputStream(temp2); PdfStamper stamp = new PdfStamper(reader, out); for (int i = 1; i <= pages; i++) { PdfContentByte c = stamp.getOverContent(i); Rectangle ps = reader.getPageSize(i); ThreadHelper.set("pageNumber", i); ThreadHelper.set("pageCount", pages); c.saveState(); List<Map> items = (List) rpt.get("overlays"); if (items != null) { for (Map item : items) { getDirectContent(c, ps, item); } } c.restoreState(); } stamp.close(); ReportFile df = new ReportFile(); df.setOwnerId(getSession().getUserId()); df.setName(name); df.setCreateTime(LightUtil.longDate()); ExternalFile.newExternalFile(getDs(), getFs(), df.getFile(), temp2); getDs().insertBean(df); temp.delete(); temp2.delete(); Map m = new HashMap(); m.put("externalId", df.getFile().getExternalId()); ret.setResult(m); }