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 bean.MaritimoBean; import com.itextpdf.text.BadElementException; 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.PdfContentByte; import com.itextpdf.text.pdf.PdfGState; import com.itextpdf.text.pdf.PdfPCell; import com.itextpdf.text.pdf.PdfPTable; import com.itextpdf.text.pdf.PdfPageEventHelper; import com.itextpdf.text.pdf.PdfWriter; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.io.Serializable; import java.sql.SQLException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; import java.util.logging.Level; import java.util.logging.Logger; import modelo.Contrato; /** * * @author AhmedJorge */ public class SeguroMaritimo implements Serializable { private String reString; public String criarDoc(String numApolice, String numCliente, MaritimoBean mb, Contrato c, String user, String moeda, String arquivo) { try { SimpleDateFormat sdf = new SimpleDateFormat("dd 'de' MMMM 'de' yyyy", new Locale("pt", "BR")); SimpleDateFormat sdf1 = new SimpleDateFormat("dd-MM-yyyy hh'.'mm'.'ss"); Font fontCabecalhoN = FontFactory.getFont(Fontes.FONTB, BaseFont.WINANSI, BaseFont.EMBEDDED, 9.5f); Font fontCorpo = FontFactory.getFont(Fontes.FONT, BaseFont.WINANSI, BaseFont.EMBEDDED, 8f); Font fontCorpoP = FontFactory.getFont(Fontes.FONT, BaseFont.WINANSI, BaseFont.EMBEDDED, 7f); Font fontCorpoN = FontFactory.getFont(Fontes.FONTB, BaseFont.WINANSI, BaseFont.EMBEDDED, 8f); Font fontCorpoNG = FontFactory.getFont(Fontes.FONTB, BaseFont.WINANSI, BaseFont.EMBEDDED, 8.5f); Font fontCabecalhoNG = FontFactory.getFont(Fontes.FONTB, BaseFont.WINANSI, BaseFont.EMBEDDED, 16f, Font.UNDERLINE); PdfPTable pTableEmpresaPricipal = new PdfPTable(new float[] { 25f, 75f }); PdfPTable pTableEmpresaInforImpres1 = new PdfPTable(1); PdfPTable pTableEmpresaInforImpres2 = new PdfPTable(1); PdfPTable pTableEmpresaInforImpres5 = new PdfPTable(1); PdfPTable pTableNull = new PdfPTable(1); PdfPCell cellNull = new PdfPCell(new Phrase(" ", fontCorpo)); cellNull.setBorder(0); pTableNull.addCell(cellNull); PdfPCell pCellNomeEmpresa = new PdfPCell(new Phrase(Empresa.NOME, fontCabecalhoNG)); 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 pCellPolice = new PdfPCell(new Phrase(Empresa.APOLICE + numApolice, fontCabecalhoN)); pCellPolice.setBorder(0); pCellPolice.setBorder(0); Image imageEmpresa = Image.getInstance("logo.png"); imageEmpresa.scaleToFit(120f, 85f); pTableEmpresaInforImpres1.addCell(pCellNomeEmpresa); pTableEmpresaInforImpres1.addCell(pCellNomeEndereco); pTableEmpresaInforImpres1.addCell(pCellCaixaPostal); pTableEmpresaInforImpres1.addCell(pCellTeleFax); pTableEmpresaInforImpres1.addCell(pCellSociedade); pTableEmpresaInforImpres1.addCell(pCellPolice); PdfPCell cellTabela3 = new PdfPCell(pTableEmpresaInforImpres1); cellTabela3.setBorder(0); pTableEmpresaInforImpres5.addCell(cellTabela3); PdfPCell cellTabela5 = new PdfPCell(pTableEmpresaInforImpres5); cellTabela5.setBorder(0); PdfPCell cellTabela6 = new PdfPCell(imageEmpresa); cellTabela6.setBorder(0); pTableEmpresaPricipal.addCell(cellTabela6); pTableEmpresaPricipal.addCell(cellTabela5); PdfPTable pTableSeguro = new PdfPTable(1); PdfPTable pTableCliente = new PdfPTable(1); PdfPTable pTableTitulo = new PdfPTable(1); Phrase pTitulo = new Phrase("Formulario de SEguro Maritimo".toUpperCase()); pTitulo.getFont().setStyle(Font.BOLD); pTitulo.getFont().setFamily(Font.FontFamily.COURIER.name()); PdfPCell cellTitulo = new PdfPCell(pTitulo); cellTitulo.setBorder(0); cellTitulo.setHorizontalAlignment(Element.ALIGN_CENTER); pTableTitulo.addCell(cellTitulo); ClienteI ci = new ClienteI(numCliente); PdfPCell cellTituloTsbleSegurado = new PdfPCell( new Phrase("1 - Informaes Cliente".toUpperCase(), fontCorpoNG)); cellTituloTsbleSegurado.setBorder(0); Paragraph pCl = new Paragraph(); pCl.add(new Phrase(" " + ci.getNOMEL_(), fontCorpo)); pCl.add(new Phrase(ci.getNOME_(), fontCorpoN)); PdfPCell cellNome = new PdfPCell(new Phrase(pCl)); cellNome.setBorder(0); pCl = new Paragraph(); pCl.add(new Phrase(" " + ci.getENDERECOL_(), fontCorpo)); pCl.add(new Phrase(ci.getENDERECO_(), fontCorpoN)); PdfPCell cellEndereco = new PdfPCell(pCl); cellEndereco.setBorder(0); pCl = new Paragraph(); pCl.add(new Phrase(" " + ci.getNUNCLIENTEL_(), fontCorpo)); pCl.add(new Phrase(ci.getNUNCLIENTE_(), fontCorpoN)); PdfPCell cellNCliente = new PdfPCell(pCl); cellNCliente.setBorder(0); pCl = new Paragraph(); pCl.add(new Phrase(" " + ci.getPROFISSAOL_(), fontCorpo)); pCl.add(new Phrase(ci.getPROFISSAO_(), fontCorpoN)); PdfPCell cellProfissao = new PdfPCell(pCl); cellProfissao.setBorder(0); pCl = new Paragraph(); pCl.add(new Phrase(" " + ci.getLOCALTRABALHOL_(), fontCorpo)); pCl.add(new Phrase(ci.getLOCALTRABALHO_(), fontCorpoN)); PdfPCell cellLocalTrabalho = new PdfPCell(pCl); cellLocalTrabalho.setBorder(0); pTableCliente.addCell(cellTituloTsbleSegurado); pTableCliente.addCell(cellNome); pTableCliente.addCell(cellEndereco); pTableCliente.addCell(cellNCliente); pTableCliente.addCell(cellProfissao); pTableCliente.addCell(cellLocalTrabalho); PdfPCell cellTiltuloSegro = new PdfPCell( new Phrase("3 - Montante Segurado/Limete de Responsabilidade".toUpperCase(), fontCorpoNG)); cellTiltuloSegro.setBorder(0); PdfPCell cellApolice = new PdfPCell( new Phrase(" N Aplice: ".toUpperCase() + numApolice, fontCorpo)); cellApolice.setBorder(0); PdfPCell cellPeriodo = new PdfPCell(new Phrase(" Periodo Do Seguro: ".toUpperCase() + ((c.getDataInicio() != null) ? sdf.format(c.getDataInicio()) : "") + " " + ((c.getDataFim() != null) ? sdf.format(c.getDataFim()) : ""), fontCorpo)); cellPeriodo.setBorder(0); PdfPCell cellDataNota = new PdfPCell(new Phrase( " Ambas as datas incluidas, para os periodos adicionados que possam ser mutuamente acordadas" .toUpperCase(), fontCorpo)); cellDataNota.setBorder(0); PdfPCell cellCorpoMotor = new PdfPCell(new Phrase( " Para Corpo e o motor (Excluindo risco de guerra): ".toUpperCase() + c.getPrimeiroPremio(), fontCorpo)); cellCorpoMotor.setBorder(0); PdfPCell cellParaTerceiro = new PdfPCell( new Phrase(" Para terceiros/responsabilidade civil: ", fontCorpo)); cellParaTerceiro.setBorder(0); PdfPCell cellAcidentePessoal = new PdfPCell( new Phrase(" Para acidente pessoal ao condutor: ", fontCorpo)); cellAcidentePessoal.setBorder(0); PdfPCell cellTotalPremioAnual = new PdfPCell( new Phrase(" Valor Premio Anual: ".toUpperCase() + c.getPremioAnual(), fontCorpo)); cellTotalPremioAnual.setBorder(0); pTableSeguro.addCell(cellTiltuloSegro); pTableSeguro.addCell(cellApolice); pTableSeguro.addCell(cellPeriodo); pTableSeguro.addCell(cellDataNota); pTableSeguro.addCell(cellCorpoMotor); pTableSeguro.addCell(cellParaTerceiro); pTableSeguro.addCell(cellAcidentePessoal); pTableSeguro.addCell(cellTotalPremioAnual); PdfPTable pTableDadosTitulo = new PdfPTable(1); PdfPCell cellDadosTitulo = new PdfPCell(new Phrase()); cellDadosTitulo.setBorder(0); Paragraph pInfoTitulo = new Paragraph("2 - Informaes do(s) Navio(s)".toUpperCase(), fontCorpoN); Paragraph pInfoShip = new Paragraph( " 1. Navio/Embarcao: ".toUpperCase() + mb.getMaritimo().getNomeNavio(), fontCorpo); Paragraph pInfo1 = new Paragraph(" A)MARCA/MODELO (CASSI: ) " + mb.getMaritimo().getMarcaModelo() + "/" + mb.getMaritimo().getMarcaMotor(), fontCorpo); Paragraph pInfo2 = new Paragraph(" 2. TIPO DE CONSTRUO DO NAVIO (i.e Material usado) " + mb.getMaritimo().getTipoConstrucao(), fontCorpo); Paragraph pInfo3 = new Paragraph(" 3. TIPO DE NAVIO: " + mb.getMaritimo().getTipoNavio(), fontCorpo); Paragraph pInfo4 = new Paragraph( " 4. IDADE DO NAVIO (ano de construo): " + mb.getMaritimo().getIdadeNavio(), fontCorpo); Paragraph pInfo5 = new Paragraph( " 5. CONDIO ACTUAL DO NAVIO: " + mb.getMaritimo().getCondicaoAtual(), fontCorpo); Paragraph pInfo6 = new Paragraph(" 6. RELATRIO DE MANUTEMO DOS PROPRIET?RIOS DO NAVIO: ", fontCorpo); Paragraph pInfo7 = new Paragraph( " 7. CLASSE DE ESTATUTO DE RENOVAO: " + mb.getMaritimo().getClasseRenovacao(), fontCorpo); Paragraph pInfo8 = new Paragraph(" 8. BANDEIRA DO NAVIO: " + mb.getMaritimo().getBandeiraNavio(), fontCorpo); Paragraph pInfo9 = new Paragraph( " 9. USO A QUE SE DISTINA O NAVIO OU COMRCIO: " + mb.getMaritimo().getUsoNavio(), fontCorpo); Paragraph pInfo10 = new Paragraph(" 10. QUANTIDADE/PESO DO " + mb.getMaritimo().getNomeNavio() + " : " + mb.getMaritimo().getPeso() + " (LIQUIDO E BRUTO):VER NO RELATRIO", fontCorpo); Paragraph pInfo11 = new Paragraph(" 11. POTNCIA DO MOTOR", fontCorpo); Paragraph pInfo12 = new Paragraph( " 12. TIPO DE COMBUST?VEL DO MOTOR DE PROPULSAO: " + mb.getMaritimo().getTipoCombustivel(), fontCorpo); Paragraph pInfo13 = new Paragraph(" 13. NMERO DO MOTOR: " + mb.getMaritimo().getNumMotor(), fontCorpo); Paragraph pInfo14 = new Paragraph(" 14. MARCA DO MOTOR: " + mb.getMaritimo().getMarcaMotor(), fontCorpo); Paragraph pInfo15 = new Paragraph( " 15. NMERO M?XIMO DE TRIPULANTES: " + mb.getMaritimo().getNumMaximoTripulante(), fontCorpo); Paragraph pInfo16 = new Paragraph(" 16. DISPOSITIVOS DE SALVAMENTO SUFICIENTE PARA UM M?XIMO: ", fontCorpo); Paragraph pInfo17 = new Paragraph(" 17. APOIOS PARA NAVEGAO INSTALADOS: " + mb.getMaritimo().getEspecificacaoApoioNavegacao(), fontCorpo); Paragraph pInfo18 = new Paragraph( " 18. EXPERINCIA ANTERIOR DE RECLAMAO: " + mb.getMaritimo().getExperienciaRecalmacao(), fontCorpo); Paragraph pInfo19 = new Paragraph(" 19. MBITO DA COBERTURA: ", fontCorpo); Paragraph pInfo20 = new Paragraph( " 20. LIMITAO TERRITORIAL/?REA DE OERAO: " + mb.getMaritimo().getAreaOperacao(), fontCorpo); Paragraph pInfo21 = new Paragraph(" DATA: " + sdf.format(new Date()), fontCorpo); cellDadosTitulo.addElement(pInfoTitulo); cellDadosTitulo.addElement(pInfoShip); cellDadosTitulo.addElement(pInfo1); cellDadosTitulo.addElement(pInfo2); cellDadosTitulo.addElement(pInfo3); cellDadosTitulo.addElement(pInfo4); cellDadosTitulo.addElement(pInfo5); cellDadosTitulo.addElement(pInfo6); cellDadosTitulo.addElement(pInfo7); cellDadosTitulo.addElement(pInfo8); cellDadosTitulo.addElement(pInfo9); cellDadosTitulo.addElement(pInfo10); cellDadosTitulo.addElement(pInfo11); cellDadosTitulo.addElement(pInfo12); cellDadosTitulo.addElement(pInfo13); cellDadosTitulo.addElement(pInfo14); cellDadosTitulo.addElement(pInfo15); cellDadosTitulo.addElement(pInfo16); cellDadosTitulo.addElement(pInfo17); cellDadosTitulo.addElement(pInfo18); cellDadosTitulo.addElement(pInfo19); cellDadosTitulo.addElement(pInfo20); cellDadosTitulo.addElement(pInfo21); pTableDadosTitulo.addCell(cellDadosTitulo); PdfPTable pTableAssinaturaTitulo = new PdfPTable(1); PdfPTable pTableAssinatura = new PdfPTable(new float[] { 50f, 50f }); PdfPCell cellAssinatora = new PdfPCell(new Phrase("Assinaturas".toUpperCase(), fontCorpoN)); cellAssinatora.setBorder(0); cellAssinatora.setHorizontalAlignment(Element.ALIGN_CENTER); PdfPCell celllinha1 = new PdfPCell( new Phrase("____________________________________________".toUpperCase(), fontCorpo)); celllinha1.setBorder(0); celllinha1.setHorizontalAlignment(Element.ALIGN_CENTER); PdfPCell celllinha2 = new PdfPCell( new Phrase("____________________________________________".toUpperCase(), fontCorpo)); celllinha2.setBorder(0); celllinha2.setHorizontalAlignment(Element.ALIGN_CENTER); PdfPCell celllinha11 = new PdfPCell(new Phrase("para nicon Seguro sa stp".toUpperCase(), fontCorpoP)); celllinha11.setBorder(0); celllinha11.setHorizontalAlignment(Element.ALIGN_CENTER); PdfPCell celllinha21 = new PdfPCell(new Phrase("o segurado ".toUpperCase(), fontCorpoP)); celllinha21.setBorder(0); celllinha21.setHorizontalAlignment(Element.ALIGN_CENTER); pTableAssinaturaTitulo.addCell(cellAssinatora); pTableAssinatura.addCell(celllinha1); pTableAssinatura.addCell(celllinha2); pTableAssinatura.addCell(celllinha11); pTableAssinatura.addCell(celllinha21); Document documento = new Document(); documento.setPageSize(PageSize.A4); documento.setMargins(20f, 20f, 35f, 5f); // File ff= new File("Documentos\\"+user+"\\Seguro Maritimo\\"); // ff.mkdirs(); // ff =new File(ff.getAbsoluteFile()+"\\"+"Formulario Seguro Maritimo "+sdf1.format(new Date())+".pdf"); File ff = new File(arquivo + "/" + user + "/Seguro Maritimo/"); ff.mkdirs(); String Ddata = sdf1.format(new Date()); ff = new File(ff.getAbsoluteFile() + "/" + "Formulario Seguro Maritimo " + Ddata + ".pdf"); reString = "../Documentos/" + user + "/Seguro Maritimo/" + "Formulario Seguro Maritimo " + Ddata + ".pdf"; OutputStream outputStraem = new FileOutputStream(ff); 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(pTableNull); documento.add(pTableTitulo); documento.add(pTableNull); documento.add(pTableCliente); documento.add(pTableNull); documento.add(pTableDadosTitulo); documento.add(pTableNull); documento.add(pTableSeguro); documento.add(pTableNull); documento.add(pTableAssinaturaTitulo); documento.add(pTableNull); documento.add(pTableNull); documento.add(pTableAssinatura); documento.close(); // PrintPdf printPdf = new PrintPdf(ff.getAbsolutePath(), ff.getAbsolutePath(), 0, 595f,842f,"Enviar Para o OneNote 2013",1); // //PrintPdf printPdf = new PrintPdf(ff.getAbsolutePath(), ff.getAbsolutePath(), 0, 595f,842f,"Hewlett-Packard HP LaserJet P2035",1); // // printPdf.print(); } catch (BadElementException | IOException ex) { Logger.getLogger(SeguroAPG.class.getName()).log(Level.SEVERE, null, ex); } catch (DocumentException ex) { Logger.getLogger(SeguroAPG.class.getName()).log(Level.SEVERE, null, ex); } return reString; } public static void main(String[] args) { SeguroMaritimo aPG = new SeguroMaritimo(); aPG.criarDoc("ddhd", "223", new MaritimoBean(), new Contrato(), "ah", "STD", ""); } // 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); // } // } // } }