List of usage examples for com.lowagie.text Chunk NEWLINE
Chunk NEWLINE
To view the source code for com.lowagie.text Chunk NEWLINE.
Click Source Link
From source file:org.jivesoftware.openfire.reporting.graph.GraphServlet.java
License:Open Source License
private void writePDFContent(HttpServletRequest request, HttpServletResponse response, JFreeChart charts[], Statistic[] stats, long starttime, long endtime, int width, int height) throws IOException { try {// ww w . j av a 2 s . c o m Document document = new Document(PageSize.A4, 50, 50, 50, 50); ByteArrayOutputStream baos = new ByteArrayOutputStream(); PdfWriter writer = PdfWriter.getInstance(document, baos); writer.setPageEvent(new PDFEventListener(request)); document.open(); int index = 0; int chapIndex = 0; for (Statistic stat : stats) { String serverName = XMPPServer.getInstance().getServerInfo().getXMPPDomain(); String dateName = JiveGlobals.formatDate(new Date(starttime)) + " - " + JiveGlobals.formatDate(new Date(endtime)); Paragraph paragraph = new Paragraph(serverName, FontFactory.getFont(FontFactory.HELVETICA, 18, Font.BOLD)); document.add(paragraph); paragraph = new Paragraph(dateName, FontFactory.getFont(FontFactory.HELVETICA, 14, Font.PLAIN)); document.add(paragraph); document.add(Chunk.NEWLINE); document.add(Chunk.NEWLINE); Paragraph chapterTitle = new Paragraph(++chapIndex + ". " + stat.getName(), FontFactory.getFont(FontFactory.HELVETICA, 16, Font.BOLD)); document.add(chapterTitle); // total hack: no idea what tags people are going to use in the description // possibly recommend that we only use a <p> tag? String[] paragraphs = stat.getDescription().split("<p>"); for (String s : paragraphs) { Paragraph p = new Paragraph(s); document.add(p); } document.add(Chunk.NEWLINE); PdfContentByte contentByte = writer.getDirectContent(); PdfTemplate template = contentByte.createTemplate(width, height); Graphics2D graphs2D = template.createGraphics(width, height, new DefaultFontMapper()); Rectangle2D rectangle2D = new Rectangle2D.Double(0, 0, width, height); charts[index++].draw(graphs2D, rectangle2D); graphs2D.dispose(); float x = (document.getPageSize().width() / 2) - (width / 2); contentByte.addTemplate(template, x, writer.getVerticalPosition(true) - height); document.newPage(); } document.close(); // setting some response headers response.setHeader("Expires", "0"); response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0"); response.setHeader("Pragma", "public"); // setting the content type response.setContentType("application/pdf"); // the contentlength is needed for MSIE!!! response.setContentLength(baos.size()); // write ByteArrayOutputStream to the ServletOutputStream ServletOutputStream out = response.getOutputStream(); baos.writeTo(out); out.flush(); } catch (DocumentException e) { Log.error("error creating PDF document: " + e.getMessage()); } }
From source file:org.jsondoc.springmvc.pdf.PdfExportView.java
License:Open Source License
public File getPdfFile(String filename) { try {/* www. ja v a2s . c om*/ File file = new File(filename + "-v" + jsonDoc.getVersion() + FILE_EXTENSION); FileOutputStream fileout = new FileOutputStream(file); Document document = new Document(); PdfWriter.getInstance(document, fileout); // Header HeaderFooter header = new HeaderFooter(new Phrase("Copyright " + Calendar.getInstance().get(Calendar.YEAR) + " Paybay Networks - All rights reserved"), false); header.setBorder(Rectangle.NO_BORDER); header.setAlignment(Element.ALIGN_LEFT); document.setHeader(header); // Footer HeaderFooter footer = new HeaderFooter(new Phrase("Page "), true); footer.setBorder(Rectangle.NO_BORDER); footer.setAlignment(Element.ALIGN_CENTER); document.setFooter(footer); document.open(); //init documentation apiDocs = buildApiDocList(); apiMethodDocs = buildApiMethodDocList(apiDocs); Phrase baseUrl = new Phrase("Base url: " + jsonDoc.getBasePath()); document.add(baseUrl); document.add(Chunk.NEWLINE); document.add(Chunk.NEWLINE); int pos = 1; for (ApiMethodDoc apiMethodDoc : apiMethodDocs) { Phrase phrase = new Phrase(/*"Description: " + */apiMethodDoc.getDescription()); document.add(phrase); document.add(Chunk.NEWLINE); PdfPTable table = new PdfPTable(2); table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_LEFT); table.getDefaultCell().setBorder(Rectangle.NO_BORDER); table.setWidthPercentage(100); table.setWidths(new int[] { 50, 200 }); // HEADER CELL START TABLE table.addCell(ITextUtils.getHeaderCell("URL")); table.addCell(ITextUtils.getHeaderCell("<baseUrl> " + apiMethodDoc.getPath())); table.completeRow(); // FIRST CELL table.addCell(ITextUtils.getCell("Http Method", 0)); table.addCell(ITextUtils.getCell(apiMethodDoc.getVerb().name(), pos)); pos++; table.completeRow(); // PRODUCES if (!apiMethodDoc.getProduces().isEmpty()) { table.addCell(ITextUtils.getCell("Produces", 0)); table.addCell(ITextUtils.getCell(buildApiMethodProduces(apiMethodDoc), pos)); pos++; table.completeRow(); } // CONSUMES if (!apiMethodDoc.getConsumes().isEmpty()) { table.addCell(ITextUtils.getCell("Consumes", 0)); table.addCell(ITextUtils.getCell(buildApiMethodConsumes(apiMethodDoc), pos)); pos++; table.completeRow(); } // HEADERS if (!apiMethodDoc.getHeaders().isEmpty()) { table.addCell(ITextUtils.getCell("Request headers", 0)); PdfPTable pathParamsTable = new PdfPTable(3); pathParamsTable.setWidths(new int[] { 30, 20, 40 }); pathParamsTable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_LEFT); pathParamsTable.getDefaultCell().setBorder(Rectangle.NO_BORDER); for (ApiHeaderDoc apiHeaderDoc : apiMethodDoc.getHeaders()) { PdfPCell boldCell = new PdfPCell(); Font fontbold = FontFactory.getFont("Times-Roman", 12, Font.BOLD); boldCell.setPhrase(new Phrase(apiHeaderDoc.getName(), fontbold)); boldCell.getPhrase().setFont(new Font(Font.BOLD)); boldCell.setBorder(Rectangle.NO_BORDER); pathParamsTable.addCell(boldCell); PdfPCell paramCell = new PdfPCell(); StringBuilder builder = new StringBuilder(); for (String value : apiHeaderDoc.getAllowedvalues()) builder.append(value).append(", "); paramCell.setPhrase(new Phrase("Allowed values: " + builder.toString())); paramCell.setBorder(Rectangle.NO_BORDER); pathParamsTable.addCell(paramCell); paramCell.setPhrase(new Phrase(apiHeaderDoc.getDescription())); pathParamsTable.addCell(paramCell); pathParamsTable.completeRow(); } PdfPCell bluBorderCell = new PdfPCell(pathParamsTable); bluBorderCell.setBorder(Rectangle.NO_BORDER); bluBorderCell.setBorderWidthRight(1f); bluBorderCell.setBorderColorRight(Colors.CELL_BORDER_COLOR); table.addCell(ITextUtils.setOddEvenStyle(bluBorderCell, pos)); pos++; table.completeRow(); } // PATH PARAMS if (!apiMethodDoc.getPathparameters().isEmpty()) { table.addCell(ITextUtils.getCell("Path params", 0)); PdfPTable pathParamsTable = new PdfPTable(3); pathParamsTable.setWidths(new int[] { 30, 15, 40 }); pathParamsTable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_LEFT); pathParamsTable.getDefaultCell().setBorder(Rectangle.NO_BORDER); for (ApiParamDoc apiParamDoc : apiMethodDoc.getPathparameters()) { PdfPCell boldCell = new PdfPCell(); Font fontbold = FontFactory.getFont("Times-Roman", 12, Font.BOLD); boldCell.setPhrase(new Phrase(apiParamDoc.getName(), fontbold)); boldCell.getPhrase().setFont(new Font(Font.BOLD)); boldCell.setBorder(Rectangle.NO_BORDER); pathParamsTable.addCell(boldCell); PdfPCell paramCell = new PdfPCell(); paramCell.setPhrase(new Phrase(apiParamDoc.getJsondocType().getOneLineText())); paramCell.setBorder(Rectangle.NO_BORDER); pathParamsTable.addCell(paramCell); paramCell.setPhrase(new Phrase(apiParamDoc.getDescription())); pathParamsTable.addCell(paramCell); pathParamsTable.completeRow(); } PdfPCell bluBorderCell = new PdfPCell(pathParamsTable); bluBorderCell.setBorder(Rectangle.NO_BORDER); bluBorderCell.setBorderWidthRight(1f); bluBorderCell.setBorderColorRight(Colors.CELL_BORDER_COLOR); table.addCell(ITextUtils.setOddEvenStyle(bluBorderCell, pos)); pos++; table.completeRow(); } // QUERY PARAMS if (!apiMethodDoc.getQueryparameters().isEmpty()) { table.addCell(ITextUtils.getCell("Query params", 0)); PdfPTable queryParamsTable = new PdfPTable(3); queryParamsTable.setWidths(new int[] { 30, 15, 40 }); queryParamsTable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_LEFT); queryParamsTable.getDefaultCell().setBorder(Rectangle.NO_BORDER); for (ApiParamDoc apiParamDoc : apiMethodDoc.getQueryparameters()) { PdfPCell boldCell = new PdfPCell(); Font fontbold = FontFactory.getFont("Times-Roman", 12, Font.BOLD); boldCell.setPhrase(new Phrase(apiParamDoc.getName(), fontbold)); boldCell.getPhrase().setFont(new Font(Font.BOLD)); boldCell.setBorder(Rectangle.NO_BORDER); queryParamsTable.addCell(boldCell); PdfPCell paramCell = new PdfPCell(); paramCell.setPhrase(new Phrase(apiParamDoc.getJsondocType().getOneLineText())); paramCell.setBorder(Rectangle.NO_BORDER); queryParamsTable.addCell(paramCell); paramCell.setPhrase(new Phrase( apiParamDoc.getDescription() + ", mandatory: " + apiParamDoc.getRequired())); queryParamsTable.addCell(paramCell); queryParamsTable.completeRow(); } PdfPCell bluBorderCell = new PdfPCell(queryParamsTable); bluBorderCell.setBorder(Rectangle.NO_BORDER); bluBorderCell.setBorderWidthRight(1f); bluBorderCell.setBorderColorRight(Colors.CELL_BORDER_COLOR); table.addCell(ITextUtils.setOddEvenStyle(bluBorderCell, pos)); pos++; table.completeRow(); } // BODY OBJECT if (null != apiMethodDoc.getBodyobject()) { table.addCell(ITextUtils.getCell("Body object:", 0)); String jsonObject = buildJsonFromTemplate(apiMethodDoc.getBodyobject().getJsondocTemplate()); table.addCell(ITextUtils.getCell(jsonObject, pos)); pos++; table.completeRow(); } // RESPONSE OBJECT table.addCell(ITextUtils.getCell("Json response:", 0)); table.addCell( ITextUtils.getCell(apiMethodDoc.getResponse().getJsondocType().getOneLineText(), pos)); pos++; table.completeRow(); // RESPONSE STATUS CODE table.addCell(ITextUtils.getCell("Status code:", 0)); table.addCell(ITextUtils.getCell(apiMethodDoc.getResponsestatuscode(), pos)); pos++; table.completeRow(); table.setSpacingAfter(10f); table.setSpacingBefore(5f); document.add(table); } document.close(); return file; } catch (FileNotFoundException e) { e.printStackTrace(); } catch (DocumentException e) { e.printStackTrace(); } return null; }
From source file:org.kuali.kfs.module.tem.pdf.Coversheet.java
License:Open Source License
/** * Creates instructions section of the coverpage * * @returns a {@link Paragraph} for the PDF *//*from w ww .jav a2 s . c om*/ protected Paragraph getInstructionsParagraph() { final Font headerFont = FontFactory.getFont(FontFactory.HELVETICA, 12, Font.BOLD); final Font normalFont = FontFactory.getFont(FontFactory.HELVETICA, 12, Font.NORMAL); final Paragraph retval = new Paragraph(); retval.add(new Chunk("Instructions", headerFont)); retval.add(Chunk.NEWLINE); retval.add(new Phrase(getInstructions(), normalFont)); return retval; }
From source file:org.kuali.kfs.module.tem.pdf.Coversheet.java
License:Open Source License
/** * Creates mailTo section for the coversheet. The MailTo section is where the coversheet will be mailed. * * @returns a {@link Paragraph} for the PDF *//* w w w. ja v a 2 s .co m*/ protected Paragraph getMailtoParagraph() { final Font headerFont = FontFactory.getFont(FontFactory.HELVETICA, 12, Font.BOLD); final Font normalFont = FontFactory.getFont(FontFactory.HELVETICA, 12, Font.NORMAL); final Paragraph retval = new Paragraph(); retval.add(new Chunk("Mail coversheet to:", headerFont)); retval.add(Chunk.NEWLINE); retval.add(new Phrase(getMailTo(), normalFont)); return retval; }
From source file:org.kuali.kfs.module.tem.pdf.Coversheet.java
License:Open Source License
/** * @see org.kuali.kfs.module.tem.pdf.PdfStream#print(java.io.OutputStream) * @throws Exception/*from w ww .j a v a 2 s .co m*/ */ @Override public void print(final OutputStream stream) throws Exception { final Font titleFont = FontFactory.getFont(FontFactory.HELVETICA, 20, Font.BOLD); final Font headerFont = FontFactory.getFont(FontFactory.HELVETICA, 12, Font.BOLD); final Font normalFont = FontFactory.getFont(FontFactory.HELVETICA, 12, Font.NORMAL); final Document doc = new Document(); final PdfWriter writer = PdfWriter.getInstance(doc, stream); doc.open(); if (getDocumentNumber() != null) { Image image = Image.getInstance(new BarcodeHelper().generateBarcodeImage(getDocumentNumber()), null); doc.add(image); } final Paragraph title = new Paragraph("TEM Coversheet", titleFont); doc.add(title); final Paragraph faxNumber = new Paragraph( "Fax this page to " + SpringContext.getBean(ParameterService.class) .getParameterValueAsString(TravelReimbursementDocument.class, FAX_NUMBER), normalFont); doc.add(faxNumber); final Paragraph header = new Paragraph("", headerFont); header.setAlignment(ALIGN_RIGHT); header.add("Document Number: " + getDocumentNumber()); doc.add(header); doc.add(getInstructionsParagraph()); doc.add(getMailtoParagraph()); doc.add(Chunk.NEWLINE); doc.add(getTripInfo()); doc.add(Chunk.NEWLINE); doc.add(getPersonalInfo()); doc.add(Chunk.NEWLINE); doc.add(getExpenses()); drawAlignmentMarks(writer.getDirectContent()); doc.close(); writer.close(); }
From source file:org.kuali.ole.describe.controller.EditorController.java
License:Open Source License
private void generateCallSlip(EditorForm editorForm, HttpServletResponse response) { LOG.debug("Creating pdf"); String title = "", author = "", callNumber = "", location = "", copyNumber = "", enumeration = "", chronology = "", barcode = ""; SearchResponse searchResponse = null; SearchParams searchParams = new SearchParams(); SearchField searchField1 = searchParams.buildSearchField("item", "ItemIdentifier_search", editorForm.getDocId());// w ww . j av a 2 s .c o m searchParams.getSearchConditions().add(searchParams.buildSearchCondition("OR", searchField1, "AND")); searchParams.getSearchResultFields().add(searchParams.buildSearchResultField("bibliographic", "Title")); searchParams.getSearchResultFields().add(searchParams.buildSearchResultField("bibliographic", "Author")); searchParams.getSearchResultFields().add(searchParams.buildSearchResultField("item", "CallNumber")); searchParams.getSearchResultFields().add(searchParams.buildSearchResultField("item", "LocationName")); searchParams.getSearchResultFields().add(searchParams.buildSearchResultField("item", "CopyNumber")); searchParams.getSearchResultFields().add(searchParams.buildSearchResultField("item", "enumeration")); searchParams.getSearchResultFields().add(searchParams.buildSearchResultField("item", "chronology")); searchParams.getSearchResultFields().add(searchParams.buildSearchResultField("item", "ItemBarcode")); searchParams.getSearchResultFields().add(searchParams.buildSearchResultField("holdings", "CallNumber")); searchParams.getSearchResultFields().add(searchParams.buildSearchResultField("holdings", "LocationName")); try { searchResponse = getDocstoreClientLocator().getDocstoreClient().search(searchParams); } catch (Exception e) { LOG.error(e, e); } if (CollectionUtils.isNotEmpty(searchResponse.getSearchResults())) { for (SearchResultField searchResultField : searchResponse.getSearchResults().get(0) .getSearchResultFields()) { if (searchResultField.getDocType().equalsIgnoreCase(DocType.BIB.getCode()) && searchResultField.getFieldName().equalsIgnoreCase("Title")) { if (StringUtils.isBlank(title)) { title = searchResultField.getFieldValue() != null ? searchResultField.getFieldValue() : ""; } } else if (searchResultField.getDocType().equalsIgnoreCase(DocType.BIB.getCode()) && searchResultField.getFieldName().equalsIgnoreCase("Author")) { if (StringUtils.isBlank(author)) { author = searchResultField.getFieldValue() != null ? searchResultField.getFieldValue() : ""; } } else if (searchResultField.getDocType().equalsIgnoreCase(DocType.ITEM.getCode()) && searchResultField.getFieldName().equalsIgnoreCase("CallNumber")) { callNumber = searchResultField.getFieldValue() != null ? searchResultField.getFieldValue() : ""; } else if (searchResultField.getDocType().equalsIgnoreCase(DocType.ITEM.getCode()) && searchResultField.getFieldName().equalsIgnoreCase("LocationName")) { location = searchResultField.getFieldValue() != null ? searchResultField.getFieldValue() : ""; } else if (searchResultField.getDocType().equalsIgnoreCase(DocType.ITEM.getCode()) && searchResultField.getFieldName().equalsIgnoreCase("CopyNumber")) { copyNumber = searchResultField.getFieldValue() != null ? searchResultField.getFieldValue() : ""; } else if (searchResultField.getDocType().equalsIgnoreCase(DocType.ITEM.getCode()) && searchResultField.getFieldName().equalsIgnoreCase("enumeration")) { enumeration = searchResultField.getFieldValue() != null ? searchResultField.getFieldValue() : ""; } else if (searchResultField.getDocType().equalsIgnoreCase(DocType.ITEM.getCode()) && searchResultField.getFieldName().equalsIgnoreCase("chronology")) { chronology = searchResultField.getFieldValue() != null ? searchResultField.getFieldValue() : ""; } else if (searchResultField.getDocType().equalsIgnoreCase(DocType.ITEM.getCode()) && searchResultField.getFieldName().equalsIgnoreCase("ItemBarcode")) { barcode = searchResultField.getFieldValue() != null ? searchResultField.getFieldValue() : ""; } else if (searchResultField.getDocType().equalsIgnoreCase(DocType.HOLDINGS.getCode()) && searchResultField.getFieldName().equalsIgnoreCase("CallNumber")) { if (StringUtils.isBlank(callNumber)) { callNumber = searchResultField.getFieldValue() != null ? searchResultField.getFieldValue() : ""; } } else if (searchResultField.getDocType().equalsIgnoreCase(DocType.HOLDINGS.getCode()) && searchResultField.getFieldName().equalsIgnoreCase("LocationName")) { if (StringUtils.isBlank(location)) { location = searchResultField.getFieldValue() != null ? searchResultField.getFieldValue() : ""; } } } } String fileName = "Call/Paging Slip" + "_" + (editorForm.getTitle() != null ? editorForm.getTitle() : "") + "_" + new Date(System.currentTimeMillis()) + ".pdf"; if (LOG.isInfoEnabled()) { LOG.info("File Created :" + title + "file name ::" + fileName + "::"); } try { Document document = this.getDocument(0, 0, 5, 5); OutputStream outputStream = null; response.setContentType("application/pdf"); //response.setHeader("Content-Disposition", "attachment;filename=" + fileName); outputStream = response.getOutputStream(); PdfWriter.getInstance(document, outputStream); Font boldFont = new Font(Font.TIMES_ROMAN, 15, Font.BOLD); document.open(); document.newPage(); PdfPTable pdfTable = new PdfPTable(3); pdfTable.setWidths(new int[] { 20, 2, 30 }); Paragraph paraGraph = new Paragraph(); paraGraph.setAlignment(Element.ALIGN_CENTER); paraGraph.add(new Chunk("Call/Paging Slip", boldFont)); paraGraph.add(Chunk.NEWLINE); paraGraph.add(Chunk.NEWLINE); paraGraph.add(Chunk.NEWLINE); document.add(paraGraph); pdfTable.addCell(getPdfPCellInJustified("Title")); pdfTable.addCell(getPdfPCellInLeft(":")); pdfTable.addCell(getPdfPCellInJustified(title)); pdfTable.addCell(getPdfPCellInJustified("Author")); pdfTable.addCell(getPdfPCellInLeft(":")); pdfTable.addCell(getPdfPCellInJustified(author)); pdfTable.addCell(getPdfPCellInJustified("Call Number")); pdfTable.addCell(getPdfPCellInLeft(":")); pdfTable.addCell(getPdfPCellInJustified(callNumber)); pdfTable.addCell(getPdfPCellInJustified("Location")); pdfTable.addCell(getPdfPCellInLeft(":")); pdfTable.addCell(getPdfPCellInJustified(location)); pdfTable.addCell(getPdfPCellInJustified("Copy Number")); pdfTable.addCell(getPdfPCellInLeft(":")); pdfTable.addCell(getPdfPCellInJustified(copyNumber)); pdfTable.addCell(getPdfPCellInJustified("Enumeration")); pdfTable.addCell(getPdfPCellInLeft(":")); pdfTable.addCell(getPdfPCellInJustified(enumeration)); pdfTable.addCell(getPdfPCellInJustified("Chronology")); pdfTable.addCell(getPdfPCellInLeft(":")); pdfTable.addCell(getPdfPCellInJustified(chronology)); pdfTable.addCell(getPdfPCellInJustified("Barcode")); pdfTable.addCell(getPdfPCellInLeft(":")); pdfTable.addCell(getPdfPCellInJustified(barcode)); document.add(pdfTable); document.close(); outputStream.flush(); outputStream.close(); } catch (Exception e) { LOG.error(e, e); } }
From source file:org.odftoolkit.odfdom.converter.internal.itext.ElementVisitorForIText.java
License:Open Source License
@Override public void visit(TextLineBreakElement ele) { currentContainer.addElement(Chunk.NEWLINE); }
From source file:org.oscarehr.web.reports.ocan.IndividualNeedRatingOverTimeReportGenerator.java
License:Open Source License
public void generateReport(OutputStream os) throws Exception { Document d = new Document(PageSize.A4.rotate()); d.setMargins(20, 20, 20, 20);/*from w w w . j a va2s .co m*/ PdfWriter writer = PdfWriter.getInstance(d, os); writer.setStrictImageSequence(true); d.open(); //header Paragraph p = new Paragraph("Individual Need Rating Over Time", titleFont); p.setAlignment(Element.ALIGN_CENTER); d.add(p); d.add(Chunk.NEWLINE); //purpose Paragraph purpose = new Paragraph(); purpose.add(new Chunk("Purpose of Report:", boldText)); purpose.add(new Phrase( "The purpose of this report is to show change over time in a specific Need Rating for an individual Consumer. It adds up the number of needs across all Domains grouped by Need Rating (e.g. Unmet Needs, Met Needs, No Needs, Unknown) for all selected OCANs that were conducted with the Consumer and displays the results in an individual need rating line graph. Each line graph that is displayed compares the Consumer and the Staff's perspective. The staff may share this report with their Consumer as well.", normalText)); d.add(purpose); d.add(Chunk.NEWLINE); //report parameters PdfPTable table = new PdfPTable(2); table.setWidthPercentage(100); table.getDefaultCell().setBorder(0); table.addCell(makeCell(createFieldNameAndValuePhrase("Consumer Name:", reportBean.getConsumerName()), Element.ALIGN_LEFT)); table.addCell(makeCell( createFieldNameAndValuePhrase("Report Date:", dateFormatter.format(reportBean.getReportDate())), Element.ALIGN_RIGHT)); table.addCell(makeCell(createFieldNameAndValuePhrase("Staff Name:", reportBean.getStaffName()), Element.ALIGN_LEFT)); table.addCell(""); d.add(table); d.add(Chunk.NEWLINE); int height = 260; if (reportBean.isShowUnmetNeeds()) { d.add(Image.getInstance(reportBean.getUnmetNeedsChart() .createBufferedImage((int) PageSize.A4.rotate().getWidth() - 40, height), null)); } if (reportBean.isShowMetNeeds()) { d.add(Image.getInstance(reportBean.getMetNeedsChart() .createBufferedImage((int) PageSize.A4.rotate().getWidth() - 40, height), null)); } if (reportBean.isShowNoNeeds()) { d.add(Image.getInstance(reportBean.getNoNeedsChart() .createBufferedImage((int) PageSize.A4.rotate().getWidth() - 40, height), null)); } if (reportBean.isShowUnknownNeeds()) { d.add(Image.getInstance(reportBean.getUnknownNeedsChart() .createBufferedImage((int) PageSize.A4.rotate().getWidth() - 40, height), null)); } d.close(); }
From source file:org.oscarehr.web.reports.ocan.NeedRatingOverTimeReportGenerator.java
License:Open Source License
public void generateReport(OutputStream os) throws Exception { Document d = new Document(PageSize.A4.rotate()); d.setMargins(20, 20, 20, 20);/*from w w w . j a v a 2 s. c om*/ PdfWriter writer = PdfWriter.getInstance(d, os); writer.setStrictImageSequence(true); d.open(); //header Paragraph p = new Paragraph("Needs Over Time (Consumer and Staff)", titleFont); p.setAlignment(Element.ALIGN_CENTER); d.add(p); d.add(Chunk.NEWLINE); //purpose Paragraph purpose = new Paragraph(); purpose.add(new Chunk("Purpose of Report:", boldText)); purpose.add(new Phrase( "The purpose of this report is to show change over time in a specific Need Rating for an individual Consumer. It adds up the number of needs across all Domains grouped by Need Rating (e.g. Unmet Needs, Met Needs, No Needs, Unknown) for all selected OCANs that were conducted with the Consumer and displays the results in an individual need rating line graph. Each line graph that is displayed compares the Consumer and the Staff's perspective. The staff may share this report with their Consumer as well.", normalText)); d.add(purpose); d.add(Chunk.NEWLINE); //report parameters PdfPTable table = new PdfPTable(2); table.setWidthPercentage(100); table.getDefaultCell().setBorder(0); table.addCell( makeCell(createFieldNameAndValuePhrase("Consumer Name:", getConsumerName()), Element.ALIGN_LEFT)); table.addCell(makeCell(createFieldNameAndValuePhrase("Report Date:", dateFormatter.format(getReportDate())), Element.ALIGN_RIGHT)); table.addCell(makeCell(createFieldNameAndValuePhrase("Staff Name:", getStaffName()), Element.ALIGN_LEFT)); table.addCell(""); d.add(table); d.add(Chunk.NEWLINE); //loop here...groups of 3 int loopNo = 1; List<OcanNeedRatingOverTimeSummaryOfNeedsBean> summaryBeanList = new ArrayList<OcanNeedRatingOverTimeSummaryOfNeedsBean>(); summaryBeanList.addAll(this.summaryOfNeedsBeanList); while (true) { if (summaryBeanList.size() == 0) { break; } List<OcanNeedRatingOverTimeSummaryOfNeedsBean> currentBeanList = new ArrayList<OcanNeedRatingOverTimeSummaryOfNeedsBean>(); for (int x = 0; x < 3; x++) { if (summaryBeanList.size() == 0) { break; } currentBeanList.add(summaryBeanList.remove(0)); } //summary of needs PdfPTable summaryOfNeedsTable = null; if (currentBeanList.size() == 1) { summaryOfNeedsTable = new PdfPTable(3); summaryOfNeedsTable.setWidthPercentage(100f - 52.8f); summaryOfNeedsTable.setWidths(new float[] { 0.26f, 0.12f, 0.12f }); } if (currentBeanList.size() == 2) { summaryOfNeedsTable = new PdfPTable(6); summaryOfNeedsTable.setWidthPercentage(100f - 26.4f); summaryOfNeedsTable.setWidths(new float[] { 0.26f, 0.12f, 0.12f, 0.024f, 0.12f, 0.12f }); } if (currentBeanList.size() == 3) { summaryOfNeedsTable = new PdfPTable(9); summaryOfNeedsTable.setWidthPercentage(100f); summaryOfNeedsTable .setWidths(new float[] { 0.26f, 0.12f, 0.12f, 0.024f, 0.12f, 0.12f, 0.024f, 0.12f, 0.12f }); } summaryOfNeedsTable.setHorizontalAlignment(Element.ALIGN_LEFT); summaryOfNeedsTable.setHeaderRows(3); addSummaryOfNeedsHeader(summaryOfNeedsTable, currentBeanList, loopNo); addSummaryOfNeedsRow(summaryOfNeedsTable, "Unmet Needs", "unmet", currentBeanList); addSummaryOfNeedsRow(summaryOfNeedsTable, "Met Needs", "met", currentBeanList); addSummaryOfNeedsRow(summaryOfNeedsTable, "No Needs", "no", currentBeanList); addSummaryOfNeedsRow(summaryOfNeedsTable, "Unknown Needs", "unknown", currentBeanList); d.add(summaryOfNeedsTable); d.add(Chunk.NEWLINE); if (summaryBeanList.size() == 0) { break; } loopNo++; } //BREAKDOWN OF SUMMARY OF NEEDS //loop here...groups of 3 loopNo = 1; List<OcanNeedRatingOverTimeNeedBreakdownBean> breakdownBeanList = new ArrayList<OcanNeedRatingOverTimeNeedBreakdownBean>(); breakdownBeanList.addAll(this.needBreakdownListByOCAN); OcanNeedRatingOverTimeNeedBreakdownBean lastBreakDownBean = null; while (true) { if (breakdownBeanList.size() == 0) { break; } List<OcanNeedRatingOverTimeNeedBreakdownBean> currentBeanList = new ArrayList<OcanNeedRatingOverTimeNeedBreakdownBean>(); for (int x = 0; x < 3; x++) { if (breakdownBeanList.size() == 0) { break; } currentBeanList.add(breakdownBeanList.remove(0)); } //summary of needs PdfPTable summaryOfNeedsTable = null; if (currentBeanList.size() == 1) { if (lastBreakDownBean == null) { summaryOfNeedsTable = new PdfPTable(3); summaryOfNeedsTable.setWidthPercentage(100f - 52.8f); summaryOfNeedsTable.setWidths(new float[] { 0.26f, 0.12f, 0.12f }); } else { summaryOfNeedsTable = new PdfPTable(4); summaryOfNeedsTable.setWidthPercentage(100f - 52.8f); summaryOfNeedsTable.setWidths(new float[] { 0.26f - 0.024f, 0.024f, 0.12f, 0.12f }); } } if (currentBeanList.size() == 2) { if (lastBreakDownBean == null) { summaryOfNeedsTable = new PdfPTable(6); summaryOfNeedsTable.setWidthPercentage(100f - 26.4f); summaryOfNeedsTable.setWidths(new float[] { 0.26f, 0.12f, 0.12f, 0.024f, 0.12f, 0.12f }); } else { summaryOfNeedsTable = new PdfPTable(7); summaryOfNeedsTable.setWidthPercentage(100f - 26.4f); summaryOfNeedsTable .setWidths(new float[] { 0.26f - 0.024f, 0.024f, 0.12f, 0.12f, 0.024f, 0.12f, 0.12f }); } } if (currentBeanList.size() == 3) { if (lastBreakDownBean == null) { summaryOfNeedsTable = new PdfPTable(9); summaryOfNeedsTable.setWidthPercentage(100f); summaryOfNeedsTable.setWidths( new float[] { 0.26f, 0.12f, 0.12f, 0.024f, 0.12f, 0.12f, 0.024f, 0.12f, 0.12f }); } else { summaryOfNeedsTable = new PdfPTable(10); summaryOfNeedsTable.setWidthPercentage(100f); summaryOfNeedsTable.setWidths(new float[] { 0.26f - 0.024f, 0.024f, 0.12f, 0.12f, 0.024f, 0.12f, 0.12f, 0.024f, 0.12f, 0.12f }); } } summaryOfNeedsTable.setHorizontalAlignment(Element.ALIGN_LEFT); addSummaryOfNeedsDomainHeader(summaryOfNeedsTable, currentBeanList, loopNo); for (int x = 0; x < domains.size(); x++) { addSummaryOfNeedsDomainRow(summaryOfNeedsTable, x, getDomains(), currentBeanList, lastBreakDownBean); } d.add(summaryOfNeedsTable); d.add(Chunk.NEWLINE); if (breakdownBeanList.size() == 0) { break; } if (currentBeanList.size() == 3) { lastBreakDownBean = currentBeanList.get(2); } loopNo++; } JFreeChart chart = generateNeedsOverTimeChart(); BufferedImage image = chart.createBufferedImage((int) PageSize.A4.rotate().getWidth() - 40, 350); Image image2 = Image.getInstance(image, null); d.add(image2); d.close(); }
From source file:org.oscarehr.web.reports.ocan.SummaryOfActionsAndCommentsReportGenerator.java
License:Open Source License
public void generateReport(OutputStream os) throws Exception { Document d = new Document(PageSize.A4.rotate()); d.setMargins(20, 20, 20, 20);// w w w . j av a 2 s . com PdfWriter writer = PdfWriter.getInstance(d, os); writer.setStrictImageSequence(true); d.open(); //header Paragraph p = new Paragraph("Summary of Actions and Comments", titleFont); p.setAlignment(Element.ALIGN_CENTER); d.add(p); d.add(Chunk.NEWLINE); //purpose Paragraph purpose = new Paragraph(); purpose.add(new Chunk("Purpose of Report:", boldText)); purpose.add(new Phrase( "This report displays a summary of Actions and Comments (both for the Consumer and the Staff) that were recorded in the selected OCANs for an individual Consumer. The report lists all the Actions and Comments associated to OCANs and Domains that were chosen by the Staff to be displayed. The Actions also list who is responsible for the Action and the Review Date for the Action. The Domains are categorized by need rating within within the current OCAN as well as displaying the need ratings from the previous OCANs. In the case of different need ratings by the Consumer and the Mental Health Worker, the higher need rating determines the category. The need ratings from highest to lowest are Unmet Needs, Met Needs, No Needs, and Unknown. The need rating given by the Consumer and the Staff are also displayed next to the Comments for each OCAN. This information can be passed along to other organizations if requested.", normalText)); d.add(purpose); d.add(Chunk.NEWLINE); //report parameters PdfPTable table = new PdfPTable(2); table.setWidthPercentage(100); table.getDefaultCell().setBorder(0); table.addCell( makeCell(createFieldNameAndValuePhrase("Consumer Name:", getConsumerName()), Element.ALIGN_LEFT)); table.addCell(makeCell(createFieldNameAndValuePhrase("Report Date:", dateFormatter.format(getReportDate())), Element.ALIGN_RIGHT)); table.addCell(makeCell(createFieldNameAndValuePhrase("Staff Name:", getStaffName()), Element.ALIGN_LEFT)); table.addCell(""); d.add(table); d.add(Chunk.NEWLINE); if (reportBean == null) { d.close(); return; } List<SummaryOfActionsAndCommentsDomainBean> unMetCategory = reportBean.getUnmetNeeds(); List<SummaryOfActionsAndCommentsDomainBean> metCategory = reportBean.getMetNeeds(); List<SummaryOfActionsAndCommentsDomainBean> noCategory = reportBean.getNoNeeds(); List<SummaryOfActionsAndCommentsDomainBean> unknownCategory = reportBean.getUnknown(); PdfPTable unmetTable = null; if (unMetCategory.size() > 0) { unmetTable = createNeedHeader("Unmet Needs"); } for (SummaryOfActionsAndCommentsDomainBean domain : unMetCategory) { if (domain.getOcanBeans().size() > 0) { createDomainHeader(unmetTable, domain.getDomainName()); for (SummaryOfActionsAndCommentsOCANBean ocanBean : domain.getOcanBeans()) { createOcanEntry(unmetTable, ocanBean); } } } if (unmetTable != null) { d.add(unmetTable); d.add(Chunk.NEWLINE); } PdfPTable metTable = null; if (metCategory.size() > 0) { metTable = createNeedHeader("Met Needs"); } for (SummaryOfActionsAndCommentsDomainBean domain : metCategory) { if (domain.getOcanBeans().size() > 0) { createDomainHeader(metTable, domain.getDomainName()); for (SummaryOfActionsAndCommentsOCANBean ocanBean : domain.getOcanBeans()) { createOcanEntry(metTable, ocanBean); } } } if (metTable != null) { d.add(metTable); d.add(Chunk.NEWLINE); } PdfPTable noTable = null; if (noCategory.size() > 0) { noTable = createNeedHeader("No Needs"); } for (SummaryOfActionsAndCommentsDomainBean domain : noCategory) { if (domain.getOcanBeans().size() > 0) { createDomainHeader(noTable, domain.getDomainName()); for (SummaryOfActionsAndCommentsOCANBean ocanBean : domain.getOcanBeans()) { createOcanEntry(noTable, ocanBean); } } } if (noTable != null) { d.add(noTable); d.add(Chunk.NEWLINE); } PdfPTable unknownTable = null; if (unknownCategory.size() > 0) { unknownTable = createNeedHeader("Unknown"); } for (SummaryOfActionsAndCommentsDomainBean domain : unknownCategory) { if (domain.getOcanBeans().size() > 0) { createDomainHeader(unknownTable, domain.getDomainName()); for (SummaryOfActionsAndCommentsOCANBean ocanBean : domain.getOcanBeans()) { createOcanEntry(unknownTable, ocanBean); } } } if (unknownTable != null) { d.add(unknownTable); } d.close(); }