Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package Export; import Export.ConfigDoc.Empresa; import Export.ConfigDoc.Fontes; import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Element; import com.itextpdf.text.Font; import com.itextpdf.text.FontFactory; import com.itextpdf.text.Image; import com.itextpdf.text.PageSize; import com.itextpdf.text.Paragraph; import com.itextpdf.text.Phrase; import com.itextpdf.text.pdf.BaseFont; import com.itextpdf.text.pdf.PdfPCell; import com.itextpdf.text.pdf.PdfPTable; import com.itextpdf.text.pdf.PdfWriter; import conexao.Call; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.io.Serializable; import java.sql.ResultSet; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.Locale; import java.util.function.Consumer; import java.util.logging.Level; import java.util.logging.Logger; import lib.Moeda; import modelo.Contrato; import validacao.OperacaoData; /** * * @author AhmedJorge */ public class DocNotaDebito implements Serializable { public static boolean isReseguro = false; public static String segurado; @SuppressWarnings({ "CallToPrintStackTrace", "null", "UnusedAssignment" }) public String docSeguros(String nomeSeguro, String numApolice, String interCodVendedor, String idCliente, String fundoContrato, ArrayList<String[]> listaValores, Contrato contrato, String user, String moeda, String arquivo, String numeroRegistro) { String reString; try { Font fontCabecalhoN = FontFactory.getFont(Fontes.FONTB, BaseFont.WINANSI, BaseFont.EMBEDDED, 9.2f); Font fontLinha = FontFactory.getFont(Fontes.FONTB, BaseFont.WINANSI, BaseFont.EMBEDDED, 0.000000358f); Font fontCabecalhoS = FontFactory.getFont(Fontes.FONT, BaseFont.WINANSI, BaseFont.EMBEDDED, 9.2f); Font fontCorpo = FontFactory.getFont(Fontes.FONT, BaseFont.WINANSI, BaseFont.EMBEDDED, 8f); Font fontCorpoN = FontFactory.getFont(Fontes.FONTB, BaseFont.WINANSI, BaseFont.EMBEDDED, 8f); Font fontNull = FontFactory.getFont(Fontes.FONT, BaseFont.WINANSI, BaseFont.EMBEDDED, 4f); Font fontMenor = FontFactory.getFont(Fontes.FONT, BaseFont.WINANSI, BaseFont.EMBEDDED, 3f); PdfPTable pTableEmpresaPricipal = new PdfPTable(new float[] { 80, 20 }); pTableEmpresaPricipal.setWidthPercentage(95); PdfPTable pTableEmpresaInforImpres1 = new PdfPTable(1); PdfPTable pTableEmpresaInforImpres2 = new PdfPTable(1); PdfPTable pTableEmpresaInforImpres3 = new PdfPTable(2); PdfPTable pTableEmpresaInforImpres4 = new PdfPTable(2); PdfPTable pTableEmpresaInforImpres5 = new PdfPTable(1); PdfPTable pTableFatura = new PdfPTable(new float[] { 80, 20 }); pTableFatura.setWidthPercentage(95); PdfPCell pCellNomeEmpresa = new PdfPCell(new Phrase(Empresa.NOME, fontCabecalhoN)); pCellNomeEmpresa.setBorder(0); PdfPCell pCellNomeEndereco = new PdfPCell(new Phrase(Empresa.ENDERECO, fontCabecalhoN)); pCellNomeEndereco.setBorder(0); PdfPCell pCellCaixaPostal = new PdfPCell(new Phrase(Empresa.CAIXAPOSTAL, fontCabecalhoN)); pCellCaixaPostal.setBorder(0); PdfPCell pCellTeleFax = new PdfPCell( new Phrase(Empresa.TELEFAX + " " + ConfigDoc.Empresa.EMAIL, fontCabecalhoN)); pCellTeleFax.setBorder(0); PdfPCell pCellSociedade = new PdfPCell(new Phrase(Empresa.SOCIEDADE, fontCabecalhoN)); pCellSociedade.setBorder(0); PdfPCell pCellCapital = new PdfPCell(new Phrase(Empresa.CAPITALSOCIAL, fontCabecalhoN)); pCellCapital.setBorder(0); PdfPCell pCellPolice = new PdfPCell(new Phrase(Empresa.APOLICE + numApolice, fontCabecalhoN)); pCellPolice.setBorder(0); PdfPCell pCellDebNF = new PdfPCell(new Phrase("Deb. N", fontCabecalhoS)); pCellDebNF.setHorizontalAlignment(Element.ALIGN_RIGHT); pCellDebNF.setBorder(0); PdfPCell pCellDebN = new PdfPCell(new Phrase(numeroRegistro, fontCabecalhoS)); pCellDebN.setHorizontalAlignment(Element.ALIGN_CENTER); pCellDebN.setBorder(0); PdfPCell pCellInterCoF = new PdfPCell(new Phrase("Inter COD:", fontCabecalhoS)); pCellInterCoF.setHorizontalAlignment(Element.ALIGN_RIGHT); pCellInterCoF.setBorder(0); PdfPCell pCellInterCo = new PdfPCell(new Phrase(interCodVendedor, fontCabecalhoS)); pCellInterCo.setHorizontalAlignment(Element.ALIGN_CENTER); pCellInterCo.setBorder(0); Image imageEmpresa = Image.getInstance("logo.png"); imageEmpresa.scaleToFit(120f, 100f); pTableEmpresaInforImpres1.addCell(pCellNomeEmpresa); pTableEmpresaInforImpres1.addCell(pCellNomeEndereco); pTableEmpresaInforImpres1.addCell(pCellCaixaPostal); pTableEmpresaInforImpres1.addCell(pCellTeleFax); pTableEmpresaInforImpres1.addCell(pCellSociedade); pTableEmpresaInforImpres2.addCell(pCellCapital); pTableEmpresaInforImpres2.addCell(pCellPolice); pTableEmpresaInforImpres3.addCell(pCellDebNF); pTableEmpresaInforImpres3.addCell(pCellDebN); pTableEmpresaInforImpres3.addCell(pCellInterCoF); pTableEmpresaInforImpres3.addCell(pCellInterCo); PdfPCell cellTabela1 = new PdfPCell(pTableEmpresaInforImpres2); cellTabela1.setBorder(0); pTableEmpresaInforImpres4.addCell(cellTabela1); PdfPCell cellTabela2 = new PdfPCell(pTableEmpresaInforImpres3); cellTabela2.setBorder(0); pTableEmpresaInforImpres4.addCell(cellTabela2); PdfPCell cellTabela3 = new PdfPCell(pTableEmpresaInforImpres1); cellTabela3.setBorder(0); pTableEmpresaInforImpres5.addCell(cellTabela3); PdfPCell cellTabela4 = new PdfPCell(pTableEmpresaInforImpres4); cellTabela4.setBorder(0); pTableEmpresaInforImpres5.addCell(cellTabela4); PdfPCell cellTabela5 = new PdfPCell(pTableEmpresaInforImpres5); cellTabela5.setBorder(0); pTableEmpresaPricipal.addCell(cellTabela5); PdfPCell cellTabela6 = new PdfPCell(imageEmpresa); cellTabela6.setBorder(0); cellTabela6.setHorizontalAlignment(Element.ALIGN_RIGHT); pTableEmpresaPricipal.addCell(cellTabela6); PdfPCell cellFaturaTitulo = new PdfPCell(new Phrase("FACTURA", fontCabecalhoN)); cellFaturaTitulo.setBorder(0); cellFaturaTitulo.setHorizontalAlignment(Element.ALIGN_RIGHT); PdfPCell cellFaturaTipo = new PdfPCell(new Phrase(nomeSeguro, fontCabecalhoN)); cellFaturaTipo.setHorizontalAlignment(Element.ALIGN_CENTER); cellFaturaTipo.setBorder(0); PdfPTable pTableLinha = new PdfPTable(1); pTableLinha.setWidthPercentage(95); PdfPCell linha = new PdfPCell(new Phrase(" ", fontLinha)); linha.setBorderWidthTop(0.5f); linha.setBorderWidthBottom(0); linha.setBorderWidthLeft(0); linha.setBorderWidthRight(0); pTableLinha.addCell(linha); pTableFatura.addCell(cellFaturaTitulo); pTableFatura.addCell(cellFaturaTipo); PdfPTable pTableClientePrincipal = new PdfPTable(new float[] { 60, 10, 30 }); pTableClientePrincipal.setWidthPercentage(95); PdfPTable pTableClienteDescisao = new PdfPTable(1); PdfPTable pTableDataEVenda = new PdfPTable(1); PdfPTable pTableTitulo = new PdfPTable(1); pTableTitulo.setWidthPercentage(95); ClienteI ci = null; ArrayList<DataReseguro.DataEmpresa> listaDataEmpresas = new ArrayList<>(); if (!isReseguro) { ci = new ClienteI(idCliente); } else { listaDataEmpresas = DataReseguro.getDadosEmpresa(Integer.valueOf(idCliente)); } Paragraph pCl = new Paragraph(); pCl.add(new Phrase((isReseguro) ? "NOME: " : ci.getNOMEL_(), fontCorpo)); pCl.add(new Phrase( (isReseguro) ? listaDataEmpresas.get(0).getEMPRESA().toUpperCase() + " (" + segurado + ")" : ci.getNOME_(), fontCorpoN)); PdfPCell cellNomeCliente = new PdfPCell(pCl); cellNomeCliente.setBorder(0); pCl = new Paragraph(); pCl.add(new Phrase((isReseguro) ? "ENDEREO: " : ci.getENDERECOL_(), fontCorpo)); pCl.add(new Phrase((isReseguro) ? listaDataEmpresas.get(0).getENDERECO() : ci.getENDERECO_(), fontCorpoN)); if (!isReseguro) { pCl.add(new Phrase(" ", fontCorpoN)); pCl.add(new Phrase((isReseguro) ? "" : ci.getCODPOSTALL_(), fontCorpo)); pCl.add(new Phrase((isReseguro) ? "" : ci.getCODPOSTAL_(), fontCorpoN)); } PdfPCell cellClienteMorada = new PdfPCell(pCl); cellClienteMorada.setBorder(0); PdfPCell cellNomeLocalidade = null; PdfPCell cellNomeTelefone = null; if (!isReseguro) { pCl = new Paragraph(); pCl.add(new Phrase(ci.getLOCALTRABALHOL_(), fontCorpo)); pCl.add(new Phrase(ci.getLOCALTRABALHO_(), fontCorpoN)); cellNomeLocalidade = new PdfPCell(pCl); cellNomeLocalidade.setBorder(0); pCl = new Paragraph(); pCl.add(new Phrase(ci.getTELEFONEL_(), fontCorpo)); pCl.add(new Phrase(ci.getTELEFONE_(), fontCorpoN)); cellNomeTelefone = new PdfPCell(pCl); cellNomeTelefone.setBorder(0); } SimpleDateFormat sdf = new SimpleDateFormat("dd 'de' MMMM 'de' yyyy", new Locale("pt", "BR")); SimpleDateFormat sdfContr = new SimpleDateFormat("dd-MM-yyyy"); SimpleDateFormat sdf1 = new SimpleDateFormat("dd-MM-yyyy hh'.'mm'.'ss"); PdfPCell cellDataContrato = new PdfPCell(new Phrase( "Data: " + (contrato.getDataInicio() != null ? sdfContr.format(contrato.getDataInicio()) : "") + " - " + (contrato.getDataFim() != null ? sdfContr.format(contrato.getDataFim()) : ""), fontCorpo)); cellDataContrato.setHorizontalAlignment(Element.ALIGN_CENTER); cellDataContrato.setVerticalAlignment(Element.ALIGN_BOTTOM); cellDataContrato.setBorderWidthTop(1f); cellDataContrato.setBorderWidthBottom(0f); cellDataContrato.setBorderWidthLeft(1f); cellDataContrato.setBorderWidthRight(1f); PdfPCell cellVendetor = new PdfPCell(new Phrase("Vendedor: " + ((!isReseguro) ? "NICON SEGUROS" : listaDataEmpresas.get(0).getEMPRESA().toUpperCase()), fontCorpo)); cellVendetor.setHorizontalAlignment(Element.ALIGN_CENTER); cellVendetor.setVerticalAlignment(Element.ALIGN_TOP); cellVendetor.setBorderWidthTop(0f); cellVendetor.setBorderWidthBottom(1f); cellVendetor.setBorderWidthLeft(1f); cellVendetor.setBorderWidthRight(1f); pTableClienteDescisao.addCell(cellNomeCliente); pTableClienteDescisao.addCell(cellClienteMorada); if (!isReseguro) { pTableClienteDescisao.addCell(cellNomeLocalidade); pTableClienteDescisao.addCell(cellNomeTelefone); } PdfPCell cellZerro = new PdfPCell(new Phrase(" ", fontNull)); cellZerro.setBorder(0); PdfPCell cellZerro2 = new PdfPCell(new Phrase(" ")); cellZerro2.setBorderWidthTop(0f); cellZerro2.setBorderWidthBottom(0f); cellZerro2.setBorderWidthLeft(1f); cellZerro2.setBorderWidthRight(1f); PdfPTable pTableNull = new PdfPTable(1); pTableNull.setWidthPercentage(95); pTableNull.addCell(cellZerro); pTableDataEVenda.addCell(cellDataContrato); pTableDataEVenda.addCell(cellZerro2); pTableDataEVenda.addCell(cellVendetor); PdfPCell cellTitulo = new PdfPCell(new Phrase("Cliente", fontCabecalhoN)); cellTitulo.setBorder(0); pTableTitulo.addCell(cellZerro); pTableTitulo.addCell(cellTitulo); PdfPCell cellCliente = new PdfPCell(pTableClienteDescisao); cellCliente.setBorder(0); PdfPCell cellCliente1 = new PdfPCell(pTableDataEVenda); cellCliente1.setBorder(0); pTableClientePrincipal.addCell(cellCliente); pTableClientePrincipal.addCell(cellZerro); pTableClientePrincipal.addCell(cellCliente1); PdfPCell cellQuan = new PdfPCell(new Phrase("QTD", fontCorpo)); PdfPCell cellDescricao = new PdfPCell(new Phrase("Descrio", fontCorpo)); PdfPCell cellValorUnitatio = new PdfPCell(new Phrase("Valor Unitrio", fontCorpo)); PdfPCell cellTotal = new PdfPCell(new Phrase("Total", fontCorpo)); PdfPTable TableRegistro = new PdfPTable(new float[] { 10, 45, 28, 17 }); TableRegistro.setWidthPercentage(95); cellQuan.setBorderWidthBottom(1f); cellQuan.setBorderWidthTop(1f); cellQuan.setBorderWidthLeft(1f); cellQuan.setBorderWidthRight(1f); cellQuan.setHorizontalAlignment(Element.ALIGN_CENTER); cellQuan.setVerticalAlignment(Element.ALIGN_CENTER); cellDescricao.setBorderWidthBottom(1f); cellDescricao.setBorderWidthTop(1f); cellDescricao.setBorderWidthLeft(0.5f); cellDescricao.setBorderWidthRight(1f); cellDescricao.setHorizontalAlignment(Element.ALIGN_CENTER); cellDescricao.setVerticalAlignment(Element.ALIGN_CENTER); cellValorUnitatio.setBorderWidthBottom(1f); cellValorUnitatio.setBorderWidthTop(1f); cellValorUnitatio.setBorderWidthLeft(0.5f); cellValorUnitatio.setBorderWidthRight(1f); cellValorUnitatio.setHorizontalAlignment(Element.ALIGN_CENTER); cellValorUnitatio.setVerticalAlignment(Element.ALIGN_CENTER); cellTotal.setBorderWidthBottom(1f); cellTotal.setBorderWidthTop(1f); cellTotal.setBorderWidthLeft(0.5f); cellTotal.setBorderWidthRight(1f); cellTotal.setHorizontalAlignment(Element.ALIGN_CENTER); cellTotal.setVerticalAlignment(Element.ALIGN_CENTER); TableRegistro.addCell(cellQuan); TableRegistro.addCell(cellDescricao); TableRegistro.addCell(cellValorUnitatio); TableRegistro.addCell(cellTotal); int total = (listaValores.size() > 21) ? listaValores.size() : 18; boolean rulpas = false; for (int i = 0; i < total + 1; i++) { /** * Serve para add linha a Table <TableRegistro> e testa caso o ArrayList tenha * Menos linha que o <total> a Table <TableRegistro> continua recebendo dados Com String Vazios */ if (listaValores.size() - 1 >= i || (listaValores.size() - 1 == i)) { // System.err.println(i); cellQuan = new PdfPCell(new Phrase(listaValores.get(i)[0], fontCorpo)); cellDescricao = new PdfPCell(new Phrase(listaValores.get(i)[1], fontCorpo)); cellValorUnitatio = new PdfPCell(new Phrase(listaValores.get(i)[2] + " " + ((!nomeSeguro.equals("Viagem")) ? contrato.getSigla() : ""), fontCorpo)); cellTotal = new PdfPCell(new Phrase(listaValores.get(i)[3] + " " + ((!nomeSeguro.equals("Viagem") || listaValores.size() - 1 == i) ? contrato.getSigla() : ""), fontCorpo)); cellQuan.setPaddingTop(2.5f); cellDescricao.setPaddingTop(2.5f); cellValorUnitatio.setPaddingTop(2.5f); cellTotal.setPaddingTop(2.5f); cellQuan.setPaddingBottom(2.5f); cellDescricao.setPaddingBottom(2.5f); cellValorUnitatio.setPaddingBottom(2.5f); cellTotal.setPaddingBottom(2.5f); cellQuan.setVerticalAlignment(PdfPCell.ALIGN_MIDDLE); cellDescricao.setVerticalAlignment(PdfPCell.ALIGN_MIDDLE); cellValorUnitatio.setVerticalAlignment(PdfPCell.ALIGN_MIDDLE); cellTotal.setVerticalAlignment(PdfPCell.ALIGN_MIDDLE); } else { cellQuan = new PdfPCell(new Phrase(" ", fontCorpo)); cellDescricao = new PdfPCell(new Phrase(" ", fontCorpo)); cellValorUnitatio = new PdfPCell(new Phrase(" ", fontCorpo)); cellTotal = new PdfPCell(new Phrase(" ", fontCorpo)); } if (listaValores.size() - 1 == i && !rulpas) { cellDescricao.setRowspan(total - i); rulpas = true; } cellQuan.setBorderWidthBottom(0f); cellQuan.setBorderWidthTop((listaValores.size() - 1 == i) ? 1f : 0f); cellQuan.setHorizontalAlignment(Element.ALIGN_CENTER); cellDescricao.setBorderWidthBottom((listaValores.size() - 1 == i) ? 1f : 0f); cellDescricao.setBorderWidthTop((listaValores.size() - 1 == i) ? 1f : 0f); cellDescricao.setHorizontalAlignment(Element.ALIGN_CENTER); cellValorUnitatio.setBorderWidthBottom(0f); cellValorUnitatio.setBorderWidthTop((listaValores.size() - 1 == i) ? 1f : 0f); cellValorUnitatio.setHorizontalAlignment(Element.ALIGN_CENTER); cellTotal.setBorderWidthBottom(0f); cellTotal.setBorderWidthTop((listaValores.size() - 1 == i) ? 1f : 0f); cellTotal.setHorizontalAlignment(Element.ALIGN_CENTER); if (i + 1 == total) { cellQuan.setBorderWidthBottom(1f); cellDescricao.setBorderWidthBottom(1f); cellValorUnitatio.setBorderWidthBottom(1f); cellTotal.setBorderWidthBottom(1f); } TableRegistro.addCell(cellQuan); if (listaValores.size() - 1 >= i || listaValores.size() - 1 == i) { TableRegistro.addCell(cellDescricao); } TableRegistro.addCell(cellValorUnitatio); TableRegistro.addCell(cellTotal); } PdfPTable pTablePrincipalPagamento = new PdfPTable(new float[] { 55, 45 }); pTablePrincipalPagamento.setWidthPercentage(95); PdfPTable pTableFomaPagamentoPricipal = new PdfPTable(1); PdfPTable pTableFomaPagamento = new PdfPTable(new float[] { 15, 50, 10 }); PdfPTable pTableFomaValoresPricipal = new PdfPTable(1); PdfPTable pTableFomaValores = new PdfPTable(new float[] { 15, 47, 38 }); PdfPCell cellvazio = new PdfPCell(new Phrase(" ", fontCorpo)); PdfPCell cellTituloFormaPagamento = new PdfPCell(new Phrase("Forma de Pagamento", fontCorpoN)); cellTituloFormaPagamento.setBorderWidthBottom(0f); cellTituloFormaPagamento.setBorderWidthTop(1f); cellTituloFormaPagamento.setBorderWidthRight(0f); cellTituloFormaPagamento.setBorderWidthLeft(0f); PdfPCell cellTituloForma1 = new PdfPCell(new Phrase(" Cheque", fontCorpo)); cellTituloForma1.setBorderWidthBottom(0f); cellTituloForma1.setBorderWidthTop(0f); cellTituloForma1.setBorderWidthRight(0f); cellTituloForma1.setBorderWidthLeft(0f); PdfPCell cellTituloForma2 = new PdfPCell(new Phrase(" Dinheiro", fontCorpo)); cellTituloForma2.setBorderWidthBottom(0f); cellTituloForma2.setBorderWidthTop(0f); cellTituloForma2.setBorderWidthRight(0f); cellTituloForma2.setBorderWidthLeft(0f); PdfPCell cellTituloForma3 = new PdfPCell(new Phrase(" Outros", fontCorpo)); cellTituloForma3.setBorderWidthBottom(1f); cellTituloForma3.setBorderWidthTop(0f); cellTituloForma3.setBorderWidthRight(0f); cellTituloForma3.setBorderWidthLeft(0f); cellvazio.setBorderWidthBottom(0f); cellvazio.setBorderWidthTop(1f); cellvazio.setBorderWidthRight(0f); cellvazio.setBorderWidthLeft(1f); pTableFomaPagamento.addCell(cellvazio); pTableFomaPagamento.addCell(cellTituloFormaPagamento); cellvazio.setBorderWidthBottom(0f); cellvazio.setBorderWidthTop(1f); cellvazio.setBorderWidthRight(1f); cellvazio.setBorderWidthLeft(0f); pTableFomaPagamento.addCell(cellvazio); cellvazio.setBorderWidthBottom(0f); cellvazio.setBorderWidthTop(0f); cellvazio.setBorderWidthRight(0f); cellvazio.setBorderWidthLeft(1f); pTableFomaPagamento.addCell(cellvazio); pTableFomaPagamento.addCell(cellTituloForma1); cellvazio.setBorderWidthBottom(0f); cellvazio.setBorderWidthTop(0f); cellvazio.setBorderWidthRight(1f); cellvazio.setBorderWidthLeft(0f); pTableFomaPagamento.addCell(cellvazio); cellvazio.setBorderWidthBottom(0f); cellvazio.setBorderWidthTop(0f); cellvazio.setBorderWidthRight(0f); cellvazio.setBorderWidthLeft(1f); pTableFomaPagamento.addCell(cellvazio); pTableFomaPagamento.addCell(cellTituloForma2); cellvazio.setBorderWidthBottom(0f); cellvazio.setBorderWidthTop(0f); cellvazio.setBorderWidthRight(1f); cellvazio.setBorderWidthLeft(0f); pTableFomaPagamento.addCell(cellvazio); cellvazio.setBorderWidthBottom(1f); cellvazio.setBorderWidthTop(0f); cellvazio.setBorderWidthRight(0f); cellvazio.setBorderWidthLeft(1f); pTableFomaPagamento.addCell(cellvazio); pTableFomaPagamento.addCell(cellTituloForma3); cellvazio.setBorderWidthBottom(1f); cellvazio.setBorderWidthTop(0f); cellvazio.setBorderWidthRight(1f); cellvazio.setBorderWidthLeft(0f); pTableFomaPagamento.addCell(cellvazio); PdfPCell cellNull = new PdfPCell(new Phrase(" ", fontMenor)); cellNull.setBorderWidthBottom(0f); cellNull.setBorderWidthTop(0f); cellNull.setBorderWidthRight(0f); cellNull.setBorderWidthLeft(0f); pTableFomaPagamentoPricipal.addCell(cellNull); PdfPCell cellPagamento = new PdfPCell(pTableFomaPagamento); cellPagamento.setBorder(0); pTableFomaPagamentoPricipal.addCell(cellPagamento); PdfPCell cellPecentage1 = new PdfPCell(new Phrase(((nomeSeguro.equals("Viagem") || isReseguro) ? " " : ((nomeSeguro.equals("Acidente Para Grupo")) ? " " : "2.50%")), fontCorpo)); cellPecentage1.setHorizontalAlignment(Element.ALIGN_CENTER); cellPecentage1.setBorderWidthBottom(0f); cellPecentage1.setBorderWidthTop(1f); cellPecentage1.setBorderWidthRight(0f); cellPecentage1.setBorderWidthLeft(1f); PdfPCell cellPecentage2 = new PdfPCell(new Phrase((isReseguro) ? " " : "5%", fontCorpo)); cellPecentage2.setHorizontalAlignment(Element.ALIGN_CENTER); cellPecentage2.setBorderWidthBottom(0f); cellPecentage2.setBorderWidthTop(0f); cellPecentage2.setBorderWidthRight(0f); cellPecentage2.setBorderWidthLeft(1f); PdfPCell cellPecentage3 = new PdfPCell(new Phrase(" ", fontCorpo)); cellPecentage3.setHorizontalAlignment(Element.ALIGN_CENTER); cellPecentage3.setBorderWidthBottom(0f); cellPecentage3.setBorderWidthTop(0f); cellPecentage3.setBorderWidthRight(0f); cellPecentage3.setBorderWidthLeft(1f); PdfPCell cellFundo = new PdfPCell(new Phrase(fundoContrato, fontCorpo)); cellFundo.setHorizontalAlignment(Element.ALIGN_RIGHT); cellFundo.setBorderWidthBottom(0f); cellFundo.setBorderWidthTop(1f); cellFundo.setBorderWidthRight(0f); cellFundo.setBorderWidthLeft(0f); PdfPCell cellImposto = new PdfPCell(new Phrase((isReseguro) ? " " : "IMPOSTO", fontCorpo)); cellImposto.setHorizontalAlignment(Element.ALIGN_RIGHT); cellImposto.setBorderWidthBottom(0f); cellImposto.setBorderWidthTop(0f); cellImposto.setBorderWidthRight(0f); cellImposto.setBorderWidthLeft(0f); PdfPCell cellSelo = new PdfPCell(new Phrase((isReseguro) ? " " : "ACESSORIOS", fontCorpo)); cellSelo.setHorizontalAlignment(Element.ALIGN_RIGHT); cellSelo.setBorderWidthBottom(0f); cellSelo.setBorderWidthTop(0f); cellSelo.setBorderWidthRight(0f); cellSelo.setBorderWidthLeft(0f); PdfPCell cellvazio1; if (!isReseguro) { cellvazio1 = new PdfPCell( new Phrase( ((nomeSeguro.equals("Viagem")) ? ((contrato.getValorNC() == null || contrato.getValorNC().isEmpty()) ? " " : Moeda.format( Double.valueOf(contrato.getValorNC().replace(',', '.'))) + " EUR") : ((nomeSeguro.equals("Acidente Para Grupo")) ? " " : ((nomeSeguro.equals("Automovel")) ? Moeda.format( (Double.valueOf(contrato.getPremioLiquido()) * 0.025)) + " " + contrato.getSigla() : "2.50%"))), fontCorpo)); } else { cellvazio1 = new PdfPCell(new Phrase(" ", fontCorpo)); } pTableFomaValores.addCell(cellPecentage1); pTableFomaValores.addCell(cellFundo); cellvazio1.setBorderWidthTop(1); cellvazio1.setBorderWidthRight(1); cellvazio1.setHorizontalAlignment(Element.ALIGN_RIGHT); pTableFomaValores.addCell(cellvazio1); double i05 = 0;//imposto 0.05% double i25 = 0;//imposto 2.5% try { if (nomeSeguro.equals("Viagem")) { i05 = 0.05 * Moeda.arrendodamento(contrato.getValorNC().replace(',', '.')); i25 = 0.006 * Moeda.arrendodamento(contrato.getValorNC().replace(',', '.')); } else if (!isReseguro) { i05 = 0.05 * Moeda.arrendodamento(contrato.getPremioLiquido()); i25 = 0.006 * Moeda.arrendodamento(contrato.getPremioLiquido()); } } catch (Exception e) { } PdfPCell cellvazio2 = new PdfPCell( new Phrase((isReseguro) ? " " : (Moeda.format(i05) + " " + contrato.getSigla()), fontCorpo)); pTableFomaValores.addCell(cellPecentage2); pTableFomaValores.addCell(cellImposto); cellvazio2.setBorderWidthRight(1); cellvazio2.setBottom(10000); cellvazio2.setHorizontalAlignment(Element.ALIGN_RIGHT); pTableFomaValores.addCell(cellvazio2); PdfPCell cellvazio3 = new PdfPCell( new Phrase((isReseguro) ? " " : (Moeda.format(i25) + " " + contrato.getSigla()), fontCorpo)); pTableFomaValores.addCell(cellPecentage3); pTableFomaValores.addCell(cellSelo); cellvazio3.setBorderWidthRight(1); cellvazio3.setHorizontalAlignment(Element.ALIGN_RIGHT); pTableFomaValores.addCell(cellvazio3); PdfPTable pTableTotalPagar = new PdfPTable(2); PdfPCell cellTituloTotalPagar = new PdfPCell( new Phrase("TOTAL A PAGAR " + contrato.getSigla(), fontCorpoN)); cellTituloTotalPagar.setBorderWidthBottom(1f); cellTituloTotalPagar.setBorderWidthTop(0f); cellTituloTotalPagar.setBorderWidthRight(0f); cellTituloTotalPagar.setBorderWidthLeft(1f); PdfPCell cellValorPagar = new PdfPCell( new Phrase(contrato.getPremioLiquidoMoeda() + " " + contrato.getSigla(), fontCorpo)); cellValorPagar.setBorderWidthBottom(1f); cellValorPagar.setBorderWidthTop(0f); cellValorPagar.setBorderWidthRight(1f); cellValorPagar.setBorderWidthLeft(0f); cellValorPagar.setHorizontalAlignment(Element.ALIGN_RIGHT); pTableTotalPagar.addCell(cellTituloTotalPagar); pTableTotalPagar.addCell(cellValorPagar); PdfPTable pTableSubTotal = new PdfPTable(new float[] { 62, 38 }); PdfPCell cellTituloSubTotal = new PdfPCell(new Phrase("SubTotal", fontCorpoN)); cellTituloSubTotal.setBorder(0); cellTituloSubTotal.setHorizontalAlignment(Element.ALIGN_RIGHT); PdfPCell cellValorSubTotal = new PdfPCell( new Phrase(contrato.getPremioBrutoMoeda() + " " + contrato.getSigla(), fontCorpo)); cellValorSubTotal.setBorderWidthBottom(0.5f); cellValorSubTotal.setBorderWidthTop(1f); cellValorSubTotal.setBorderWidthRight(0.5f); cellValorSubTotal.setBorderWidthLeft(0.5f); cellValorSubTotal.setHorizontalAlignment(Element.ALIGN_RIGHT); pTableSubTotal.addCell(cellTituloSubTotal); pTableSubTotal.addCell(cellValorSubTotal); PdfPCell cellPagament1 = new PdfPCell(pTableSubTotal); cellPagament1.setBorder(0); PdfPCell cellPagament2 = new PdfPCell(pTableFomaValores); cellPagament2.setBorder(0); PdfPCell cellPagament3 = new PdfPCell(pTableTotalPagar); cellPagament3.setBorder(0); pTableFomaValoresPricipal.addCell(cellPagament1); pTableFomaValoresPricipal.addCell(cellPagament2); pTableFomaValoresPricipal.addCell(cellPagament3); PdfPCell cellPagamentPricipal1 = new PdfPCell(pTableFomaPagamentoPricipal); cellPagamentPricipal1.setBorder(0); PdfPCell cellPagamentPricipal2 = new PdfPCell(pTableFomaValoresPricipal); cellPagamentPricipal2.setBorder(0); pTablePrincipalPagamento.addCell(cellPagamentPricipal1); pTablePrincipalPagamento.addCell(cellPagamentPricipal2); PdfPTable pTableCambio = new PdfPTable(2); pTableCambio.setWidthPercentage(95); PdfPCell cellTituloCambio1 = new PdfPCell(new Phrase("Cambio", fontCorpoN)); cellTituloCambio1.setBorder(0); cellTituloCambio1.setHorizontalAlignment(Element.ALIGN_CENTER); PdfPCell cellTituloCambio2 = new PdfPCell(new Phrase("Total Em Dobras", fontCorpoN)); cellTituloCambio2.setBorder(0); cellTituloCambio2.setHorizontalAlignment(Element.ALIGN_CENTER); PdfPCell cellValorCambio = new PdfPCell(new Phrase( "1 " + contrato.getSigla() + "= " + Moeda.format(valorCompra(contrato.getDataRegistro(), contrato)) + " " + "STD", fontCorpo)); cellValorCambio.setBorder(0); cellValorCambio.setHorizontalAlignment(Element.ALIGN_CENTER); DecimalFormat formato = new DecimalFormat("#.##"); String numero = formato.format(Double.valueOf(contrato.getPremioLiquido())); double premioLiquido = Double.valueOf((numero).replace(',', '.')); // System.err.println(taxa + "Taxa * Premio Liquido" + Double.valueOf(contrato.getPremioLiquido())); // System.err.println(taxa + "Taxa * Premio Liquido" + Double.toString(premioLiquido)); PdfPCell cellValorDobras = new PdfPCell( new Phrase(Moeda.format((taxa * premioLiquido)) + " STD", fontCorpo)); cellValorDobras.setBorder(0); cellValorDobras.setHorizontalAlignment(Element.ALIGN_CENTER); pTableCambio.addCell(cellTituloCambio1); pTableCambio.addCell(cellTituloCambio2); pTableCambio.addCell(cellValorCambio); pTableCambio.addCell(cellValorDobras); PdfPTable pTableData = new PdfPTable(1); pTableData.setWidthPercentage(95); Paragraph pData = new Paragraph(); pData.add(new Phrase("Elaborado por ", fontCorpo)); pData.add(new Phrase(interCodVendedor, fontCorpoN)); pData.add(new Phrase(" Data ".toUpperCase() + sdf.format(new Date()), fontCorpo)); PdfPCell cellData = new PdfPCell(pData); cellData.setBorder(0); cellData.setBorderWidthBottom(0.1f); cellData.setHorizontalAlignment(Element.ALIGN_CENTER); pTableData.addCell(cellData); Document documento = new Document(); documento.setPageSize(PageSize.A4); documento.setMargins(20f, 20f, 70f, 5f); String f1 = (arquivo + "/" + user + "/Seguro " + nomeSeguro + "/"); File f = new File(f1); String Ddata = sdf1.format(new Date()); f.mkdirs(); f = new File(f.getAbsoluteFile() + "/" + "Nota de Debito " + Ddata + ".pdf"); reString = "../Documentos/" + user + "/Seguro " + nomeSeguro + "/" + "Nota de Debito " + Ddata + ".pdf"; OutputStream outputStraem = new FileOutputStream(f); PdfWriter writer = PdfWriter.getInstance(documento, outputStraem); if (MarcaDAgua.isSimulation) { MarcaDAgua.SimulacaoVertical v = new MarcaDAgua.SimulacaoVertical(); writer.setPageEvent(v); } if (MarcaDAgua.isCanceled) { MarcaDAgua.AnulacaoVertical v = new MarcaDAgua.AnulacaoVertical(); writer.setPageEvent(v); } documento.open(); documento.add(pTableEmpresaPricipal); documento.add(pTableFatura); documento.add(pTableLinha); documento.add(pTableLinha); documento.add(pTableTitulo); documento.add(pTableClientePrincipal); documento.add(pTableNull); documento.add(TableRegistro); documento.add(pTablePrincipalPagamento); documento.add(pTableNull); documento.add(pTableNull); documento.add(pTableCambio); documento.add(pTableNull); documento.add(pTableNull); documento.add(pTableNull); documento.add(pTableData); documento.add(pTableNull); documento.add(pTableNull); documento.add(pTableNull); documento.add(pTableLinha); documento.add(pTableLinha); documento.close(); isReseguro = false; // PrintPdf printPdf = new PrintPdf(f.getAbsolutePath(), f.getAbsolutePath(), 0, 595f,842f,"\\\\JIGASOFTPC\\Hewlett-Packard HP LaserJet P2035",1); // PrintPdf printPdf = new PrintPdf(f.getAbsolutePath(), f.getAbsolutePath(), 1, 595f,842f,"Enviar Para o OneNote 2013",1); // printPdf.print(); return reString; } catch (FileNotFoundException | DocumentException e) { e.printStackTrace(); } catch (IOException ex) { Logger.getLogger(DocNotaDebito.class.getName()).log(Level.SEVERE, null, ex); } return ""; } public DocNotaDebito() { } public static void main(String[] args) { // DocNotaDebito dr = new DocNotaDebito(); // String[] Dados; // ArrayList<String[]> al = new ArrayList<>(); // // Dados = ("4;Seguros de Viagem;5000000;" + (5000000 * 4) + "").split(";"); // al.add(Dados); // // Dados = ("7;Seguros de Viagem;5000000;" + (5000000 * 7) + "").split(";"); // al.add(Dados); // // Dados = ("15;Seguros de Viagem;5000000;" + (5000000 * 15) + "").split(";"); // al.add(Dados); // // dr.docSeguros("Viagem", null, null, "88", null, al, new Contrato(), "ah", "STD", "", "numregistro"); } // class MyFooter extends PdfPageEventHelper { // // @Override // public void onStartPage(PdfWriter writer, Document document) { // try { // PdfContentByte canvas = writer.getDirectContentUnder(); // Image image = Image.getInstance("logo.png"); // image.scaleAbsolute(PageSize.A4.rotate()); // image.scaleToFit(700f, 500f); // image.setAbsolutePosition(document.getPageSize().getWidth() - 495, 170); // canvas.saveState(); // PdfGState state = new PdfGState(); // state.setFillOpacity(0.2f); // canvas.setGState(state); // canvas.addImage(image); // canvas.restoreState(); // } catch (BadElementException | IOException ex) { // Logger.getLogger(ReciboPagamento.class.getName()).log(Level.SEVERE, null, ex); // } catch (DocumentException ex) { // Logger.getLogger(ReciboPagamento.class.getName()).log(Level.SEVERE, null, ex); // } // } // } double taxa = 0; public double valorCompra(Date data, Contrato c) { ResultSet rs; if (data == null) { rs = Call.callTableFunction("PACK_CONTA.getTaxaDay", "*", OperacaoData.toSQLDate(new Date()), c.getMoeda()); } else { rs = Call.callTableFunction("PACK_CONTA.getTaxaDay", "*", OperacaoData.toSQLDate(data), c.getMoeda()); } Consumer<HashMap<String, Object>> act = (map) -> { taxa = Double.valueOf(toString(map.get("TX_VENDA"))); }; Call.forEchaResultSet(act, rs); return taxa; } public String toString(Object o) { return (o == null) ? "" : o.toString(); } }