List of usage examples for com.lowagie.text Chunk Chunk
public Chunk(DrawInterface separator, float tabPosition, boolean newline)
From source file:com.gp.cong.logisoft.reports.BookingCoverSheetPdfCreater.java
public void createBody(SearchBookingReportDTO searchBookingReportDTO, String simpleRequest, MessageResources messageResources, String printFromBl, String documentName) throws DocumentException, MalformedURLException, IOException, Exception { NumberFormat numformat = new DecimalFormat("##,###,##0.00"); PdfPCell cell = new PdfPCell(); Paragraph paragraph;/* ww w.ja v a 2 s.c o m*/ PdfPTable table; Phrase phrase; PdfPTable mainTable = makeTable(2); mainTable.setWidthPercentage(100); BookingFcl bookingFcl = searchBookingReportDTO.getBookingflFcl(); FclBl fclBl = null; if (CommonUtils.isNotEmpty(printFromBl)) { fclBl = new FclBlDAO().getFileNoObject(bookingFcl.getFileNo()); } String company = null; String contactName = ""; String email = null; String phone = null; String fax = null; String address = null; QuotationDAO quotationDAO = new QuotationDAO(); CustAddressBC custAddressBC = new CustAddressBC(); Quotation quotation = quotationDAO.getFileNoObject(bookingFcl.getFileNo()); if (null != quotation) { contactName = quotation.getContactname(); } if (bookingFcl.getShippercheck() != null && bookingFcl.getShippercheck().equals("on")) { //from=bookingFcl.getShipper(); company = bookingFcl.getShipper(); email = bookingFcl.getShipperEmail(); phone = bookingFcl.getShipperPhone(); fax = bookingFcl.getShipperFax(); address = bookingFcl.getAddressforShipper(); } else if (bookingFcl.getForwardercheck() != null && bookingFcl.getForwardercheck().equals("on")) { company = bookingFcl.getForward(); email = bookingFcl.getForwarderEmail(); phone = bookingFcl.getForwarderPhone(); fax = bookingFcl.getForwarderFax(); address = bookingFcl.getAddressforForwarder(); } else if (bookingFcl.getConsigneecheck() != null && bookingFcl.getConsigneecheck().equals("on")) { company = bookingFcl.getConsignee(); email = bookingFcl.getConsingeeEmail(); phone = bookingFcl.getConsingeePhone(); fax = bookingFcl.getConsigneeFax(); address = bookingFcl.getAddressforConsingee(); } else { if (null != quotation) { company = quotation.getClientname(); email = quotation.getEmail1(); phone = quotation.getPhone(); fax = quotation.getFax(); CustAddress custAddress = custAddressBC.getClientAddress(quotation.getClientnumber()); if (null != custAddress) { address = custAddress.getAddress1(); } } } PdfPTable headerTable = makeTable(3); headerTable.setWidths(new float[] { 20, 50, 30 }); headerTable.setWidthPercentage(100); PdfPTable headerTable1 = makeTable(1); headerTable1.setWidths(new float[] { 100 }); headerTable1.setWidthPercentage(100); PdfPCell headingCell1 = makeCell( new Phrase(messageResources.getMessage("fileNumberPrefix") + String.valueOf(bookingFcl.getFileNo()), headingFont1), Element.ALIGN_CENTER); headingCell1.setBackgroundColor(Color.LIGHT_GRAY); headingCell1.setVerticalAlignment(Element.ALIGN_MIDDLE); headerTable1.addCell(headingCell1); cell = makeCellleftNoBorder(""); cell.addElement(headerTable1); headerTable.addCell(headerTable1); PdfPTable headerTable2 = makeTable(2); headerTable2.setWidths(new float[] { 38, 62 }); headerTable2.setWidthPercentage(100); SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy HH:mm a"); SimpleDateFormat sdfForddMMyyyy = new SimpleDateFormat("dd-MMM-yyyy"); String colon = ": "; String docCut = ""; String carrierDocCut = ""; String etd = ""; String eta = ""; if (bookingFcl.getDocCutOff() != null) { docCut = sdf.format(bookingFcl.getDocCutOff()); } if (bookingFcl.getCarrierDocCut() != null) { carrierDocCut = sdf.format(bookingFcl.getCarrierDocCut()); } if (bookingFcl.getEtd() != null) { etd = sdfForddMMyyyy.format(bookingFcl.getEtd()); } if (bookingFcl.getEta() != null) { eta = sdfForddMMyyyy.format(bookingFcl.getEta()); } headerTable2.addCell(makeCell(new Phrase("Doc Cutoff", headingFont2), Element.ALIGN_LEFT)); headerTable2.addCell(makeCell(new Phrase(colon + docCut, redBoldFont), Element.ALIGN_LEFT)); headerTable2.addCell(makeCell(new Phrase("Carrier Doc Cut", headingFont2), Element.ALIGN_LEFT)); headerTable2.addCell(makeCell(new Phrase(colon + carrierDocCut, redBoldFont), Element.ALIGN_LEFT)); cell = makeCellleftNoBorder(""); cell.addElement(headerTable2); headerTable.addCell(headerTable2); PdfPTable headerTable3 = makeTable(2); headerTable3.setWidths(new float[] { 20, 80 }); headerTable3.setWidthPercentage(100); headerTable3.addCell(makeCell(new Phrase("ETD", headingFont2), Element.ALIGN_LEFT)); headerTable3.addCell(makeCell(new Phrase(colon + etd, headingFont2), Element.ALIGN_LEFT)); headerTable3.addCell(makeCell(new Phrase("ETA", headingFont2), Element.ALIGN_LEFT)); headerTable3.addCell(makeCell(new Phrase(colon + eta, headingFont2), Element.ALIGN_LEFT)); cell = makeCellleftNoBorder(""); cell.addElement(headerTable3); headerTable.addCell(headerTable3); document.add(headerTable); PdfPTable pTable = new PdfPTable(2); pTable.setWidthPercentage(100); PdfPTable clientTable = makeTable(2); clientTable.setWidths(new float[] { 27, 73 }); clientTable.setWidthPercentage(100); clientTable.addCell(makeCellleftNoBorderWithBoldFont("Client Name")); clientTable.addCell(makeCellLeftNoBorderValue(company)); clientTable.addCell(makeCellleftNoBorderWithBoldFont("Client Address")); clientTable.addCell(makeCellLeftNoBorderValue(address)); clientTable.addCell(makeCellleftNoBorderWithBoldFont("Contact Name")); clientTable.addCell(makeCellLeftNoBorderValue(contactName)); cell = makeCellleftNoBorderWithBoldFont("Contact Number"); cell.setNoWrap(true); clientTable.addCell(cell); clientTable.addCell(makeCellLeftNoBorderValue(phone)); clientTable.addCell(makeCellleftNoBorderWithBoldFont("Contact Fax")); clientTable.addCell(makeCellLeftNoBorderValue(fax)); clientTable.addCell(makeCellleftNoBorderWithBoldFont("Contact Email")); clientTable.addCell(makeCellLeftNoBorderValue(email)); cell = makeCellleftNoBorder(""); cell.setBorderWidthRight(0.6f); cell.setBorderWidthBottom(0.6f); cell.setBorderWidthLeft(0.6f); cell.setBorderWidthTop(0.6f); cell.addElement(clientTable); pTable.addCell(cell); PdfPTable carrierTable = makeTable(2); carrierTable.setWidths(new float[] { 26, 74 }); carrierTable.setWidthPercentage(100); String sslName[] = bookingFcl.getSslname().split("//"); carrierTable.addCell(makeCellleftNoBorderWithBoldFont("Carrier")); carrierTable.addCell(makeCellLeftNoBorderValue(sslName.length > 1 ? sslName[0] : "")); carrierTable.addCell(makeCellleftNoBorderWithBoldFont("Vessel")); carrierTable.addCell(makeCellLeftNoBorderValue(bookingFcl.getVessel())); carrierTable.addCell(makeCellleftNoBorderWithBoldFont("Voyage")); carrierTable.addCell(makeCellLeftNoBorderValue(bookingFcl.getVoyageCarrier())); carrierTable.addCell(makeCellleftNoBorderWithBoldFont("SSL Booking#")); carrierTable.addCell(makeCellLeftNoBorderValue(bookingFcl.getSSBookingNo())); carrierTable.addCell(makeCellleftNoBorderWithBoldFont("POO")); carrierTable.addCell(makeCellLeftNoBorderValue(getCityStateName(bookingFcl.getOriginTerminal()))); carrierTable.addCell(makeCellleftNoBorderWithBoldFont("POL")); carrierTable.addCell(makeCellLeftNoBorderValue(getCityStateName(bookingFcl.getPortofOrgin()))); carrierTable.addCell(makeCellleftNoBorderWithBoldFont("POD")); carrierTable.addCell(makeCellLeftNoBorderValue(getCityStateName(bookingFcl.getDestination()))); carrierTable.addCell(makeCellleftNoBorderWithBoldFont("FD")); carrierTable.addCell(makeCellLeftNoBorderValue(getCityStateName(bookingFcl.getPortofDischarge()))); carrierTable.addCell(makeCellleftNoBorderWithBoldFont("Containers")); carrierTable.addCell(makeCellLeftNoBorderValue( this.getContainers(simpleRequest, searchBookingReportDTO, messageResources).getContent())); // PdfPCell cell1 = makeCell(this.getContainers(simpleRequest, searchBookingReportDTO, messageResources), 1); // cell1.setColspan(2); // cell1.setBorderWidthLeft(0.0F); // carrierTable.addCell(cell1); cell = makeCellleftNoBorder(""); cell.setBorderWidthRight(0.6f); cell.setBorderWidthBottom(0.6f); cell.setBorderWidthTop(0.6f); cell.addElement(carrierTable); pTable.addCell(cell); document.add(pTable); PdfPTable hazardsMainTable = makeTable(1); hazardsMainTable.setWidths(new float[] { 100 }); hazardsMainTable.setWidthPercentage(100); PdfPTable hazardsTable = makeTable(3); hazardsTable.setWidths(new float[] { 70, 15, 15 }); hazardsTable.setWidthPercentage(100); Image yes = Image.getInstance(searchBookingReportDTO.getContextPath() + "/images/icons/y.png"); yes.scalePercent(60); yes.scaleAbsoluteWidth(18); PdfPCell yesCell = new PdfPCell(); yesCell.setBorder(0); yesCell.addElement(new Chunk(yes, 32, -0)); Image no = Image.getInstance(searchBookingReportDTO.getContextPath() + "/images/icons/n.png"); no.scalePercent(60); no.scaleAbsoluteWidth(18); PdfPCell noCell = new PdfPCell(); noCell.setBorder(0); noCell.addElement(new Chunk(no, 32, -0)); hazardsTable.addCell(makeCellleftNoBorderWithBoldFont("HAZARDOUS")); if (bookingFcl.getHazmat() != null && "Y".equalsIgnoreCase(bookingFcl.getHazmat())) { hazardsTable.addCell(yesCell); hazardsTable.addCell(makeCell(new Phrase("N", fontforYandN), 1)); } else { hazardsTable.addCell(makeCell(new Phrase("Y", fontforYandN), 1)); hazardsTable.addCell(noCell); } hazardsTable.addCell(makeCellleftNoBorderWithBoldFont("AES")); hazardsTable.addCell(makeCell(new Phrase("Y", fontforYandN), Element.ALIGN_CENTER)); hazardsTable.addCell(makeCell(new Phrase("N", fontforYandN), Element.ALIGN_CENTER)); hazardsTable.addCell(makeCellleftNoBorderWithBoldFont("DIRECT CONSIGMENT")); if (bookingFcl.getDirectConsignmntCheck() != null && "on".equalsIgnoreCase(bookingFcl.getDirectConsignmntCheck())) { hazardsTable.addCell(yesCell); hazardsTable.addCell(makeCell(new Phrase("N", fontforYandN), 1)); } else { hazardsTable.addCell(makeCell(new Phrase("Y", fontforYandN), 1)); hazardsTable.addCell(noCell); } hazardsTable.addCell(makeCellleftNoBorderWithBoldFont("AFR")); hazardsTable.addCell(makeCell(new Phrase("Y", fontforYandN), Element.ALIGN_CENTER)); hazardsTable.addCell(makeCell(new Phrase("N", fontforYandN), Element.ALIGN_CENTER)); cell = makeCellleftNoBorder(""); cell.setBorderWidthRight(0.6f); cell.setBorderWidthBottom(0.6f); cell.setBorderWidthLeft(0.6f); cell.addElement(hazardsTable); hazardsMainTable.addCell(cell); document.add(hazardsMainTable); PdfPTable docsMainTable = makeTable(2); docsMainTable.setWidths(new float[] { 30, 70 }); docsMainTable.setWidthPercentage(100); PdfPTable docsTable = makeTable(2); docsTable.setWidths(new float[] { 50, 50 }); docsTable.setWidthPercentage(100); Image img = Image.getInstance(searchBookingReportDTO.getContextPath() + "/images/icons/uncheckedBox.png"); img.scalePercent(50); img.scaleAbsoluteWidth(18); PdfPCell pCell = new PdfPCell(); pCell.setBorder(0); pCell.addElement(new Chunk(img, 25, -0)); // Image checkedimg = Image.getInstance(searchBookingReportDTO.getContextPath() + "/images/icons/check.png"); // checkedimg.scalePercent(60); // checkedimg.scaleAbsoluteWidth(18); // PdfPCell checkedCell = new PdfPCell(); // checkedCell.setBorder(0); // checkedCell.addElement(new Chunk(checkedimg, 25, -0)); docsTable.addCell(makeCellleftNoBorderWithBoldFont("Docs")); docsTable.addCell(pCell); docsTable.addCell(makeCellNoBorders(" ")); docsTable.addCell(makeCellNoBorders(" ")); docsTable.addCell(makeCellleftNoBorderWithBoldFont("COB")); docsTable.addCell(pCell); docsTable.addCell(makeCellNoBorders(" ")); docsTable.addCell(makeCellNoBorders(" ")); docsTable.addCell(makeCellleftNoBorderWithBoldFont("MBL")); docsTable.addCell(pCell); docsTable.addCell(makeCellNoBorders(" ")); docsTable.addCell(makeCellNoBorders(" ")); docsTable.addCell(makeCellleftNoBorderWithBoldFont("Manifisted")); docsTable.addCell(pCell); cell = makeCellleftNoBorder(""); cell.setBorderWidthBottom(0.6f); cell.setBorderWidthLeft(0.6f); cell.addElement(docsTable); docsMainTable.addCell(cell); PdfPTable noteTable = makeTable(1); noteTable.setWidths(new float[] { 100 }); noteTable.setWidthPercentage(100); noteTable.addCell(makeCellCenterNoBorder("Notes")); noteTable.addCell(makeCellNoBorders(" ")); noteTable.addCell(makeCellleftwithUnderLine(" ")); noteTable.addCell(makeCellNoBorders(" ")); noteTable.addCell(makeCellleftwithUnderLine(" ")); noteTable.addCell(makeCellNoBorders(" ")); noteTable.addCell(makeCellleftwithUnderLine(" ")); noteTable.addCell(makeCellNoBorders(" ")); noteTable.addCell(makeCellleftwithUnderLine(" ")); noteTable.addCell(makeCellNoBorders(" ")); cell = makeCellleftNoBorder(""); cell.setBorderWidthBottom(0.6f); cell.setBorderWidthRight(0.6f); cell.addElement(noteTable); docsMainTable.addCell(cell); document.add(docsMainTable); }
From source file:com.gp.cong.logisoft.reports.BookingCoverSheetPdfCreater.java
public void onStartPage(PdfWriter writer, Document document) { try {//ww w .j av a 2 s .c o m PdfPCell cell = new PdfPCell(); PdfPCell celL = new PdfPCell(); PdfPTable table = new PdfPTable(1); FclBl fclBl = null; String brand = ""; String path = LoadLogisoftProperties.getProperty("application.image.logo"); String econoPath = LoadLogisoftProperties.getProperty("application.image.econo.logo"); String companyCode = new SystemRulesDAO().getSystemRulesByCode("CompanyCode"); BookingFcl bookingFcl = searchBookingReportDTO.getBookingflFcl(); fclBl = new FclBlDAO().getOriginalBl(bookingFcl.getFileNo()); if (null != fclBl && null != fclBl.getBrand()) { brand = fclBl.getBrand(); } else if (null != bookingFcl && null != bookingFcl.getBrand()) { brand = bookingFcl.getBrand(); } if (brand.equals("Econo") && ("03").equals(companyCode)) { Image img = Image.getInstance(searchBookingReportDTO.getContextPath() + econoPath); table.setWidthPercentage(100); img.scalePercent(60); //img.scaleAbsoluteWidth(200); celL.addElement(new Chunk(img, 180, -20)); celL.setBorder(0); celL.setHorizontalAlignment(Element.ALIGN_CENTER); celL.setVerticalAlignment(Element.ALIGN_CENTER); table.addCell(celL); // DateFormat df7 = new SimpleDateFormat("dd-MMM-yyyy HH:mm a"); // Date currentDate = new Date(); // cell = makeCellRightNoBorder("Date Printed : " + df7.format(currentDate)); cell = makeCellRightNoBorder(" "); cell.setPaddingTop(10f); table.addCell(cell); } else if (brand.equals("OTI") && ("02").equals(companyCode)) { Image img = Image.getInstance(searchBookingReportDTO.getContextPath() + econoPath); table.setWidthPercentage(100); img.scalePercent(60); //img.scaleAbsoluteWidth(200); celL.addElement(new Chunk(img, 180, -20)); celL.setBorder(0); celL.setHorizontalAlignment(Element.ALIGN_CENTER); celL.setVerticalAlignment(Element.ALIGN_CENTER); table.addCell(celL); // DateFormat df7 = new SimpleDateFormat("dd-MMM-yyyy HH:mm a"); // Date currentDate = new Date(); // cell = makeCellRightNoBorder("Date Printed : " + df7.format(currentDate)); cell = makeCellRightNoBorder(" "); cell.setPaddingTop(10f); table.addCell(cell); } else if (brand.equalsIgnoreCase("Ecu Worldwide")) { Image img = Image.getInstance(searchBookingReportDTO.getContextPath() + path); table.setWidthPercentage(100); img.scalePercent(60); //img.scaleAbsoluteWidth(200); celL.addElement(new Chunk(img, 180, -20)); celL.setBorder(0); celL.setHorizontalAlignment(Element.ALIGN_CENTER); celL.setVerticalAlignment(Element.ALIGN_CENTER); table.addCell(celL); // DateFormat df7 = new SimpleDateFormat("dd-MMM-yyyy HH:mm a"); // Date currentDate = new Date(); // cell = makeCellRightNoBorder("Date Printed : " + df7.format(currentDate)); cell = makeCellRightNoBorder(" "); cell.setPaddingTop(10f); table.addCell(cell); } // table for heading // PdfPTable heading = makeTable(1); // heading.setWidthPercentage(100); // heading.addCell(makeCellCenterForDoubleHeading("FCL Booking Confirmation " + messageResources.getMessage("fileNumberPrefix") + String.valueOf(bookingFcl.getFileNo()))); // document.add(table); // document.add(heading); } catch (Exception e) { log.info("onStartPage failed on " + new Date(), e); throw new ExceptionConverter(e); } }
From source file:com.sinkluge.reports.contracts.GenContractChecklist.java
public void create(Info in, Image toplogo) throws Exception { //adds the unchecked box Image checkbox = Image.getInstance(in.path + "/WEB-INF/images/unchecked.jpg"); Chunk ch2 = new Chunk(checkbox, -10, -10); Phrase checkboxPhrase = new Phrase(); checkboxPhrase.add(ch2);/*from w ww . j av a 2 s .c o m*/ int[] two = { 10, 90 };//sets the widths of the columns(2) with checkboxes //blank spacer for keeping tables apart Table spacer = new Table(1, 1); spacer.setBorderWidth(0); //spacer.setDefaultCellBorderWidth(0); spacer.setWidth(100); spacer.setPadding(0); spacer.setSpacing(0); Cell blank = new Cell(); blank.add(new Chunk("", new Font(Font.TIMES_ROMAN, 1, Font.BOLD, new Color(255, 255, 255)))); blank.setBorderWidth(0); blank.setLeading(0); spacer.addCell(blank); init(); //document.setMargins(left, right, top, bottom); //add image Phrase p1 = new Phrase(); int[] widths = { 60, 40 }; Table table1 = new Table(2, 1); table1.setWidths(widths); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(2); table1.setSpacing(2); toplogo.scalePercent(20); //Chunk ch1=new Chunk(toplogo, -10, -80); Cell cell = new Cell(toplogo); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); cell.setBorder(0); table1.addCell(cell); //just added image //add title on right side cell = new Cell(); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); cell.add(new Phrase("\n" + title + " Checklist", new Font(Font.TIMES_ROMAN, 18, Font.BOLD))); cell.add(new Phrase("\n" + currentDate, new Font(Font.TIMES_ROMAN, 16, Font.BOLD))); cell.setBorder(0); table1.addCell(cell); document.add(table1); document.add(spacer); document.add(spacer); document.add(spacer); document.add(spacer); document.add(spacer); //add "To:" and "Re:" table1 = new Table(1, 1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(3); cell = new Cell(); p1 = new Phrase("To:", new Font(Font.TIMES_ROMAN, 14, Font.BOLD)); cell.setVerticalAlignment("middle"); cell.add(p1); cell.add(new Phrase("\t\t" + companyName, new Font(Font.TIMES_ROMAN, 14, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setVerticalAlignment("middle"); cell.add(new Phrase("Re:", new Font(Font.TIMES_ROMAN, 14, Font.BOLD))); cell.add(new Phrase("\t\t" + jobName, new Font(Font.TIMES_ROMAN, 14, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setVerticalAlignment("middle"); cell.add(new Phrase("Enclosed:", new Font(Font.TIMES_ROMAN, 14, Font.BOLD))); cell.add(new Phrase("\t\t" + title + " Agreement", new Font(Font.TIMES_ROMAN, 14, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); document.add(table1); document.add(spacer); //add Instructions table1 = new Table(1, 1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(3); cell = new Cell(); cell.setVerticalAlignment("middle"); cell.add(new Phrase( "In order to finalize your agreement with " + shortName + ", please complete all items as outlined below. " + " It is essential to be finalized no later than ", new Font(Font.TIMES_ROMAN, 12, Font.NORMAL))); cell.add(new Phrase(agreementDate + ". ", new Font(Font.TIMES_ROMAN, 12, Font.BOLDITALIC))); cell.setBorder(0); table1.addCell(cell); //p1 = new Phrase("Subcontractor Change Order Overview Report", new Font(Font.TIMES_ROMAN, 8, Font.BOLD)); cell = new Cell(); cell.setVerticalAlignment("middle"); cell.add(new Phrase( "A subcontract is considered finalized and ready to activate when all of the attached items outlined below " + "are completed, signed, and returned to " + shortName + ". Do not make any changes directly to the contract documents." + " Any alterations or amendments must be negotiated and mutually agreed upon in advance. If necessary, a new, " + "updated contract will be sent. Contract negotiations are best in person and can be accomplished following the pre-" + "construction conference.", new Font(Font.TIMES_ROMAN, 12, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); document.add(table1); document.add(spacer); //add "Checklist:" table1 = new Table(1, 1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(3); cell = new Cell(); cell.setVerticalAlignment("middle"); cell.add(new Phrase("Checklist: ", new Font(Font.TIMES_ROMAN, 12, Font.BOLD))); cell.setBorder(0); table1.addCell(cell); document.add(table1); //add "Business Information" table1 = new Table(2, 1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(3); table1.setWidths(two); cell = new Cell(checkboxPhrase); cell.setBorderWidth(0); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("top"); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setVerticalAlignment("bottom"); cell.add(new Phrase("Business Information", new Font(Font.TIMES_ROMAN, 12, Font.NORMAL))); cell.add(new Phrase(" (* indicates required information)", new Font(Font.TIMES_ROMAN, 12, Font.ITALIC))); cell.add(new Phrase("\n * Business Telephone Number", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); cell.add(new Phrase("\n Primary Contact Name", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); cell.add(new Phrase("\n Business Fax Number", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); cell.add(new Phrase("\n Mobile Telephone Number", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); cell.add(new Phrase("\n Email Address", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); cell.add(new Phrase("\n * Federal ID # or Social Security Number", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); if (insure) { cell.add(new Phrase("\n * Contractor's License Number", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); cell.add(new Phrase("\n * Attach copy of current contractor's license", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); } cell.setBorder(0); table1.addCell(cell); document.add(table1); //add "Sign and Date the Agreement" table1 = new Table(2, 1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(3); table1.setWidths(two); cell = new Cell(checkboxPhrase); cell.setBorderWidth(0); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setVerticalAlignment("bottom"); cell.add(new Phrase("Sign and date the agreement", new Font(Font.TIMES_ROMAN, 12, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); document.add(table1); //add "initial all pages" table1 = new Table(2, 1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(3); table1.setWidths(two); cell = new Cell(checkboxPhrase); cell.setBorderWidth(0); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setVerticalAlignment("bottom"); cell.add(new Phrase("Initial front page where indicated", new Font(Font.TIMES_ROMAN, 12, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); document.add(table1); //add "provide signatures" table1 = new Table(2, 1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(3); table1.setWidths(two); cell = new Cell(checkboxPhrase); cell.setBorderWidth(0); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setVerticalAlignment("bottom"); cell.add(new Phrase("Provide appropriate signatures at Exhibit \"C\", Item #2", new Font(Font.TIMES_ROMAN, 12, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); document.add(table1); //add "complete and sign exhibit d" if (insure) { table1 = new Table(2, 1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(3); table1.setWidths(two); cell = new Cell(checkboxPhrase); cell.setBorderWidth(0); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setVerticalAlignment("bottom"); cell.add(new Phrase("Complete and sign Exhibit \"D\"", new Font(Font.TIMES_ROMAN, 12, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); document.add(table1); //add "Forward" table1 = new Table(2, 1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(3); table1.setWidths(two); cell = new Cell(checkboxPhrase); cell.setBorderWidth(0); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setVerticalAlignment("bottom"); cell.add(new Phrase( "Forward the required insurance certificates (per article 7 and Exhibit \"C\") to " + shortName, new Font(Font.TIMES_ROMAN, 12, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); document.add(table1); } //add "return all pages" table1 = new Table(2, 1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(3); table1.setWidths(two); cell = new Cell(checkboxPhrase); cell.setBorderWidth(0); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setVerticalAlignment("bottom"); cell.add(new Phrase("Return all pages of both completed copies of your " + title + " agreement. Do not remove any pages.", new Font(Font.TIMES_ROMAN, 12, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); document.add(table1); }
From source file:com.sinkluge.reports.contracts.GenSubcontract.java
public void create(Info in, Image toplogo) throws Exception { //for the unchecked box Image checkbox = Image.getInstance(in.path + "/WEB-INF/images/unchecked.jpg"); Chunk ch2 = new Chunk(checkbox, -7, -7); Phrase checkboxPhrase = new Phrase(); checkboxPhrase.add(ch2);/*from ww w. j av a 2 s . c om*/ Font tnr8 = new Font(Font.TIMES_ROMAN, 8, Font.NORMAL); Image iBox = Image.getInstance(in.path + "/WEB-INF/images/initialsBox.jpg");//(in.path + "/jsp/dev/images/epcologo3.jpg"); Chunk ch3 = new Chunk(iBox, -3, -3); Phrase initialsBoxPhrase = new Phrase(); initialsBoxPhrase.add(ch3); Phrase footerPhrase = new Phrase( attr.get("full_name") + ", " + attr.get("address") + ", " + attr.get("city") + ", " + attr.get("state") + " " + attr.get("zip") + "\nPhone: " + attr.get("phone") + " Fax: " + attr.get("fax") + " " + attr.get("url") + " Page: ", new Font(Font.TIMES_ROMAN, 7, Font.BOLD | Font.ITALIC)); HeaderFooter footer = new HeaderFooter(footerPhrase, true); footer.setBorder(0); footer.setAlignment(Element.ALIGN_CENTER); init(40, 40, 40, 40, footer); Phrase underLinePhrase = new Phrase( " ___________________________________________________________________________________________ ", new Font(Font.TIMES_ROMAN, 10, Font.BOLD)); int[] twoC = { 30, 70 }; int[] twoD = { 5, 95 }; int[] twoF = { 10, 90 }; int[] twoE = { 25, 75 }; int[] twoG = { 40, 60 }; int[] threeD = { 4, 11, 85 }; int[] threeB = { 70, 15, 15 }; //int[] threeC = { 47, 5, 48 }; int[] five = { 18, 25, 14, 18, 25 }; //blank spacer for keeping tables apart Table spacer = new Table(1, 1); spacer.setBorderWidth(0); //spacer.setDefaultCellBorderWidth(0); spacer.setWidth(100); spacer.setPadding(0); spacer.setSpacing(0); Cell blank = new Cell(); blank.add(new Chunk("", new Font(Font.TIMES_ROMAN, 8, Font.BOLD, new Color(255, 255, 255)))); blank.setBorderWidth(0); //blank.setLeading(0); spacer.addCell(blank); //start of document //document.setFooter(footer); //document.setFooter(footer); //add image Phrase p1 = new Phrase(); Table table1 = new Table(1, 1); table1.setBorderWidth(0); table1.setWidth(100); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(2); table1.setSpacing(2); toplogo.scalePercent(20); //Chunk ch1=new Chunk(toplogo, -36, -55); //p1.add(ch1); Cell cell = new Cell(toplogo); cell.setBorderWidth(0); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); table1.addCell(cell); document.add(table1); document.add(spacer); document.add(spacer); document.add(spacer); document.add(spacer); document.add(spacer); document.add(spacer); document.add(spacer); document.add(spacer); document.add(spacer); document.add(spacer); table1 = new Table(1, 1); table1.setBorderWidth(0); table1.setWidth(100); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(0); cell = new Cell(); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); cell.setLeading(19); cell.add( new Phrase(title.toUpperCase() + " AGREEMENT BETWEEN CONTRACTOR AND " + cTitle.toUpperCase() + "\n", new Font(Font.TIMES_ROMAN, 20, Font.BOLD))); cell.setUseDescender(true); cell.setBackgroundColor(Color.lightGray); cell.setBorder(0); table1.addCell(cell); document.add(table1); table1 = new Table(1, 1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(0); table1.setSpacing(0); cell = new Cell(); cell.add(underLinePhrase); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.add(new Phrase("\nDOCUMENTS CONTAINED HEREIN:\n", new Font(Font.TIMES_ROMAN, 8, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); document.add(table1); table1 = new Table(3, 1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setWidths(threeD); table1.setPadding(0); table1.setSpacing(0); table1.addCell(blank); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.add(new Phrase("Page 1", new Font(Font.TIMES_ROMAN, 8, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.add(new Phrase("Agreement Declaration", new Font(Font.TIMES_ROMAN, 8, Font.NORMAL))); cell.add(new Phrase(" Initial boxes below to indicate complete review of this agreement.", new Font(Font.TIMES_ROMAN, 8, Font.ITALIC))); cell.setBorder(0); table1.addCell(cell); table1.addCell(blank); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.add(new Phrase("Page 2", new Font(Font.TIMES_ROMAN, 8, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.add(new Phrase("Articles of " + title + " Agreement and Standard Provisions", tnr8)); cell.add(new Phrase(" Sign the concluding page.", new Font(Font.TIMES_ROMAN, 8, Font.ITALIC))); cell.setBorder(0); table1.addCell(cell); table1.addCell(blank); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.add(new Phrase("Exhibit \"A\"", new Font(Font.TIMES_ROMAN, 8, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.add(new Phrase("List of Contract Documents, Plans, Specifications, Etc.", tnr8)); cell.setBorder(0); //cell.add(new Phrase(" Read and initial each page.", new Font(Font.TIMES_ROMAN, 8, Font.ITALIC))); table1.addCell(cell); table1.addCell(blank); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.add(new Phrase("Exhibit \"B\"", new Font(Font.TIMES_ROMAN, 8, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.add(new Phrase(cTitle + "'s Scope of Work", new Font(Font.TIMES_ROMAN, 8, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); table1.addCell(blank); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.add(new Phrase("Exhibit \"C\"", new Font(Font.TIMES_ROMAN, 8, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.add(new Phrase(cTitle + "'s Special Provisions and Procedure Requirements", tnr8)); cell.add(new Phrase(" Read and complete \"Release Authorization\" information.", new Font(Font.TIMES_ROMAN, 8, Font.ITALIC))); cell.setBorder(0); table1.addCell(cell); table1.addCell(blank); if (insure) { cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.add(new Phrase("Exhibit \"D\"", new Font(Font.TIMES_ROMAN, 8, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.add(new Phrase(cTitle + " Cost Breakdown", new Font(Font.TIMES_ROMAN, 8, Font.NORMAL))); cell.add(new Phrase(" Complete and return with signed contract", new Font(Font.TIMES_ROMAN, 8, Font.ITALIC))); cell.setBorder(0); table1.addCell(cell); table1.addCell(blank); } cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.setColspan(2); cell.add(new Phrase("NOTE OTHERS HERE:", new Font(Font.TIMES_ROMAN, 8, Font.ITALIC))); cell.setBorder(0); table1.addCell(cell); document.add(table1); table1 = new Table(3); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(0); table1.setWidths(threeB); table1.addCell(blank); cell = new Cell(); cell.setColspan(2); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.add(new Phrase("(Initial) Entire agreement thoroughly reviewed:\n", new Font(Font.TIMES_ROMAN, 6, Font.ITALIC))); cell.setBorder(0); table1.addCell(cell); table1.addCell(blank); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.add(new Phrase("Contractor: ________", new Font(Font.TIMES_ROMAN, 6, Font.ITALIC))); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.add(new Phrase(cTitle + ": ________", new Font(Font.TIMES_ROMAN, 6, Font.ITALIC))); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setColspan(3); cell.add(underLinePhrase); cell.setBorder(0); table1.addCell(cell); document.add(table1); table1 = new Table(1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(0); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.add(new Phrase("AGREEMENT", new Font(Font.TIMES_ROMAN, 10, Font.BOLD))); cell.add(new Phrase(" made as of " + agreementDate, new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); //cell.setLeading(10); cell.add(new Phrase("BETWEEN", new Font(Font.TIMES_ROMAN, 10, Font.BOLD))); cell.add(new Phrase(" the Contractor: \n", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); cell.add(new Phrase(" " + attr.get("full_name") + " \n", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); cell.add(new Phrase(" " + attr.get("address") + " \n", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); cell.add(new Phrase(" " + attr.get("city") + ", " + attr.get("state") + " " + attr.get("zip"), new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); cell.add(new Phrase(" (hereinafter known as \"Contractor\")\n", new Font(Font.TIMES_ROMAN, 6, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); //cell.setLeading(10); cell.add(new Phrase("AND", new Font(Font.TIMES_ROMAN, 10, Font.BOLD))); cell.add(new Phrase(" the " + cTitle + ": \n", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); cell.add(new Phrase(" " + subName + " \n", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); cell.add(new Phrase(" " + subAddress + "\n", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); cell.add(new Phrase(" " + subCityStateZip, new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); cell.add(new Phrase(" (hereinafter known as \"" + cTitle + "\")\n", new Font(Font.TIMES_ROMAN, 6, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); //cell.setLeading(10); cell.add(new Phrase("FOR", new Font(Font.TIMES_ROMAN, 10, Font.BOLD))); cell.add(new Phrase(" the the fixed sum of " + DocHelper.numberAndText(amount) + " \n", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); //cell.add(new Phrase(" " + amountString + " \n", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); //cell.setLeading(10); cell.add(new Phrase("FOR", new Font(Font.TIMES_ROMAN, 10, Font.BOLD))); cell.add(new Phrase(" the Project known as:\n", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); cell.add(new Phrase(" " + projectName + " \n", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); cell.add(new Phrase(" " + projectAddress + "\n", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); cell.add(new Phrase(" " + projectCityStateZip, new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); cell.add(new Phrase(" (hereinafter known as \"Project\")\n", new Font(Font.TIMES_ROMAN, 6, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); //cell.setLeading(10); cell.add(new Phrase("BY", new Font(Font.TIMES_ROMAN, 10, Font.BOLD))); cell.add(new Phrase(" the Architect:\n", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); cell.add(new Phrase(" " + architectName + " \n", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); cell.add(new Phrase(" " + architectAddress + "\n", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); cell.add(new Phrase(" " + architectCityStateZip, new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); cell.add(new Phrase(" (hereinafter known as \"Architect\")\n", new Font(Font.TIMES_ROMAN, 6, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); //cell.setLeading(10); cell.add(new Phrase("FOR", new Font(Font.TIMES_ROMAN, 10, Font.BOLD))); cell.add(new Phrase(" the Project owner:\n", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); cell.add(new Phrase(" " + ownerName + " \n", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); cell.add(new Phrase(" " + ownerAddress + "\n", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); cell.add(new Phrase(" " + ownerCityStateZip, new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); cell.add(new Phrase(" (hereinafter known as \"Owner\")\n", new Font(Font.TIMES_ROMAN, 6, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.add(new Phrase("WHEREFORE", new Font(Font.TIMES_ROMAN, 10, Font.BOLD))); cell.add(new Phrase(" the Contractor and " + cTitle + " agree as follows:\n\n\n", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); document.add(table1); /* table1 = new Table(1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(0); cell = new Cell(); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); //cell.add(new Phrase("\n", new Font(Font.TIMES_ROMAN, 6, Font.NORMAL))); cell.setBorder(Rectangle.BOTTOM | Rectangle.TOP); cell.setBorderWidth(1.1f); cell.add(footerPhrase); cell.add(new Phrase(" 1\n ", new Font(Font.TIMES_ROMAN, 6, Font.NORMAL))); //cell.add(footerPhrase2); cell.setBorder(0); table1.addCell(cell); document.add(table1); */ document.newPage(); table1 = new Table(1, 1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(3); cell = new Cell(); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); cell.add(new Phrase(title.toUpperCase() + " AGREEMENT\n", new Font(Font.TIMES_ROMAN, 20, Font.BOLD))); cell.setBackgroundColor(Color.lightGray); cell.setLeading(19); cell.setUseDescender(true); cell.setBorder(0); table1.addCell(cell); document.add(table1); Paragraph para = new Paragraph(8, "\n\n" + text.toString(), tnr8); document.add(para); Phrase p; document.add(spacer); table1 = new Table(2, 1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setWidths(twoC); table1.setPadding(0); p = new Phrase("Date:\n\n", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL)); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.add(p); cell.setBorder(0); table1.addCell(cell); p = new Phrase("Signed:\n\n", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL)); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.add(p); cell.setBorder(0); table1.addCell(cell); p = new Phrase("_______________________", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL)); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.add(p); cell.setBorder(0); table1.addCell(cell); p = new Phrase("_________________________________________________________________", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL)); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.add(p); cell.setBorder(0); table1.addCell(cell); table1.addCell(blank); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.add(new Phrase(" General Contractor Title\n", tnr8)); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); cell.setColspan(2); cell.add(new Phrase("\nThis " + title + " Agreement supercedes all other proposals, documents, and negotiations whether written or verbal\n\n", new Font(Font.TIMES_ROMAN, 8, Font.BOLDITALIC))); cell.setBorder(0); table1.addCell(cell); p = new Phrase("Date:\n\n", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL)); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.add(p); cell.setBorder(0); table1.addCell(cell); p = new Phrase("Signed:\n\n", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL)); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.add(p); cell.setBorder(0); table1.addCell(cell); p = new Phrase("_______________________", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL)); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.add(p); cell.setBorder(0); table1.addCell(cell); p = new Phrase("_________________________________________________________________", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL)); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.add(p); cell.setBorder(0); table1.addCell(cell); table1.addCell(blank); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.add(new Phrase( " " + cTitle + " Title\n", tnr8)); cell.setBorder(0); table1.addCell(cell); table1.setCellsFitPage(true); table1.setTableFitsPage(true); document.add(table1); document.newPage(); table1 = new Table(1, 1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(3); cell = new Cell(); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); cell.add(new Phrase(cTitle.toUpperCase() + " INFORMATION\n", new Font(Font.TIMES_ROMAN, 20, Font.BOLD))); cell.setBackgroundColor(Color.lightGray); cell.setLeading(19); cell.setUseDescender(true); cell.setBorder(0); table1.addCell(cell); document.add(table1); document.add(new Phrase("\n")); table1 = new Table(5, 1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(1); table1.setWidths(five); cell = new Cell(); cell.setHorizontalAlignment("right"); cell.setVerticalAlignment("middle"); cell.add(new Phrase("Federal I.D. : ", new Font(Font.TIMES_ROMAN, 10, Font.BOLD))); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); cell.setBorder(15); cell.add(new Phrase(federal_id, new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); cell.setUseDescender(true); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); cell.add(new Phrase("(Both Required)", new Font(Font.TIMES_ROMAN, 8, Font.BOLD))); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("right"); cell.setVerticalAlignment("middle"); cell.add(new Phrase("License Number : ", new Font(Font.TIMES_ROMAN, 10, Font.BOLD))); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); cell.setBorder(15); cell.add(new Phrase(license_number, new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); cell.setUseDescender(true); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("right"); cell.setVerticalAlignment("middle"); cell.add(new Phrase("Contact : ", new Font(Font.TIMES_ROMAN, 10, Font.BOLD))); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); cell.setBorder(15); cell.setUseDescender(true); cell.add(new Phrase(contactName, new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); cell.add(new Phrase("", new Font(Font.TIMES_ROMAN, 8, Font.BOLD))); cell.setUseDescender(true); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("right"); cell.setVerticalAlignment("middle"); cell.add(new Phrase("Company : ", new Font(Font.TIMES_ROMAN, 10, Font.BOLD))); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); cell.setBorder(15); cell.add(new Phrase(subName, new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); cell.setUseDescender(true); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("right"); cell.setVerticalAlignment("middle"); cell.add(new Phrase("Telephone : ", new Font(Font.TIMES_ROMAN, 10, Font.BOLD))); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); cell.setBorder(15); cell.setUseDescender(true); cell.add(new Phrase(telephone, new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); cell.add(new Phrase("", new Font(Font.TIMES_ROMAN, 8, Font.BOLD))); cell.setUseDescender(true); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("right"); cell.setVerticalAlignment("middle"); cell.add(new Phrase("Fax : ", new Font(Font.TIMES_ROMAN, 10, Font.BOLD))); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); cell.setBorder(15); cell.add(new Phrase(fax, new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); cell.setUseDescender(true); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("right"); cell.setVerticalAlignment("middle"); cell.add(new Phrase("Mobile phone : ", new Font(Font.TIMES_ROMAN, 10, Font.BOLD))); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); cell.setBorder(15); cell.add(new Phrase(mobile, new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); cell.setUseDescender(true); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); cell.add(new Phrase("", new Font(Font.TIMES_ROMAN, 8, Font.BOLD))); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("right"); cell.setVerticalAlignment("middle"); cell.add(new Phrase("E-mail : ", new Font(Font.TIMES_ROMAN, 10, Font.BOLD))); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); cell.setBorder(15); cell.add(new Phrase(email, new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); cell.setUseDescender(true); table1.addCell(cell); document.add(table1); //document.add(spacer); table1 = new Table(1, 1); //table1.setBorderWidth(4); //table1.setBorderColor(Color.lightGray); //table1.setDefaultCellBorder(0); table1.setPadding(3); table1.setBorder(0); cell = new Cell(); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); if (insure) cell.add(new Phrase("Please attach a COPY of your current state license to this page:", new Font(Font.TIMES_ROMAN, 12, Font.NORMAL))); else cell.add(new Phrase("", new Font(Font.TIMES_ROMAN, 12, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); document.add(table1); document.add(spacer); table1 = new Table(1, 1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(3); cell = new Cell(); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); if (insure) cell.add(new Phrase("\n\nAttach\nCopy of\nContractor's\nLicense\nHere\n(If Applicable)", new Font(Font.TIMES_ROMAN, 24, Font.NORMAL, Color.lightGray))); else cell.add(new Phrase("", new Font(Font.TIMES_ROMAN, 24, Font.NORMAL, Color.lightGray))); cell.setBorder(0); table1.addCell(cell); document.add(table1); //document.setMargins(72, 72, 36, 36); document.newPage(); table1 = new Table(1, 1); table1.setOffset(0); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(3); table1.setWidth(100); cell = new Cell(); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); cell.add(new Phrase(title.toUpperCase() + " EXHIBIT \"A\"\n", new Font(Font.TIMES_ROMAN, 20, Font.BOLD))); cell.setLeading(6); cell.setBorder(0); table1.addCell(cell); cell = new Cell(new Phrase("\n", new Font(Font.TIMES_ROMAN, 8))); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); cell.add(new Phrase("CONTRACT DOCUMENTS, PLANS,\nSPECIFICATIONS, ADDENDUMS, ETC.\n", new Font(Font.TIMES_ROMAN, 16, Font.BOLD))); cell.setUseDescender(true); cell.setLeading(17); cell.setBackgroundColor(Color.lightGray); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); cell.add(new Phrase("\n" + subName + " is responsible to verify versions, dates, and completeness of documents that were used in the preparation of the " + cTitle + "'s bid proposal before signing this " + title + " Agreement\n", tnr8)); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); cell.add(new Phrase("This " + title + " Agreement includes, but is not limited to the following items:", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); cell.setUseDescender(true); cell.setBorder(Rectangle.BOTTOM); cell.setBorderWidth(0.5f); table1.addCell(cell); document.add(table1); Paragraph prgh = new Paragraph("\n" + bidDocuments + "\n", tnr8); prgh.setLeading(10); document.add(prgh); document.add(spacer); /* p = new Phrase("\n"+bidDocuments, new Font(Font.TIMES_ROMAN, 10, Font.NORMAL)); p.setLeading(10); cell= new Cell(p); cell.setBorder(Rectangle.TOP | Rectangle.BOTTOM); cell.setBorderWidth(0.5f); //cell.setBorderColor(Color.lightGray); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); //cell.setLeading(10); cell.setUseDescender(true); table1.addCell(cell); */ table1 = new Table(1, 1); table1.setOffset(0); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(3); table1.setWidth(100); table1.setTableFitsPage(true); p = new Phrase("\nPlease note below all verbal conditions or instructions, if any, that the " + cTitle + " has received during the bid process which might affect the scope of work as required by the contract documents", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL)); p.setLeading(10); cell = new Cell(p); cell.setBorder(Rectangle.TOP); cell.setBorderWidth(0.5f); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); table1.addCell(cell); document.add(table1); document.newPage(); table1 = new Table(1, 1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(3); table1.setOffset(0); table1.setWidth(100); cell = new Cell(); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); cell.add(new Phrase(title.toUpperCase() + " EXHIBIT \"B\"\n", new Font(Font.TIMES_ROMAN, 20, Font.BOLD))); cell.setLeading(6); cell.setBorder(0); table1.addCell(cell); cell = new Cell(new Phrase("\n", new Font(Font.TIMES_ROMAN, 8))); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); cell.add(new Phrase("SCOPE OF WORK\n", new Font(Font.TIMES_ROMAN, 16, Font.BOLD))); cell.setBackgroundColor(Color.lightGray); cell.setUseDescender(true); cell.setLeading(17); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); cell.add(new Phrase( "\nThis " + title + " Agreement includes, but is not limited to the following items:\n\n", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); cell.setBorder(Rectangle.BOTTOM); cell.setBorderWidth(0.5f); table1.addCell(cell); document.add(table1); prgh = new Paragraph("\n" + contractDescription + "\n", new Font(Font.TIMES_ROMAN, 8, Font.NORMAL)); prgh.setLeading(10); document.add(prgh); //cell= new Cell(prgh); //cell.setBorder(Rectangle.TOP | Rectangle.BOTTOM); //cell.setBorderWidth(0.5f); //cell.setBorderColor(Color.lightGray); //cell.setHorizontalAlignment("left"); //cell.setVerticalAlignment("middle"); //cell.setLeading(10); //cell.setUseDescender(true); //table1.addCell(cell); document.add(spacer); table1 = new Table(1, 1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(3); table1.setOffset(0); table1.setWidth(100); table1.setTableFitsPage(true); p = new Phrase("\nAll " + cTitle + " bid proposal conditions that are outside of, in addition to or are limiting of conditions contained in the Contract Documents are of no effect and are invalid to the " + title + " Agreement unless expressly included in the description above.", tnr8); p.setLeading(10); cell = new Cell(p); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.setBorder(Rectangle.TOP); cell.setBorderWidth(0.5f); table1.addCell(cell); document.add(table1); //document.setMargins(10, 10, 30, 30); document.newPage(); table1 = new Table(1, 1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(3); table1.setOffset(0); cell = new Cell(); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); cell.add(new Phrase(title.toUpperCase() + " EXHIBIT \"C\"\n", new Font(Font.TIMES_ROMAN, 20, Font.BOLD))); cell.setLeading(6); cell.setBorder(0); cell.setBorder(0); table1.addCell(cell); cell = new Cell(new Phrase("\n", new Font(Font.TIMES_ROMAN, 8))); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); cell.add(new Phrase(cTitle.toUpperCase() + " SPECIAL PROVISIONS AND REQUIREMENTS\n", new Font(Font.TIMES_ROMAN, 16, Font.BOLD))); cell.setBackgroundColor(Color.lightGray); cell.setUseDescender(true); cell.setLeading(17); cell.setBorder(0); table1.addCell(cell); document.add(table1); int count = 1; if (insure) { table1 = new Table(1, 1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(0); table1.setOffset(4); cell = new Cell(); cell.add(new Phrase("1. Insurance Provisions (If Applicable)", new Font(Font.TIMES_ROMAN, 10, Font.BOLD))); //cell.setLeading(6); cell.setBorder(0); table1.addCell(cell); document.add(table1); count++; table1 = new Table(2, 1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(0); table1.setWidths(twoD); table1.setOffset(0); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.setLeading(6); cell.add(new Phrase( "a. The " + cTitle + " is required to name the following as additional Primary-Insured:", tnr8)); table1.addCell(blank); cell.setBorder(0); table1.addCell(cell); document.add(table1); table1 = new Table(2, 1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(0); table1.setWidths(twoE); table1.setOffset(0); cell = new Cell(); cell.setHorizontalAlignment("right"); cell.setVerticalAlignment("middle"); cell.add(new Phrase("Contractor: ", new Font(Font.TIMES_ROMAN, 8, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.add(new Phrase(attr.get("full_name"), new Font(Font.TIMES_ROMAN, 8, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("right"); cell.setVerticalAlignment("middle"); cell.add(new Phrase("Owner: ", new Font(Font.TIMES_ROMAN, 8, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.add(new Phrase(ownerName, new Font(Font.TIMES_ROMAN, 8, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("right"); cell.setVerticalAlignment("middle"); cell.add(new Phrase("Other: ", new Font(Font.TIMES_ROMAN, 8, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.add(new Phrase("_______________________________________", tnr8)); cell.setBorder(0); table1.addCell(cell); document.add(table1); table1 = new Table(2, 1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(0); table1.setWidths(twoD); table1.setOffset(4); p = new Phrase("b. The " + cTitle + " must provide verification of current Worker's Compensation coverage with reference to " + jobName + " on the policy.", new Font(Font.TIMES_ROMAN, 8, Font.NORMAL)); p.setLeading(8); cell = new Cell(p); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.setLeading(8); table1.addCell(blank); cell.setBorder(0); table1.addCell(cell); document.add(table1); } table1 = new Table(1, 1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(0); table1.setOffset(4); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.add(new Phrase(count + ". Release Authorizations", new Font(Font.TIMES_ROMAN, 10, Font.BOLD))); count++; cell.setBorder(0); table1.addCell(cell); document.add(table1); table1 = new Table(2, 1); table1.setOffset(4); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(0); table1.setWidths(twoD); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); p = new Phrase( "List any Owners, Partners, and/or Corporate Officers who are legally authorized to sign for " + subName + " and who will be signing the MONTHLY REQUEST FOR PAYMENT, FINAL REQUEST FOR PAYMENT, and LIEN WAIVER documents:\n\n", tnr8); p.setLeading(8); p1 = new Phrase( " ______________________________________________________________________ ______________________________________________________________________\n", new Font(Font.TIMES_ROMAN, 6, Font.ITALIC)); //p1.setLeading(0); Phrase p2 = new Phrase( " Printed name and title Signature\n\n", new Font(Font.TIMES_ROMAN, 6, Font.ITALIC)); //cell.setLeading(8); cell.add(p); cell.add(p1); cell.add(p2); cell.add(p1); cell.add(p2); cell.add(p1); cell.add(p2); table1.addCell(blank); cell.setBorder(0); table1.addCell(cell); document.add(table1); table1 = new Table(1, 1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(3); table1.setOffset(0); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.add(new Phrase(count + ". Shop Drawings - Samples - Submittals", new Font(Font.TIMES_ROMAN, 10, Font.BOLD))); cell.setBorder(0); table1.addCell(cell); document.add(table1); count++; table1 = new Table(2, 1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(0); table1.setWidths(twoD); table1.setOffset(2); p = new Phrase( "All shop drawings, materials samples, and submittals shall be submitted to the Contractor within 30 days of the issuance of this " + title + " Agreement unless specifically noted below. All submitted items shall be in number and type as per the contract documents including, but not limited to, the following:", tnr8); p.setLeading(8); cell = new Cell(p); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); table1.addCell(blank); cell.setBorder(0); table1.addCell(cell); document.add(table1); table1 = new Table(2, 1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(0); table1.setWidths(twoF); table1.setOffset(4); p = new Phrase("--The number of copies of each submittal for " + jobName + " is " + submittal_copies + ".\n--All submittals, of any type, are due on or before " + dueDate + " unless specifically noted otherwise.\n", tnr8); p.setLeading(8); cell = new Cell(p); table1.addCell(blank); cell.setBorder(0); table1.addCell(cell); String submittals = ""; if (!submittalVector.isEmpty()) { p = new Phrase(" Due Date:\n", new Font(Font.TIMES_ROMAN, 8, Font.BOLD)); p.setLeading(8); cell = new Cell(p); cell.setColspan(2); cell.setBorder(0); table1.addCell(cell); for (int i = 0; i < submittalVector.size(); i++) { submittals += (String) submittalVector.elementAt(i) + "\n"; } p = new Phrase(submittals, new Font(Font.TIMES_ROMAN, 8, Font.NORMAL)); p.setLeading(8); cell = new Cell(p); table1.addCell(blank); cell.setBorder(0); table1.addCell(cell); } else { p = new Phrase("\nSubmittals required per contract documents and specifications.\n", new Font(Font.TIMES_ROMAN, 8, Font.BOLD)); p.setLeading(8); cell = new Cell(p); table1.addCell(blank); cell.setBorder(0); table1.addCell(cell); } p = new Phrase("\n(" + subName + " is responsible for all submittals required in the Contract Documents as pertaining to labor and materials included in the scope of this " + title + " Agreement regardless of items listed, not listed, or incorrectly listed above.)", new Font(Font.TIMES_ROMAN, 6, Font.ITALIC)); p.setLeading(8); cell = new Cell(p); table1.addCell(blank); cell.setBorder(0); table1.addCell(cell); document.add(table1); table1 = new Table(2, 1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(1); table1.setWidths(twoD); table1.setOffset(2); p = new Phrase(cTitle.toUpperCase() + " acknowledges that review and approval of any type of submittal which deviates from the Project Plans and Specifications does NOT relieve the " + cTitle + " from costs, penalties and all other remedies required to meet the published specifications where the " + cTitle + " failed to notify the Owner/Architect/Contractor in writing of the variations from the specifications and failed to obtain written approval for EACH variation from the published specifications.", tnr8); p.setLeading(8); cell = new Cell(p); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); //cell.setLeading(8); table1.addCell(blank); cell.setBorder(0); table1.addCell(cell); document.add(table1); table1 = new Table(1, 1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(0); table1.setOffset(2); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.add(new Phrase(count + ". Project Close-out", new Font(Font.TIMES_ROMAN, 10, Font.BOLD))); cell.setBorder(0); table1.addCell(cell); document.add(table1); count++; table1 = new Table(2, 1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(0); table1.setOffset(4); table1.setWidths(twoD); p = new Phrase( "All project close-out documents, materials, and Owner-training required by the Contract Documents shall be submitted to the Contractor PRIOR to payment of the " + cTitle + "'s 90% completion payment request. The requirements shall include, but not be limited to, the following:", tnr8); p.setLeading(8); cell = new Cell(p); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); //cell.setLeading(8); table1.addCell(blank); cell.setBorder(0); table1.addCell(cell); document.add(table1); table1 = new Table(2, 1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(0); table1.setOffset(0); table1.setWidths(twoG); cell = new Cell(); cell.setHorizontalAlignment("right"); cell.setVerticalAlignment("top"); cell.add(new Phrase("\"O & M\" Submittals: ", new Font(Font.TIMES_ROMAN, 8, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("top"); cell.add(new Phrase(omSubmittals, new Font(Font.TIMES_ROMAN, 8, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("right"); cell.setVerticalAlignment("top"); cell.add(new Phrase("Full Warranty: ", new Font(Font.TIMES_ROMAN, 8, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("top"); cell.add(new Phrase(fullWarranty, new Font(Font.TIMES_ROMAN, 8, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("right"); cell.setVerticalAlignment("top"); cell.add(new Phrase("Up-to-date Lien Release(s): ", new Font(Font.TIMES_ROMAN, 8, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("top"); cell.add(new Phrase(lienReleases, new Font(Font.TIMES_ROMAN, 8, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("right"); cell.setVerticalAlignment("top"); cell.add(new Phrase("Signed Training Form: ", new Font(Font.TIMES_ROMAN, 8, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("top"); cell.add(new Phrase(signedTraining, new Font(Font.TIMES_ROMAN, 8, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("right"); cell.setVerticalAlignment("top"); cell.add(new Phrase("Materials-Equip-Specialty Items: ", new Font(Font.TIMES_ROMAN, 8, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("top"); cell.add(new Phrase(specialtyItems, new Font(Font.TIMES_ROMAN, 8, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("right"); cell.setVerticalAlignment("top"); cell.add(new Phrase("Other Items: ", new Font(Font.TIMES_ROMAN, 8, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("top"); cell.add(new Phrase(otherItems, new Font(Font.TIMES_ROMAN, 8, Font.NORMAL))); cell.setBorder(0); table1.addCell(cell); document.add(table1); if (insure) { table1 = new Table(1, 1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(3); table1.setOffset(2); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.add(new Phrase(count + ". " + cTitle + " Safety Program (If Applicable)", new Font(Font.TIMES_ROMAN, 10, Font.BOLD))); cell.setBorder(0); table1.addCell(cell); document.add(table1); table1 = new Table(2, 1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(0); table1.setOffset(2); table1.setWidths(twoD); p = new Phrase( cTitle + " will submit one copy of the " + cTitle + "'s job-specific safety program to " + attr.get("full_name") + " before any equipment, manpower, or materials are brought onto the Project site. ", tnr8); p.setLeading(8); cell = new Cell(p); p = new Phrase(cTitle + " will require it's " + cTitle.toLowerCase() + "s to have in place a job-specific safety program before they enter the Project site.", tnr8); p.setLeading(8); cell.add(p); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); //cell.setLeading(8); table1.addCell(blank); cell.setBorder(0); table1.addCell(cell); document.add(table1); } if (insure) { document.newPage(); table1 = new Table(1, 1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(3); table1.setOffset(0); cell = new Cell(); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); cell.add(new Phrase(title.toUpperCase() + " EXHIBIT \"D\"", new Font(Font.TIMES_ROMAN, 20, Font.BOLD))); cell.setLeading(6); cell.setBorder(0); table1.addCell(cell); cell = new Cell(new Phrase("\n", new Font(Font.TIMES_ROMAN, 8))); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); cell.add(new Phrase(cTitle.toUpperCase() + "'S COST BREAKDOWN\n", new Font(Font.TIMES_ROMAN, 16, Font.BOLD))); cell.setBackgroundColor(Color.lightGray); cell.setUseDescender(true); cell.setLeading(17); cell.setBorder(0); table1.addCell(cell); document.add(table1); table1 = new Table(1, 1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setPadding(0); table1.setOffset(2); p = new Phrase("The following information is to be supplied by " + subName + " for " + jobName + ". List all SUPPLIERS and SUBCONTRACTORS for approval and payment confirmation (attach additional pages if needed):", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL)); p.setLeading(12); cell = new Cell(p); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.add(new Phrase( " Name City Phone Estimated Dollar Amount", tnr8)); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); p = new Phrase( "________________________________________________________________________ $___________________\n", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL)); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); for (int i = 0; i < 10; i++) { cell.add(p); } cell.setBorder(0); table1.addCell(cell); p = new Phrase( "Supplier accepts full responsibility for acts and omissions of his subcontractors and suppliers. No suppliers or subcontractors are to be added or deleted without prior notification to " + attr.get("full_name") + ".", new Font(Font.TIMES_ROMAN, 8, Font.ITALIC)); p.setLeading(10); cell = new Cell(p); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.setLeading(15); cell.setBorder(0); table1.addCell(cell); p = new Phrase( "List the primary phases of your contracted scope of work and the associated costs. This information may be released to the Owner if disputes arise over future billings and progress payments.", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL)); p.setLeading(12); cell = new Cell(p); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.setLeading(15); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); cell.add(new Phrase( "Description/Phase of Work Labor Material Equipment/Tools Sub-subcontractor Total", tnr8)); cell.setBorder(0); table1.addCell(cell); cell = new Cell(); p = new Phrase( "________________________ $____________ $____________ $____________ $____________ $____________ \n", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL)); cell.setHorizontalAlignment("left"); cell.setVerticalAlignment("middle"); for (int i = 0; i < 13; i++) { cell.add(p); } cell.setBorder(0); table1.addCell(cell); document.add(table1); document.add(spacer); table1 = new Table(1, 1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setOffset(2); table1.setPadding(1); cell = new Cell(); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); //cell.setLeading(10); cell.add(new Phrase(subName, new Font(Font.TIMES_ROMAN, 10, Font.UNDERLINE))); cell.add(new Phrase("\n" + cTitle, new Font(Font.TIMES_ROMAN, 6, Font.ITALIC))); cell.setBorder(0); table1.addCell(cell); document.add(table1); document.add(spacer); document.add(spacer); table1 = new Table(1, 1); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); table1.setOffset(0); cell = new Cell(); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); //cell.setLeading(10); cell.add(new Phrase("By:____________________________", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); cell.add(new Phrase("\nPrint Name of Authorized Company Officer", new Font(Font.TIMES_ROMAN, 6, Font.ITALIC))); cell.setBorder(0); table1.addCell(cell); document.add(table1); document.add(spacer); document.add(spacer); table1 = new Table(1, 1); table1.setOffset(0); table1.setBorderWidth(0); table1.setWidth(100); //table1.setDefaultCellBorder(0); cell = new Cell(); cell.setHorizontalAlignment("center"); cell.setVerticalAlignment("middle"); //cell.setLeading(10); cell.add(new Phrase("By:____________________________", new Font(Font.TIMES_ROMAN, 10, Font.NORMAL))); cell.add(new Phrase("\nAuthorized Signature", new Font(Font.TIMES_ROMAN, 6, Font.ITALIC))); cell.setBorder(0); table1.addCell(cell); document.add(table1); } }
From source file:de.unigoettingen.sub.commons.contentlib.pdflib.PDFManager.java
License:Apache License
/****************************************************************************************************** * Adds the all pages.//from w w w.j av a2s. c om * * @param pagesizemode {@link PdfPageSize} * @param writer {@link PdfWriter} * @param pdfdoc {@link Document} * @return {@link PdfPageLabels} * * * @throws ImageInterpreterException the image interpreter exception * @throws IOException Signals that an I/O exception has occurred. * @throws MalformedURLException the malformed url exception * @throws PDFManagerException the PDF manager exception * @throws ImageManagerException *******************************************************************************************************/ private PdfPageLabels addAllPages(PdfPageSize pagesizemode, PdfWriter writer, Document pdfdoc, Watermark myWatermark) throws ImageInterpreterException, IOException, MalformedURLException, PDFManagerException, ImageManagerException { PdfPageLabels pagelabels = new PdfPageLabels(); int pageadded = 0; // sort the HashMap by the KeySet (pagenumber) Map<Integer, UrlImage> sortedMap = new TreeMap<Integer, UrlImage>(imageURLs); float scalefactor = 1; // scaling factor of the image int page_w = PaperSize.A4.width; int page_h = PaperSize.A4.height; LOGGER.debug("iterate over " + imageURLs.size() + " pages."); for (Integer imageKey : sortedMap.keySet()) { Watermark watermark = myWatermark; Image pdfImage = null; // PDF-Image LOGGER.debug("Writing page " + imageKey); boolean errorPage = false; // true if the image does not exists URL errorUrl = null; // url of the image that does not exists // ------------------------------------------------------------------------------------------------ // Title page available. Render it in pdftitlepage // ------------------------------------------------------------------------------------------------ if ((pdftitlepages != null) && (pdftitlepages.get(imageKey) != null)) { // title page PDFTitlePage pdftitlepage = pdftitlepages.get(imageKey); // create new PDF page try { pdfdoc.setPageSize(PageSize.A4); pdfdoc.setMargins(pdftitlepage.getLeftMargin(), pdftitlepage.getRightMargin(), pdftitlepage.getTopMargin(), pdftitlepage.getBottomMargin()); pageadded++; pdfdoc.newPage(); // create new page // set page name pagelabels.addPageLabel(pageadded, PdfPageLabels.EMPTY, "-"); } catch (Exception e1) { throw new PDFManagerException("PDFManagerException occured while creating new page in PDF", e1); } // render title page pdftitlepage.render(pdfdoc); } // ------------------------------------------------------------------------------------------------ // Process image with imageKey // ------------------------------------------------------------------------------------------------ UrlImage pdfpage = imageURLs.get(imageKey); if (pdfpage.getURL() != null) { boolean added = false; boolean scaled = false; URL url = pdfpage.getURL(); // pdf hack if (ContentServerConfiguration.getInstance().getUsePdf()) { LOGGER.debug("trying to find original pdf"); PdfContentByte pdfcb = null; PdfReader pdfreader = null; PdfImportedPage importpage = null; try { String pdfpath = ContentServerConfiguration.getInstance().getRepositoryPathPdf() .replace("file:///", ""); LOGGER.debug("looking in " + pdfpath + " for pdf file"); String tiffPath = ContentServerConfiguration.getInstance().getRepositoryPathImages() .replace("file:///", ""); // String urlString = url.toString(); int pageNumber = pdfpage.getPageNumber(); // UrlImage copy = new PDFPage(pdfpage); URL pdfurl = new URL(url.toString().replace(tiffPath, pdfpath) .replace(url.toString().substring(url.toString().lastIndexOf(".")), ".pdf")); LOGGER.debug("pdfurl = " + pdfurl); if (new File(pdfurl.toURI()).exists()) { LOGGER.debug("found pdf " + pdfurl.toURI()); // copy.setURL(pdfurl); pdfcb = writer.getDirectContent(); pdfreader = new PdfReader(pdfurl); importpage = writer.getImportedPage(pdfreader, pageNumber); LOGGER.debug("creating orig pdf page"); Rectangle rect = pdfreader.getPageSize(pageNumber); try { pdfdoc.setPageSize(rect); pdfdoc.newPage(); // create new page } catch (Exception e1) { throw new PDFManagerException("Exception occured while creating new page in PDF", e1); } pageadded++; pdfcb.addTemplate(importpage, 0, 0); added = true; LOGGER.debug("page:" + imageKey + " url: " + pdfurl.toString()); } } catch (URISyntaxException e) { LOGGER.debug(e); added = false; } finally { if (writer != null) { writer.freeReader(pdfreader); writer.flush(); } if (pdfreader != null) { pdfreader.close(); } } } if (!added) { // image file LOGGER.debug("using image to create pdf page"); // try to get ImageInterpreter from url ImageInterpreter myInterpreter = ImageFileFormat.getInterpreter(url, httpproxyhost, httpproxyport, httpproxyuser, httpproxypassword); try { // check preferred compression type depending on color depth Embedd preferredEmbeddingType = Embedd.ORIGBYTESTREAM; if (myInterpreter.getColordepth() == 1) { // bitonal image preferredEmbeddingType = embeddBitonalImage; } else if ((myInterpreter.getColordepth() > 1) && (myInterpreter.getSamplesperpixel() == 1)) { // greyscale image preferredEmbeddingType = embeddGreyscaleImage; } else { // color image preferredEmbeddingType = embeddColorImage; } // ------------------------------------------------------------------------------------- // Try to generate image // ------------------------------------------------------------------------------------- pdfImage = generatePdfImageFromInterpreter(myInterpreter, preferredEmbeddingType, errorPage, watermark, errorUrl); // ------------------------------------------------------------------------------------- // image couldn't be embedded yet (emergencyCase) // ------------------------------------------------------------------------------------- if (pdfImage == null) { LOGGER.warn( "Couldn't use preferred method for embedding the image. Instead had to use JPEG or RenderedImage"); // Get Interpreter and rendered Image // --------------------------------------------------------------------------------------------------------------------------------- RenderedImage ri = null; if (preferredEmbeddingType == embeddBitonalImage) { ImageManager sourcemanager = new ImageManager(url); boolean watermarkscale = ContentServerConfiguration.getInstance() .getScaleWatermark(); // should we scale // the watermark ? ri = sourcemanager.scaleImageByPixel(3000, 0, ImageManager.SCALE_BY_WIDTH, 0, null, null, watermark, watermarkscale, ImageManager.BOTTOM); myInterpreter = sourcemanager.getMyInterpreter(); } else { ri = myInterpreter.getRenderedImage(); if (watermark != null) { ri = addwatermark(ri, watermark, 2); myInterpreter.setHeight( myInterpreter.getHeight() + watermark.getRenderedImage().getHeight()); } } // scale rendered image // --------------------------------------------------------------------------------------------------------------------------------- // float scalefactorX = 1; // float scalefactorY = 1; // switch (pagesizemode) { // case ORIGINAL: // scalefactorX = 72f / myInterpreter.getXResolution(); // scalefactorY = 72f / myInterpreter.getYResolution(); // break; // default: // /* // * check, if the image needs to be scaled, because // * it's bigger than A4 calculate the new scalefactor // */ // float page_w_pixel = (float) (page_w * // myInterpreter.getXResolution() / 25.4); // float page_h_pixel = (float) (page_h * // myInterpreter.getYResolution() / 25.4); // // float res_x = myInterpreter.getXResolution(); // float res_y = myInterpreter.getYResolution(); // // long w = myInterpreter.getWidth(); // get height and // // width // long h = myInterpreter.getHeight(); // // if ((w > page_w_pixel) || (h > page_h_pixel)) { // LOGGER.debug("scale image to fit the page"); // float scalefactor_w = page_w_pixel / w; // float scalefactor_h = page_h_pixel / h; // if (scalefactor_h < scalefactor_w) { // scalefactor = scalefactor_h; // } else { // scalefactor = scalefactor_w; // } // w = (long) (w * scalefactor); // h = (long) (h * scalefactor); // } // scalefactorX = (72f / res_x) * scalefactor; // scalefactorY = (72f / res_y) * scalefactor; // break; // } // //scalefactorX = 0.2f; // //scalefactorY = 0.2f; // if (preferredEmbeddingType == embeddBitonalImage) { // ImageManager sourcemanager = new ImageManager(url); // ri = sourcemanager.scaleImageByPixel((int) // (scalefactorX*100), (int) (scalefactorY*100), // ImageManager.SCALE_BY_PERCENT, 0, null, null, // watermark, true, ImageManager.BOTTOM); // }else{ // ri = ImageManipulator.scaleInterpolationBilinear(ri, // scalefactorX, scalefactorY); // } // myInterpreter.setHeight(ri.getHeight()); // myInterpreter.setWidth(ri.getWidth()); // scaled = true; // add Watermark // --------------------------------------------------------------------------------------------------------------------------------- // ri = addwatermark(ri, watermark, // ImageManager.BOTTOM); // myInterpreter.setHeight(myInterpreter.getHeight() + // watermark.getRenderedImage().getHeight()); // Try to write into pdfImage // --------------------------------------------------------------------------------------------------------------------------------- if (myInterpreter.getColordepth() > 1) { // compress image if greyscale or color ByteArrayOutputStream bytesoutputstream = new ByteArrayOutputStream(); // JpegInterpreter jpint = new JpegInterpreter(ri); // jpint.setXResolution(myInterpreter.getXResolution()); // jpint.setYResolution(myInterpreter.getYResolution()); // jpint.writeToStream(null, bytesoutputstream); LOGGER.error("WritingJPEGImage"); writeJpegFromRenderedImageToStream(bytesoutputstream, ri, null, myInterpreter); byte[] returnbyteArray = bytesoutputstream.toByteArray(); if (bytesoutputstream != null) { bytesoutputstream.flush(); bytesoutputstream.close(); } pdfImage = Image.getInstance(returnbyteArray); returnbyteArray = null; } else { // its bitonal, but can't be embedded directly, // need to go via RenderedImage BufferedImage buffImage = ImageManipulator.fromRenderedToBuffered(ri); pdfImage = Image.getInstance(buffImage, null, false); if (myWatermark != null) { // create Image for Watermark JpegInterpreter jpint = new JpegInterpreter(myWatermark.getRenderedImage()); ByteArrayOutputStream bytesoutputstream = new ByteArrayOutputStream(); jpint.setXResolution(myInterpreter.getXResolution()); jpint.setYResolution(myInterpreter.getYResolution()); jpint.writeToStream(null, bytesoutputstream); byte[] returnbyteArray = bytesoutputstream.toByteArray(); jpint.clear(); if (bytesoutputstream != null) { bytesoutputstream.flush(); bytesoutputstream.close(); } Image blaImage = Image.getInstance(returnbyteArray); returnbyteArray = null; // set Watermark as Footer at fixed position // (200,200) Chunk c = new Chunk(blaImage, 200, 200); Phrase p = new Phrase(c); HeaderFooter hf = new HeaderFooter(p, false); pdfdoc.setFooter(hf); } // pdfdoc.setPageSize(arg0) // TODO das scheint nicht zu funktionieren... sollte // dieser Code entfernt werden? } } // end of : if (pdfImage == null) { } catch (BadElementException e) { throw new PDFManagerException("Can't create a PDFImage from a Buffered Image.", e); } catch (ImageManipulatorException e) { LOGGER.warn(e); } // --------------------------------------------------------------------------------------------------------- // place the image on the page // --------------------------------------------------------------------------------------------------------- if (pagesizemode == PdfPageSize.ORIGINAL) { // calculate the image width and height in points, create // the rectangle in points Rectangle rect = null; if (!scaled) { float image_w_points = (myInterpreter.getWidth() / myInterpreter.getXResolution()) * 72; float image_h_points = ((myInterpreter.getHeight()) / myInterpreter.getYResolution()) * 72; rect = new Rectangle(image_w_points, image_h_points); } else { rect = new Rectangle(myInterpreter.getWidth(), myInterpreter.getHeight()); } // create the pdf page according to this rectangle LOGGER.debug("creating original page sized PDF page:" + rect.getWidth() + " x " + rect.getHeight()); pdfdoc.setPageSize(rect); // create new page to put the content try { pageadded++; pdfdoc.newPage(); } catch (Exception e1) { throw new PDFManagerException( "DocumentException occured while creating page " + pageadded + " in PDF", e1); } // scale image and place it on page; scaling the image does // not scale the images bytestream if (!scaled) { pdfImage.scalePercent((72f / myInterpreter.getXResolution() * 100), (72f / myInterpreter.getYResolution() * 100)); } pdfImage.setAbsolutePosition(0, 0); // set image to lower // left corner boolean result; try { result = pdfdoc.add(pdfImage); // add it to PDF if (!result) { throw new PDFManagerException("Image \"" + url.toString() + "\" can's be added to PDF! Error during placing image on page"); } } catch (DocumentException e) { throw new PDFManagerException("DocumentException occured while adding the image to PDF", e); } } else { /* * it is not the original page size PDF will contain only A4 pages */ LOGGER.debug("creating A4 pdf page"); // create new page to put the content try { pageadded++; pdfdoc.setPageSize(PageSize.A4); pdfdoc.newPage(); // create new page } catch (Exception e1) { throw new PDFManagerException("Exception occured while creating new page in PDF", e1); } float page_w_pixel = (float) (page_w * myInterpreter.getXResolution() / 25.4); float page_h_pixel = (float) (page_h * myInterpreter.getYResolution() / 25.4); float res_x = myInterpreter.getXResolution(); float res_y = myInterpreter.getYResolution(); long w = myInterpreter.getWidth(); // get height and width long h = myInterpreter.getHeight(); /* * if the page is landscape, we have to rotate the page; this is only done in PDF, the orig image bytestream is NOT rotated */ if (w > h) { LOGGER.debug("rotate image"); // must be rotated pdfImage.setRotationDegrees(90); // change width and height long dummy = w; w = h; h = dummy; // change the resolutions x and y float dummy2 = res_x; res_x = res_y; res_y = dummy2; } /* * check, if the image needs to be scaled, because it's bigger than A4 calculate the new scalefactor */ if ((w > page_w_pixel) || (h > page_h_pixel)) { LOGGER.debug("scale image to fit the page"); float scalefactor_w = page_w_pixel / w; float scalefactor_h = page_h_pixel / h; if (scalefactor_h < scalefactor_w) { scalefactor = scalefactor_h; } else { scalefactor = scalefactor_w; } w = (long) (w * scalefactor); h = (long) (h * scalefactor); } if (!scaled) { pdfImage.scalePercent((72f / res_x * 100) * scalefactor, (72f / res_y * 100) * scalefactor); } // center the image on the page // --------------------------------------------------------------- float y_offset = 0; // y - offset // get image size in cm; height float h_cm = (float) (h / (res_x / 2.54)); // float w_cm = (float) (w / (res_y / 2.54)); // and width if ((h_cm + 2) < (page_h / 10)) { y_offset = 2 * 72f / 2.54f; } float freespace_x = ((page_w_pixel - w) / res_x * 72f); float freespace_y = ((page_h_pixel - h) / res_y * 72f) - (y_offset); // set position add image pdfImage.setAbsolutePosition(freespace_x / 2, freespace_y); boolean result; try { result = pdfdoc.add(pdfImage); } catch (DocumentException e) { LOGGER.error(e); throw new PDFManagerException("DocumentException occured while adding the image to PDF", e); } if (!result) { // placing the image in the PDF was not successful throw new PDFManagerException("Image \"" + url.toString() + "\" can's be added to PDF! Error during placing image on page"); } // draw box around the image page // ------------------------------------------------------------------------------------------------ if (pagesizemode == PdfPageSize.A4BOX) { LOGGER.debug("draw box around the image page"); // draw a black frame around the image PdfContentByte pcb = writer.getDirectContent(); // calculate upper left corner of the box (measurment is // in points) float left_x = (freespace_x / 2); float left_y = freespace_y; // calculate the lower right corner of the box // (measurement is in points) float image_w_points = (w / res_x) * 72; float image_h_points = (h / res_y) * 72; pcb.setLineWidth(1f); pcb.stroke(); pcb.rectangle(left_x, left_y, image_w_points, image_h_points); pcb.stroke(); } } // end of: if (pagesizemode == PdfPageSize.ORIGINAL) { pdfImage = null; myInterpreter.clear(); // writer.freeReader(new PdfReader(pdfpage.getURL())); } // end of : if (pdfpage.getURL() != null) { // ------------------------------------------------------------------------------------------------ // it is a page from a PDF file which should be inserted // ------------------------------------------------------------------------------------------------ else if (pdfpage.getClass() == PDFPage.class && ((PDFPage) pdfpage).getPdfreader() != null) { PdfContentByte pdfcb = writer.getDirectContent(); PdfReader pdfreader = ((PDFPage) pdfpage).getPdfreader(); PdfImportedPage importpage = writer.getImportedPage(pdfreader, pdfpage.getPageNumber()); if (pagesizemode == PdfPageSize.ORIGINAL) { LOGGER.debug("creating orig pdf page"); Rectangle rect = pdfreader.getPageSize(pdfpage.getPageNumber()); try { pdfdoc.setPageSize(rect); pdfdoc.newPage(); // create new page } catch (Exception e1) { throw new PDFManagerException("Exception occured while creating new page in PDF", e1); } // add content pageadded++; pdfcb.addTemplate(importpage, 0, 0); } else { LOGGER.debug("creating A4 pdf page"); try { pdfdoc.setPageSize(PageSize.A4); pdfdoc.newPage(); // create new page } catch (Exception e1) { throw new PDFManagerException("Exception occured while creating new page in PDF", e1); } // add content pageadded++; pdfcb.addTemplate(importpage, 0, 0); // draw box // if (pagesizemode == PdfPageSize.A4BOX) { // FIXME: nichts implementiert ? // } } } // handle pagename if (imageNames != null) { String pagename = imageNames.get(imageKey); if (pagename != null) { pagelabels.addPageLabel(pageadded, PdfPageLabels.EMPTY, pagename); } else { pagelabels.addPageLabel(pageadded, PdfPageLabels.EMPTY, "unnumbered"); } } // handle bookmarks and set destinator for bookmarks LOGGER.debug("handle bookmark(s) for page"); PdfDestination destinator = new PdfDestination(PdfDestination.FIT); setBookmarksForPage(writer, destinator, imageKey); // the key in the writer.flush(); // mashMap is the pagenumber } // end of while iterator over all pages } return pagelabels; }
From source file:fr.opensagres.odfdom.converter.pdf.internal.stylable.StylableImage.java
License:Open Source License
public Element getElement() { if (chunk == null) { float offsetX = x != null ? x : 0.0f; // negate offsetY because open office and iText vertical coordinates // are interpreted differently // in open office negative offset means "move up" // but in iText it means "move down" float offsetY = y != null ? -y : 0.0f; // iText image workaround // iText cannot draw an image higher than current vertical position // we create special image with y coordinate offset // this offset will be used while drawing by ExtendedPdfContentByte ExtendedImage extImg = new ExtendedImage(image, offsetY); // if run-through set line height to zero // so subsequent text will run through the image, not below chunk = new Chunk(extImg, offsetX, runThrough ? -image.getScaledHeight() : 0.0f); }//from w ww . j a v a 2 s. c om return chunk; }
From source file:ilarkesto.integration.itext.Paragraph.java
License:Open Source License
@Override public Element getITextElement() { com.lowagie.text.Paragraph p = new com.lowagie.text.Paragraph(); float maxSize = 0; for (AParagraphElement element : getElements()) { if (element instanceof TextChunk) { TextChunk textChunk = (TextChunk) element; FontStyle fontStyle = textChunk.getFontStyle(); FontSelector fontSelector = createFontSelector(fontStyle.getFont(), fontStyle); String text = textChunk.getText(); Phrase phrase = fontSelector.process(text); p.add(phrase);//w w w.j a v a 2s .co m float size = (fontStyle.getSize() * 1.1f) + 1f; if (size > maxSize) maxSize = PdfBuilder.mmToPoints(size); } else if (element instanceof Image) { Image image = (Image) element; com.lowagie.text.Image itextImage; try { itextImage = image.getITextElement(); } catch (Exception ex) { log.warn("Including image failed:", image, ex); continue; } if (image.getAlign() != null) { itextImage.setAlignment(Image.convertAlign(image.getAlign()) | com.lowagie.text.Image.TEXTWRAP); p.add(itextImage); } else { Chunk chunk = new Chunk(itextImage, 0, 0); p.add(chunk); float size = image.getHeight() + 3; if (size > maxSize) maxSize = size; } } else { throw new RuntimeException("Unsupported paragraph element: " + element.getClass().getName()); } } p.setLeading(maxSize); p.setSpacingBefore(PdfBuilder.mmToPoints(spacingTop)); p.setSpacingAfter(PdfBuilder.mmToPoints(spacingBottom)); if (align != null) p.setAlignment(convertAlign(align)); if (height <= 0) return p; // wrap in table PdfPCell cell = new PdfPCell(); cell.setBorder(0); cell.setFixedHeight(PdfBuilder.mmToPoints(height)); cell.addElement(p); PdfPTable table = new PdfPTable(1); table.setWidthPercentage(100); table.addCell(cell); return table; }
From source file:ispyb.client.mx.collection.PdfRtfExporter.java
License:Open Source License
private Chunk getChunkImage(String image) throws BadElementException, MalformedURLException, IOException { Image jpg = Image.getInstance(image); jpg.scaleAbsolute(jpg.getWidth() * 10 / jpg.getHeight(), 10); return new Chunk(jpg, 0, 0); }
From source file:net.bull.javamelody.internal.web.pdf.PdfCoreReport.java
License:Apache License
private void writeGraphs(Collection<JRobin> jrobins, Map<String, byte[]> mySmallGraphs) throws IOException, DocumentException { if (collector.isStopped()) { // pas de graphs, ils seraient en erreur sans timer // mais un message d'avertissement la place final String message = getString("collect_server_misusage"); final Paragraph jrobinParagraph = new Paragraph(message, PdfFonts.BOLD.getFont()); jrobinParagraph.setAlignment(Element.ALIGN_CENTER); addToDocument(jrobinParagraph);//w ww .j a v a 2s. c o m return; } if (collector.isStorageUsedByMultipleInstances()) { final String message = getString("storage_used_by_multiple_instances") + "\n\n"; final Paragraph jrobinParagraph = new Paragraph(message, PdfFonts.BOLD.getFont()); jrobinParagraph.setAlignment(Element.ALIGN_CENTER); addToDocument(jrobinParagraph); } final Paragraph jrobinParagraph = new Paragraph("", FontFactory.getFont(FontFactory.HELVETICA, 9f, Font.NORMAL)); jrobinParagraph.setAlignment(Element.ALIGN_CENTER); jrobinParagraph.add(new Phrase("\n\n\n\n")); final Collection<byte[]> graphs; if (mySmallGraphs != null) { // si les graphiques ont t prinitialiss (en Swing) alors on les utilise graphs = mySmallGraphs.values(); } else { if (jrobins.isEmpty()) { return; } graphs = new ArrayList<byte[]>(jrobins.size()); for (final JRobin jrobin : jrobins) { graphs.add(jrobin.graph(range, SMALL_GRAPH_WIDTH, SMALL_GRAPH_HEIGHT)); } } int i = 0; for (final byte[] graph : graphs) { if (i % 3 == 0 && i != 0) { // un retour aprs httpSessions et avant activeThreads pour l'alignement jrobinParagraph.add(new Phrase("\n\n\n\n\n")); } final Image image = Image.getInstance(graph); image.scalePercent(50); jrobinParagraph.add(new Phrase(new Chunk(image, 0, 0))); jrobinParagraph.add(new Phrase(" ")); i++; } jrobinParagraph.add(new Phrase("\n")); addToDocument(jrobinParagraph); }
From source file:net.bull.javamelody.internal.web.pdf.PdfCounterRequestContextReport.java
License:Apache License
private void writeRequest(CounterRequestContext context, PdfPCell cell, int margin) throws DocumentException, IOException { final Paragraph paragraph = new Paragraph(getDefaultCell().getLeading() + cellFont.getSize()); paragraph.setIndentationLeft(margin); if (context.getParentCounter().getIconName() != null) { paragraph.add(new Chunk(getImage(context.getParentCounter().getIconName()), 0, -1)); }// www. ja v a 2 s. c o m paragraph.add(new Phrase(context.getCompleteRequestName(), cellFont)); cell.addElement(paragraph); }