List of usage examples for com.lowagie.text Element ALIGN_MIDDLE
int ALIGN_MIDDLE
To view the source code for com.lowagie.text Element ALIGN_MIDDLE.
Click Source Link
From source file:com.allinfinance.system.util.PdfUtil.java
License:Open Source License
public static void create(String mchtId, String selMchtId, String path, List<Object[]> list, LinkedHashMap<String, List<Object[]>> map, Set<String> set) throws Exception { BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); ////from w w w . j a v a2s .c o m Font font17 = new Font(bfChinese, 17, Font.BOLD); Font font8 = new Font(bfChinese, 8, Font.NORMAL); Font font9 = new Font(bfChinese, 9, Font.NORMAL); Font font9Bold = new Font(bfChinese, 9, Font.BOLD); Font font8Red = new Font(bfChinese, 8, Font.NORMAL); font8Red.setColor(Color.RED); Font font8Green = new Font(bfChinese, 8, Font.NORMAL); font8Green.setColor(Color.GREEN); logger.info("Starting build document..."); Document document = new Document(PageSize.A4, 36, 36, 36, 36); PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(path)); document.open(); LINECANVAS border = new LINECANVAS(); // float[] widths = { 0.1f, 0.35f, 0.35f, 0.1f, 0.1f }; PdfPTable table = new PdfPTable(widths); table.setWidthPercentage(100); table.getDefaultCell().setBorder(PdfPCell.NO_BORDER); table.getDefaultCell().setFixedHeight(12); //CELL PdfPCell cellMchntId = new PdfPCell(new Paragraph(mchtId, font8)); cellMchntId.setBorder(PdfPCell.BOTTOM); cellMchntId.setHorizontalAlignment(Element.ALIGN_CENTER); PdfPCell cellMchntName = new PdfPCell(new Paragraph(InformationUtil.getMchtName(mchtId), font8)); cellMchntName.setBorder(PdfPCell.BOTTOM); cellMchntName.setHorizontalAlignment(Element.ALIGN_CENTER); String point = InformationUtil.getCurPaperPoint(selMchtId); PdfPCell cellPoint; cellPoint = new PdfPCell(new Paragraph(point, font8Red)); cellPoint.setBorder(PdfPCell.NO_BORDER); cellPoint.setHorizontalAlignment(Element.ALIGN_CENTER); PdfPCell cellLevel; String level = InformationUtil.getCurPaperLevel(selMchtId); if (Integer.valueOf(point) >= 60) { cellLevel = new PdfPCell(new Paragraph(level, font8Green)); } else { cellLevel = new PdfPCell(new Paragraph(level, font8Red)); } cellLevel.setBorder(PdfPCell.NO_BORDER); cellLevel.setHorizontalAlignment(Element.ALIGN_CENTER); // Image img = Image.getInstance( ServletActionContext.getServletContext().getResource("/ext/resources/images/Title_logo.gif")); img.scalePercent(70); float w = img.getScaledWidth(); float h = img.getScaledHeight(); writer.getDirectContent().addImage(img, w, 0, 0, h, 36, PageSize.A4.getHeight() - 36 - h); // PdfPCell cell = new PdfPCell(new Paragraph("?", font17)); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); cell.setColspan(5); cell.setFixedHeight(h); cell.setBorder(PdfPCell.NO_BORDER); table.addCell(cell); cell = new PdfPCell(); cell.setFixedHeight(20); cell.setColspan(5); cell.setBorder(PdfPCell.NO_BORDER); table.addCell(cell); table.addCell(new Paragraph("?", font8)); table.addCell(cellMchntId); table.addCell(" "); table.addCell(new Paragraph(": ", font8)); table.addCell(cellPoint); table.addCell(new Paragraph("??", font8)); table.addCell(cellMchntName); table.addCell(" "); table.addCell(new Paragraph(": ", font8)); table.addCell(cellLevel); document.add(table); document.add(new Paragraph("\n\n")); //? PdfPTable t = new PdfPTable(1); Iterator<Object[]> it0 = list.iterator(); int i = 1; while (it0.hasNext()) { Object[] obj = it0.next(); PdfPCell c = new PdfPCell(); c.addElement(new Paragraph("Q" + String.valueOf(i++) + "" + obj[1].toString(), font9Bold)); List<Object[]> opts = map.get(obj[0].toString()); String opt = ""; Iterator<Object[]> it1 = opts.iterator(); while (it1.hasNext()) { Object[] o = it1.next(); if (set.contains(o[0])) { opt += "? "; opt += o[1].toString(); opt += " "; } else { opt += " "; opt += o[1].toString(); opt += " "; } } c.addElement(new Paragraph(opt.trim(), font9)); c.setBorder(PdfPCell.NO_BORDER); if (i - 1 != list.size()) { c.setCellEvent(border); } t.addCell(c); } PdfPTable oTable = new PdfPTable(1); oTable.setWidthPercentage(100); PdfPCell ce = new PdfPCell(t); ce.setBorderColor(Color.GRAY); oTable.addCell(ce); document.add(oTable); document.close(); logger.info("Finish build document..."); }
From source file:com.allinfinance.system.util.PdfUtil.java
License:Open Source License
public static void create(String path, List<Object[]> list, LinkedHashMap<String, List<Object[]>> map) throws Exception { BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); ////from w w w . j a va 2s. c o m Font font17 = new Font(bfChinese, 17, Font.BOLD); Font font8 = new Font(bfChinese, 8, Font.NORMAL); Font font10 = new Font(bfChinese, 10, Font.NORMAL); Font font10Bold = new Font(bfChinese, 10, Font.BOLD); Font font8Red = new Font(bfChinese, 8, Font.NORMAL); font8Red.setColor(Color.RED); Font font8Green = new Font(bfChinese, 8, Font.NORMAL); font8Green.setColor(Color.GREEN); logger.info("Starting build document..."); Document document = new Document(PageSize.A4, 36, 36, 36, 36); PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(path)); document.open(); LINECANVAS border = new LINECANVAS(); // float[] widths = { 0.1f, 0.35f, 0.55f }; PdfPTable table = new PdfPTable(widths); table.setWidthPercentage(100); table.getDefaultCell().setBorder(PdfPCell.NO_BORDER); table.getDefaultCell().setFixedHeight(12); //CELL PdfPCell cellMchntId = new PdfPCell(new Paragraph("XXXXXXXXXXXXXXX", font8)); cellMchntId.setBorder(PdfPCell.BOTTOM); cellMchntId.setHorizontalAlignment(Element.ALIGN_CENTER); PdfPCell cellMchntName = new PdfPCell(new Paragraph("?", font8)); cellMchntName.setBorder(PdfPCell.BOTTOM); cellMchntName.setHorizontalAlignment(Element.ALIGN_CENTER); // Image img = Image.getInstance( ServletActionContext.getServletContext().getResource("/ext/resources/images/Title_logo.gif")); img.scalePercent(70); float w = img.getScaledWidth(); float h = img.getScaledHeight(); writer.getDirectContent().addImage(img, w, 0, 0, h, 36, PageSize.A4.getHeight() - 36 - h); // PdfPCell cell = new PdfPCell(new Paragraph("?", font17)); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); cell.setColspan(3); cell.setFixedHeight(h); cell.setBorder(PdfPCell.NO_BORDER); table.addCell(cell); cell = new PdfPCell(); cell.setFixedHeight(20); cell.setColspan(3); cell.setBorder(PdfPCell.NO_BORDER); table.addCell(cell); table.addCell(new Paragraph("?", font8)); table.addCell(cellMchntId); table.addCell(" "); table.addCell(new Paragraph("??", font8)); table.addCell(cellMchntName); table.addCell(" "); document.add(table); document.add(new Paragraph("\n\n")); //? PdfPTable t = new PdfPTable(1); Iterator<Object[]> it0 = list.iterator(); int i = 1; while (it0.hasNext()) { Object[] obj = it0.next(); PdfPCell c = new PdfPCell(); c.addElement(new Paragraph("Q" + String.valueOf(i++) + "" + obj[1].toString(), font10Bold)); List<Object[]> opts = map.get(obj[0].toString()); String opt = ""; Iterator<Object[]> it1 = opts.iterator(); while (it1.hasNext()) { Object[] o = it1.next(); opt += " "; opt += o[1].toString(); opt += " "; } c.addElement(new Paragraph(opt.trim(), font10)); c.setBorder(PdfPCell.NO_BORDER); if (i - 1 != list.size()) { c.setCellEvent(border); } t.addCell(c); } PdfPTable oTable = new PdfPTable(1); oTable.setWidthPercentage(100); PdfPCell ce = new PdfPCell(t); ce.setBorderColor(Color.GRAY); oTable.addCell(ce); document.add(oTable); document.close(); logger.info("Finish build document..."); }
From source file:com.aryjr.nheengatu.util.GraphicsState.java
License:Open Source License
public GraphicsState() { font = FontFactory.getFont(Style.DEFAULT_FONT_FAMILY, Style.DEFAULT_FONT_SIZE, Font.NORMAL, Style.DEFAULT_FONT_COLOR); align = Element.ALIGN_LEFT;/* www .j ava2s. co m*/ valign = Element.ALIGN_MIDDLE; bgcolor = new Color(0, 0, 0); spacingBefore = 8f; spacingAfter = 8f; textIndent = 0f * GraphicsState.CM_UNIT; marginLeft = 0f * GraphicsState.CM_UNIT; listStyleType = null; }
From source file:com.efficio.fieldbook.service.LabelPrintingServiceImpl.java
License:Open Source License
/** * Gets the cell height.//from www .ja v a 2 s. c om * * @param numberOfRowsPerPage the number of rows per page * @param pageSizeId the page size id * @return the cell height */ /* private float getCellHeight(int numberOfRowsPerPage, int pageSizeId){ if(pageSizeId == AppConstants.SIZE_OF_PAPER_A4){ if(numberOfRowsPerPage == 7){ return 108f; //ok }else if(numberOfRowsPerPage == 8){ return 97f;//ok }else if(numberOfRowsPerPage == 10){ return 72.5f; } }else{ if(numberOfRowsPerPage == 7){ return 108f; //ok }else if(numberOfRowsPerPage == 8){ return 98.1f;//ok }else if(numberOfRowsPerPage == 10){ return 72.5f;//ok } } return 0f; } */ /* (non-Javadoc) * @see com.efficio.fieldbook.service.api.LabelPrintingService#generateLabels(com.efficio.fieldbook.web.fieldmap.bean.UserFieldmap) */ @Override public String generatePDFLabels(List<StudyTrialInstanceInfo> trialInstances, UserLabelPrinting userLabelPrinting, ByteArrayOutputStream baos) throws MiddlewareQueryException { // setUserLabelPrinting(form.getUserLabelPrinting()); int pageSizeId = Integer.parseInt(userLabelPrinting.getSizeOfLabelSheet()); int numberOfLabelPerRow = Integer.parseInt(userLabelPrinting.getNumberOfLabelPerRow()); int numberofRowsPerPageOfLabel = Integer.parseInt(userLabelPrinting.getNumberOfRowsPerPageOfLabel()); int totalPerPage = numberOfLabelPerRow * numberofRowsPerPageOfLabel; String leftSelectedFields = userLabelPrinting.getLeftSelectedLabelFields(); String rightSelectedFields = userLabelPrinting.getRightSelectedLabelFields(); String barcodeNeeded = userLabelPrinting.getBarcodeNeeded(); String firstBarcodeField = userLabelPrinting.getFirstBarcodeField(); String secondBarcodeField = userLabelPrinting.getSecondBarcodeField(); String thirdBarcodeField = userLabelPrinting.getThirdBarcodeField(); String currentDate = DateUtil.getCurrentDate(); // String fileName = currentDate + ".pdf"; String fileName = userLabelPrinting.getFilenameDLLocation(); try { FileOutputStream fileOutputStream = new FileOutputStream(fileName); try { // Image image1 = Image.getInstance(imageLocation); // PageSize.A4 LabelPaper paper = LabelPaperFactory.generateLabelPaper(numberOfLabelPerRow, numberofRowsPerPageOfLabel, pageSizeId); Rectangle pageSize = PageSize.LETTER; if (pageSizeId == AppConstants.SIZE_OF_PAPER_A4.getInt()) pageSize = PageSize.A4; Document document = new Document(pageSize); /* * 2, 2, 33.3f, 5 * 15, 0, 42, 5 * 10, 0, 17, 5 * 10, 0, 17, 5 * 5, 0, 0, 5 * 15, 0, 37, 5 * 10, 0, 17, 5 if (pageSizeId == AppConstants.SIZE_OF_PAPER_LETTER) { if (numberofRowsPerPageOfLabel == 7) document.setMargins(10, 0, 17, 5); else if (numberofRowsPerPageOfLabel == 8) document.setMargins(5, 0, 0, 5); else if (numberofRowsPerPageOfLabel == 10) document.setMargins(2, 2, 33.3f, 5); } else if (pageSizeId == AppConstants.SIZE_OF_PAPER_A4) { if (numberofRowsPerPageOfLabel == 7) document.setMargins(15, 0, 42, 5); else if (numberofRowsPerPageOfLabel == 8) document.setMargins(15, 0, 37, 5); else if (numberofRowsPerPageOfLabel == 10) document.setMargins(6, 2, 17.5f, 5); } */ //float marginLeft, float marginRight, float marginTop, float marginBottom document.setMargins(paper.getMarginLeft(), paper.getMarginRight(), paper.getMarginTop(), paper.getMarginBottom()); // PdfWriter writer = PdfWriter.getInstance(document, baos); PdfWriter writer = PdfWriter.getInstance(document, fileOutputStream); // step 3 document.open(); // step 4 PdfContentByte canvas = writer.getDirectContent(); int i = 0; int fixTableRowSize = numberOfLabelPerRow; PdfPTable table = new PdfPTable(fixTableRowSize); // table.writeSelectedRows(0, -1, 10, 12, canvas); float columnWidthSize = 265f;// 180f; float[] widthColumns = new float[fixTableRowSize]; for (int counter = 0; counter < widthColumns.length; counter++) { widthColumns[counter] = columnWidthSize; } table.setWidths(widthColumns); table.setWidthPercentage(100); int width = 600; int height = 75; List<File> filesToBeDeleted = new ArrayList<File>(); //float cellHeight = getCellHeight(numberofRowsPerPageOfLabel, pageSizeId); float cellHeight = paper.getCellHeight(); for (StudyTrialInstanceInfo trialInstance : trialInstances) { FieldMapTrialInstanceInfo fieldMapTrialInstanceInfo = trialInstance.getTrialInstance(); Map<String, String> moreFieldInfo = new HashMap<String, String>(); moreFieldInfo.put("locationName", fieldMapTrialInstanceInfo.getLocationName()); moreFieldInfo.put("blockName", fieldMapTrialInstanceInfo.getBlockName()); moreFieldInfo.put("selectedName", trialInstance.getFieldbookName()); moreFieldInfo.put("trialInstanceNumber", fieldMapTrialInstanceInfo.getTrialInstanceNo()); for (FieldMapLabel fieldMapLabel : fieldMapTrialInstanceInfo.getFieldMapLabels()) { i++; String barcodeLabel = generateBarcodeField(moreFieldInfo, fieldMapLabel, firstBarcodeField, secondBarcodeField, thirdBarcodeField, barcodeNeeded); if ("0".equalsIgnoreCase(barcodeNeeded)) { barcodeLabel = " "; } BitMatrix bitMatrix = new Code128Writer().encode(barcodeLabel, BarcodeFormat.CODE_128, width, height, null); String imageLocation = System.getProperty("user.home") + "/" + Math.random() + ".png"; File imageFile = new File(imageLocation); FileOutputStream fout = new FileOutputStream(imageFile); MatrixToImageWriter.writeToStream(bitMatrix, "png", fout); filesToBeDeleted.add(imageFile); Image mainImage = Image.getInstance(imageLocation); PdfPCell cell = new PdfPCell(); cell.setFixedHeight(cellHeight); cell.setNoWrap(false); cell.setPadding(5f); cell.setPaddingBottom(1f); PdfPTable innerImageTableInfo = new PdfPTable(1); innerImageTableInfo.setWidths(new float[] { 1 }); innerImageTableInfo.setWidthPercentage(82); PdfPCell cellImage = new PdfPCell(); if ("1".equalsIgnoreCase(barcodeNeeded)) { cellImage.addElement(mainImage); } else { cellImage.addElement(new Paragraph(" ")); } cellImage.setBorder(Rectangle.NO_BORDER); cellImage.setBackgroundColor(Color.white); cellImage.setPadding(1.5f); innerImageTableInfo.addCell(cellImage); //float fontSize = 6.8f; float fontSize = paper.getFontSize(); //if (numberofRowsPerPageOfLabel == 10) // fontSize = 4.8f; Font fontNormal = FontFactory.getFont("Arial", fontSize, Font.NORMAL); // cell.addElement(mainImage); cell.addElement(innerImageTableInfo); cell.addElement(new Paragraph()); for (int row = 0; row < 5; row++) { if (row == 0) { PdfPTable innerDataTableInfo = new PdfPTable(1); innerDataTableInfo.setWidths(new float[] { 1 }); innerDataTableInfo.setWidthPercentage(85); Font fontNormalData = FontFactory.getFont("Arial", 5.0f, Font.NORMAL); PdfPCell cellInnerData = new PdfPCell(new Phrase(barcodeLabel, fontNormalData)); cellInnerData.setBorder(Rectangle.NO_BORDER); cellInnerData.setBackgroundColor(Color.white); cellInnerData.setPaddingBottom(0.2f); cellInnerData.setPaddingTop(0.2f); cellInnerData.setHorizontalAlignment(Element.ALIGN_MIDDLE); innerDataTableInfo.addCell(cellInnerData); innerDataTableInfo.setHorizontalAlignment(Element.ALIGN_MIDDLE); cell.addElement(innerDataTableInfo); } PdfPTable innerTableInfo = new PdfPTable(2); innerTableInfo.setWidths(new float[] { 1, 1 }); innerTableInfo.setWidthPercentage(85); String leftText = generateBarcodeLabel(moreFieldInfo, fieldMapLabel, leftSelectedFields, row); PdfPCell cellInnerLeft = new PdfPCell(new Paragraph(leftText, fontNormal)); cellInnerLeft.setBorder(Rectangle.NO_BORDER); cellInnerLeft.setBackgroundColor(Color.white); cellInnerLeft.setPaddingBottom(0.5f); cellInnerLeft.setPaddingTop(0.5f); innerTableInfo.addCell(cellInnerLeft); String rightText = generateBarcodeLabel(moreFieldInfo, fieldMapLabel, rightSelectedFields, row); PdfPCell cellInnerRight = new PdfPCell(new Paragraph(rightText, fontNormal)); cellInnerRight.setBorder(Rectangle.NO_BORDER); cellInnerRight.setBackgroundColor(Color.white); cellInnerRight.setPaddingBottom(0.5f); cellInnerRight.setPaddingTop(0.5f); innerTableInfo.addCell(cellInnerRight); cell.addElement(innerTableInfo); } cell.setBorder(Rectangle.NO_BORDER); cell.setBackgroundColor(Color.white); //cell.setBorderColor(Color.BLUE); table.addCell(cell); if (i % numberOfLabelPerRow == 0) { // we go the next line int needed = fixTableRowSize - numberOfLabelPerRow; for (int neededCount = 0; neededCount < needed; neededCount++) { PdfPCell cellNeeded = new PdfPCell(); cellNeeded.setBorder(Rectangle.NO_BORDER); cellNeeded.setBackgroundColor(Color.white); table.addCell(cellNeeded); } table.completeRow(); if (numberofRowsPerPageOfLabel == 10) { //table.setSpacingAfter(9f); table.setSpacingAfter(paper.getSpacingAfter()); } document.add(table); table = new PdfPTable(fixTableRowSize); table.setWidths(widthColumns); table.setWidthPercentage(100); } if (i % totalPerPage == 0) { // we go the next page document.newPage(); } fout.flush(); fout.close(); } } // we need to add the last row if (i % numberOfLabelPerRow != 0) { // we go the next line int needed = fixTableRowSize - numberOfLabelPerRow; int remaining = numberOfLabelPerRow - (i % numberOfLabelPerRow); for (int neededCount = 0; neededCount < remaining; neededCount++) { PdfPCell cellNeeded = new PdfPCell(); cellNeeded.setBorder(Rectangle.NO_BORDER); cellNeeded.setBackgroundColor(Color.white); table.addCell(cellNeeded); } table.completeRow(); if (numberofRowsPerPageOfLabel == 10) { table.setSpacingAfter(paper.getSpacingAfter()); } document.add(table); table = new PdfPTable(fixTableRowSize); table.setWidths(widthColumns); table.setWidthPercentage(100); } document.close(); for (File file : filesToBeDeleted) { file.delete(); } fileOutputStream.close(); } catch (FileNotFoundException e) { LOG.error(e.getMessage(), e); } catch (IOException e) { LOG.error(e.getMessage(), e); } } catch (WriterException e) { LOG.error(e.getMessage(), e); } catch (Exception e) { LOG.error(e.getMessage(), e); } return fileName; }
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;/*from w ww . 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.gtdfree.test.TableBorders.java
License:Open Source License
private static void makeTestPage(Font tableFont, Rectangle borders, @SuppressWarnings("unused") PdfWriter writer, Document document, float padding, boolean ascender, boolean descender) throws BadElementException, DocumentException { document.newPage();/*from ww w.j ava 2s. c o m*/ PdfPTable table = null; table = new PdfPTable(4); table.setWidthPercentage(100f); float leading = tableFont.getSize() * 1.2f; table.addCell(makeCell("1-Top", Element.ALIGN_TOP, Element.ALIGN_LEFT, tableFont, leading, padding, borders, ascender, descender)); table.addCell(makeCell("2-Middle", Element.ALIGN_MIDDLE, Element.ALIGN_LEFT, tableFont, leading, padding, borders, ascender, descender)); table.addCell(makeCell("3-Bottom", Element.ALIGN_BOTTOM, Element.ALIGN_LEFT, tableFont, leading, padding, borders, ascender, descender)); table.addCell(makeCell("4-Has a y", Element.ALIGN_TOP, Element.ALIGN_LEFT, tableFont, leading, padding, borders, ascender, descender)); table.addCell(makeCell("5-Abcdy", Element.ALIGN_TOP, Element.ALIGN_LEFT, tableFont, leading, padding, borders, ascender, descender)); table.addCell(makeCell("6-Abcdy", Element.ALIGN_MIDDLE, Element.ALIGN_LEFT, tableFont, leading, padding, borders, ascender, descender)); table.addCell(makeCell("7-Abcdy", Element.ALIGN_BOTTOM, Element.ALIGN_LEFT, tableFont, leading, padding, borders, ascender, descender)); table.addCell(makeCell("8-This\nis\na little\ntaller", Element.ALIGN_TOP, Element.ALIGN_LEFT, tableFont, leading, padding, borders, ascender, descender)); document.add(table); }
From source file:com.huateng.system.util.PdfUtil.java
License:Open Source License
public static void create(String mchtId, String selMchtId, String path, List<Object[]> list, LinkedHashMap<String, List<Object[]>> map, Set<String> set) throws Exception { BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); ///* w w w.ja v a2s . c om*/ Font font17 = new Font(bfChinese, 17, Font.BOLD); Font font8 = new Font(bfChinese, 8, Font.NORMAL); Font font9 = new Font(bfChinese, 9, Font.NORMAL); Font font9Bold = new Font(bfChinese, 9, Font.BOLD); Font font8Red = new Font(bfChinese, 8, Font.NORMAL); font8Red.setColor(Color.RED); Font font8Green = new Font(bfChinese, 8, Font.NORMAL); font8Green.setColor(Color.GREEN); logger.info("Starting build document..."); Document document = new Document(PageSize.A4, 36, 36, 36, 36); PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(path)); document.open(); LINECANVAS border = new LINECANVAS(); // float[] widths = { 0.1f, 0.35f, 0.35f, 0.1f, 0.1f }; PdfPTable table = new PdfPTable(widths); table.setWidthPercentage(100); table.getDefaultCell().setBorder(PdfPCell.NO_BORDER); table.getDefaultCell().setFixedHeight(12); //CELL PdfPCell cellMchntId = new PdfPCell(new Paragraph(mchtId, font8)); cellMchntId.setBorder(PdfPCell.BOTTOM); cellMchntId.setHorizontalAlignment(Element.ALIGN_CENTER); PdfPCell cellMchntName = new PdfPCell(new Paragraph(InformationUtil.getMchtName(mchtId), font8)); cellMchntName.setBorder(PdfPCell.BOTTOM); cellMchntName.setHorizontalAlignment(Element.ALIGN_CENTER); String point = InformationUtil.getCurPaperPoint(selMchtId); PdfPCell cellPoint; cellPoint = new PdfPCell(new Paragraph(point, font8Red)); cellPoint.setBorder(PdfPCell.NO_BORDER); cellPoint.setHorizontalAlignment(Element.ALIGN_CENTER); PdfPCell cellLevel; String level = InformationUtil.getCurPaperLevel(selMchtId); if (Integer.valueOf(point) >= 60) { cellLevel = new PdfPCell(new Paragraph(level, font8Green)); } else { cellLevel = new PdfPCell(new Paragraph(level, font8Red)); } cellLevel.setBorder(PdfPCell.NO_BORDER); cellLevel.setHorizontalAlignment(Element.ALIGN_CENTER); // Image img = Image.getInstance( ServletActionContext.getServletContext().getResource("/ext/resources/images/Title_logo.gif")); img.scalePercent(70); float w = img.getScaledWidth(); float h = img.getScaledHeight(); writer.getDirectContent().addImage(img, w, 0, 0, h, 36, PageSize.A4.getHeight() - 36 - h); // PdfPCell cell = new PdfPCell(new Paragraph("?", font17)); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); cell.setColspan(5); cell.setFixedHeight(h); cell.setBorder(PdfPCell.NO_BORDER); table.addCell(cell); cell = new PdfPCell(); cell.setFixedHeight(20); cell.setColspan(5); cell.setBorder(PdfPCell.NO_BORDER); table.addCell(cell); table.addCell(new Paragraph("?", font8)); table.addCell(cellMchntId); table.addCell(" "); table.addCell(new Paragraph(": ", font8)); table.addCell(cellPoint); table.addCell(new Paragraph("??", font8)); table.addCell(cellMchntName); table.addCell(" "); table.addCell(new Paragraph(": ", font8)); table.addCell(cellLevel); document.add(table); document.add(new Paragraph("\n\n")); //? PdfPTable t = new PdfPTable(1); Iterator<Object[]> it0 = list.iterator(); int i = 1; while (it0.hasNext()) { Object[] obj = it0.next(); PdfPCell c = new PdfPCell(); c.addElement(new Paragraph("Q" + String.valueOf(i++) + "" + obj[1].toString(), font9Bold)); List<Object[]> opts = map.get(obj[0].toString()); String opt = ""; Iterator<Object[]> it1 = opts.iterator(); while (it1.hasNext()) { Object[] o = it1.next(); if (set.contains(o[0])) { opt += "? "; opt += o[1].toString(); opt += " "; } else { opt += " "; opt += o[1].toString(); opt += " "; } } c.addElement(new Paragraph(opt.trim(), font9)); c.setBorder(PdfPCell.NO_BORDER); if (i - 1 != list.size()) { c.setCellEvent(border); } t.addCell(c); } PdfPTable oTable = new PdfPTable(1); oTable.setWidthPercentage(100); PdfPCell ce = new PdfPCell(t); ce.setBorderColor(Color.GRAY); oTable.addCell(ce); document.add(oTable); document.close(); logger.info("Finish build document..."); }
From source file:com.huateng.system.util.PdfUtil.java
License:Open Source License
public static void create(String path, List<Object[]> list, LinkedHashMap<String, List<Object[]>> map) throws Exception { BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); ///*from w ww. jav a2 s . c o m*/ Font font17 = new Font(bfChinese, 17, Font.BOLD); Font font8 = new Font(bfChinese, 8, Font.NORMAL); Font font10 = new Font(bfChinese, 10, Font.NORMAL); Font font10Bold = new Font(bfChinese, 10, Font.BOLD); Font font8Red = new Font(bfChinese, 8, Font.NORMAL); font8Red.setColor(Color.RED); Font font8Green = new Font(bfChinese, 8, Font.NORMAL); font8Green.setColor(Color.GREEN); logger.info("Starting build document..."); Document document = new Document(PageSize.A4, 36, 36, 36, 36); PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(path)); document.open(); LINECANVAS border = new LINECANVAS(); // float[] widths = { 0.1f, 0.35f, 0.55f }; PdfPTable table = new PdfPTable(widths); table.setWidthPercentage(100); table.getDefaultCell().setBorder(PdfPCell.NO_BORDER); table.getDefaultCell().setFixedHeight(12); //CELL PdfPCell cellMchntId = new PdfPCell(new Paragraph("XXXXXXXXXXXXXXX", font8)); cellMchntId.setBorder(PdfPCell.BOTTOM); cellMchntId.setHorizontalAlignment(Element.ALIGN_CENTER); PdfPCell cellMchntName = new PdfPCell(new Paragraph("?", font8)); cellMchntName.setBorder(PdfPCell.BOTTOM); cellMchntName.setHorizontalAlignment(Element.ALIGN_CENTER); // Image img = Image.getInstance( ServletActionContext.getServletContext().getResource("/ext/resources/images/Title_logo.gif")); img.scalePercent(70); float w = img.getScaledWidth(); float h = img.getScaledHeight(); writer.getDirectContent().addImage(img, w, 0, 0, h, 36, PageSize.A4.getHeight() - 36 - h); // PdfPCell cell = new PdfPCell(new Paragraph("?", font17)); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); cell.setColspan(3); cell.setFixedHeight(h); cell.setBorder(PdfPCell.NO_BORDER); table.addCell(cell); cell = new PdfPCell(); cell.setFixedHeight(20); cell.setColspan(3); cell.setBorder(PdfPCell.NO_BORDER); table.addCell(cell); table.addCell(new Paragraph("?", font8)); table.addCell(cellMchntId); table.addCell(" "); table.addCell(new Paragraph("??", font8)); table.addCell(cellMchntName); table.addCell(" "); document.add(table); document.add(new Paragraph("\n\n")); //? PdfPTable t = new PdfPTable(1); Iterator<Object[]> it0 = list.iterator(); int i = 1; while (it0.hasNext()) { Object[] obj = it0.next(); PdfPCell c = new PdfPCell(); c.addElement(new Paragraph("Q" + String.valueOf(i++) + "" + obj[1].toString(), font10Bold)); List<Object[]> opts = map.get(obj[0].toString()); String opt = ""; Iterator<Object[]> it1 = opts.iterator(); while (it1.hasNext()) { Object[] o = it1.next(); opt += " "; opt += o[1].toString(); opt += " "; } c.addElement(new Paragraph(opt.trim(), font10)); c.setBorder(PdfPCell.NO_BORDER); if (i - 1 != list.size()) { c.setCellEvent(border); } t.addCell(c); } PdfPTable oTable = new PdfPTable(1); oTable.setWidthPercentage(100); PdfPCell ce = new PdfPCell(t); ce.setBorderColor(Color.GRAY); oTable.addCell(ce); document.add(oTable); document.close(); logger.info("Finish build document..."); }
From source file:com.itn.excelDao.PdfView.java
@Override protected void buildPdfDocument(Map<String, Object> model, Document document, PdfWriter writer, HttpServletRequest request, HttpServletResponse response) throws Exception { //Users user = (Users) model.get("user"); List<Users> userlist = (List<Users>) model.get("allUsers"); PdfPTable table = new PdfPTable(4); table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER); table.getDefaultCell().setVerticalAlignment(Element.ALIGN_MIDDLE); table.getDefaultCell().setBackgroundColor(Color.lightGray); table.addCell("ID"); table.addCell("First Name"); table.addCell("Last Name"); table.addCell("Email"); for (Users users : userlist) { table.addCell(users.getId().toString()); table.addCell(users.getFirstName()); table.addCell(users.getLastName()); table.addCell(users.getEmail()); }//w ww .j a va2s. c om document.add(table); }
From source file:com.jk.framework.desktop.swing.dao.TableModelPdfBuilder.java
License:Apache License
/** * Creates the pdf footer./*www. j a va2 s .c om*/ * * @param pdfPTable * the pdf P table * @param font * the font * @throws DocumentException * the document exception * @throws IOException * Signals that an I/O exception has occurred. */ public void createPdfFooter(final PdfPTable pdfPTable, Font font) throws DocumentException, IOException { final float width = pdfPTable.getWidthPercentage(); final int headerWidth = (int) width; font = getFont(); final PdfPCell footerCell = new PdfPCell(new Phrase(getFooter(), font)); footerCell.setHorizontalAlignment(Element.ALIGN_CENTER); footerCell.setVerticalAlignment(Element.ALIGN_MIDDLE); footerCell.setColspan(headerWidth); footerCell.setBorder(0); footerCell.setUseDescender(true); pdfPTable.addCell(footerCell); pdfPTable.setFooterRows(1); }