List of usage examples for com.lowagie.text.pdf PdfPCell setPaddingLeft
public void setPaddingLeft(float paddingLeft)
From source file:org.revager.export.PDFPageEventHelper.java
License:Open Source License
@Override public void onEndPage(PdfWriter writer, Document document) { int columnNumber; try {// w w w . j a v a2 s .co m Rectangle page = document.getPageSize(); float pageWidth = page.getWidth() - document.leftMargin() - document.rightMargin(); /* * Write marks */ setMarks(writer, document); /* * Define fonts */ headBaseFont = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.EMBEDDED); Font headFont = new Font(headBaseFont, headFontSize); footBaseFont = BaseFont.createFont(BaseFont.HELVETICA_OBLIQUE, BaseFont.CP1252, BaseFont.EMBEDDED); Font footFont = new Font(footBaseFont, footFontSize); /* * Cell fill for space between head/foot and content */ PdfPCell cellFill = new PdfPCell(); cellFill.setMinimumHeight(PDFTools.cmToPt(0.8f)); cellFill.setBorderWidth(0); /* * Write head */ if (headLogoPath != null) { columnNumber = 2; } else { columnNumber = 1; } PdfPTable head = new PdfPTable(columnNumber); Phrase phraseTitle = new Phrase(headTitle, headFont); PdfPCell cellTitle = new PdfPCell(phraseTitle); cellTitle.setHorizontalAlignment(Element.ALIGN_LEFT); cellTitle.setVerticalAlignment(Element.ALIGN_BOTTOM); cellTitle.setPaddingTop(0); cellTitle.setPaddingBottom(PDFTools.cmToPt(0.2f)); cellTitle.setPaddingLeft(0); cellTitle.setPaddingRight(0); cellTitle.setBorderWidthTop(0); cellTitle.setBorderWidthBottom(0.5f); cellTitle.setBorderWidthLeft(0); cellTitle.setBorderWidthRight(0); head.addCell(cellTitle); if (headLogoPath != null) { Image headLogo = Image.getInstance(headLogoPath); headLogo.scaleToFit(PDFTools.cmToPt(5.0f), PDFTools.cmToPt(1.1f)); PdfPCell cellLogo = new PdfPCell(headLogo); cellLogo.setHorizontalAlignment(Element.ALIGN_RIGHT); cellLogo.setVerticalAlignment(Element.ALIGN_BOTTOM); cellLogo.setPaddingTop(0); cellLogo.setPaddingBottom(PDFTools.cmToPt(0.15f)); cellLogo.setPaddingLeft(0); cellLogo.setPaddingRight(0); cellLogo.setBorderWidthTop(0); cellLogo.setBorderWidthBottom(0.5f); cellLogo.setBorderWidthLeft(0); cellLogo.setBorderWidthRight(0); head.addCell(cellLogo); head.addCell(cellFill); } head.addCell(cellFill); head.setTotalWidth(pageWidth); head.writeSelectedRows(0, -1, document.leftMargin(), page.getHeight() - document.topMargin() + head.getTotalHeight(), writer.getDirectContent()); /* * Write foot */ if (footText == null) { footText = " "; } PdfPTable foot = new PdfPTable(1); foot.addCell(cellFill); PdfPCell cellFootText = new PdfPCell(new Phrase(footText, footFont)); cellFootText.setHorizontalAlignment(Element.ALIGN_RIGHT); cellFootText.setVerticalAlignment(Element.ALIGN_TOP); cellFootText.setPaddingTop(PDFTools.cmToPt(0.15f)); cellFootText.setPaddingBottom(0); cellFootText.setPaddingLeft(0); cellFootText.setPaddingRight(0); cellFootText.setBorderWidthTop(0.5f); cellFootText.setBorderWidthBottom(0); cellFootText.setBorderWidthLeft(0); cellFootText.setBorderWidthRight(0); foot.addCell(cellFootText); /* * Print page numbers */ PdfContentByte contentByte = writer.getDirectContent(); contentByte.saveState(); String text = MessageFormat.format(translate("Page {0} of") + " ", writer.getPageNumber()); float textSize = footBaseFont.getWidthPoint(text, footFontSize); float textBase = document.bottom() - PDFTools.cmToPt(1.26f); contentByte.beginText(); contentByte.setFontAndSize(footBaseFont, footFontSize); float adjust; if (footText.trim().equals("")) { adjust = (pageWidth / 2) - (textSize / 2) - footBaseFont.getWidthPoint("0", footFontSize); } else { adjust = 0; } contentByte.setTextMatrix(document.left() + adjust, textBase); contentByte.showText(text); contentByte.endText(); contentByte.addTemplate(template, document.left() + adjust + textSize, textBase); contentByte.stroke(); contentByte.restoreState(); foot.setTotalWidth(pageWidth); foot.writeSelectedRows(0, -1, document.leftMargin(), document.bottomMargin(), writer.getDirectContent()); } catch (Exception e) { /* * Not part of unit testing because this exception is only thrown if * an internal error occurs. */ throw new ExceptionConverter(e); } }
From source file:org.revager.export.ProtocolPDFExporter.java
License:Open Source License
/** * Write the title page of the protocol. * // w w w . java 2 s .co m * @param meetings * the meetings * @param attachProdExtRefs * true, if the external reference of the product should be part * of the protocol * * @throws ExportException * If an error occurs while writing the title page */ protected void writeTitlePage(List<Meeting> meetings, boolean attachProdExtRefs) throws ExportException { try { Font plainFont = new Font(BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.EMBEDDED), 10); Font plainFontSmall = new Font( BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.EMBEDDED), 8); Font boldFont = new Font( BaseFont.createFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1252, BaseFont.EMBEDDED), 11); Font italicFont = new Font( BaseFont.createFont(BaseFont.HELVETICA_OBLIQUE, BaseFont.CP1252, BaseFont.EMBEDDED), 10); Font italicFontSmall = new Font( BaseFont.createFont(BaseFont.HELVETICA_OBLIQUE, BaseFont.CP1252, BaseFont.EMBEDDED), 8); Font boldItalicFont = new Font( BaseFont.createFont(BaseFont.HELVETICA_BOLDOBLIQUE, BaseFont.CP1252, BaseFont.EMBEDDED), 11); Font boldItalicFontSmall = new Font( BaseFont.createFont(BaseFont.HELVETICA_BOLDOBLIQUE, BaseFont.CP1252, BaseFont.EMBEDDED), 8); Font protocolFontTitle = new Font( BaseFont.createFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1252, BaseFont.EMBEDDED), 20); Font reviewFontTitle = new Font( BaseFont.createFont(BaseFont.HELVETICA_OBLIQUE, BaseFont.CP1252, BaseFont.EMBEDDED), 15); Font meetingFontTitle = new Font( BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.EMBEDDED), 13); /* * Title of the protocol */ PdfPTable tableTitlePage = new PdfPTable(new float[] { 0.6f, 0.4f }); tableTitlePage.setWidthPercentage(100); tableTitlePage.setSplitRows(false); tableTitlePage.getDefaultCell().setBorder(0); tableTitlePage.getDefaultCell().setPadding(0); String protocolTitle = translate("Findings List of the Review"); if (meetings.size() == 1) { protocolTitle = translate("Findings List of the Review Meeting"); } PdfPCell cellProtocol = new PdfPCell(new Phrase(protocolTitle, protocolFontTitle)); cellProtocol.setHorizontalAlignment(Element.ALIGN_CENTER); cellProtocol.setColspan(2); cellProtocol.setBorderWidth(0); cellProtocol.setPaddingTop(PDFTools.cmToPt(0.4f)); cellProtocol.setPaddingBottom(PDFTools.cmToPt(0.2f)); tableTitlePage.addCell(cellProtocol); /* * Name of the review */ PdfPCell cellRevName = new PdfPCell( new Phrase(Application.getInstance().getReviewMgmt().getReviewName(), reviewFontTitle)); cellRevName.setHorizontalAlignment(Element.ALIGN_CENTER); cellRevName.setColspan(2); cellRevName.setBorderWidth(0); cellRevName.setPaddingBottom(PDFTools.cmToPt(1.6f)); tableTitlePage.addCell(cellRevName); /* * Review meeting date and location */ if (meetings.size() == 1) { sdfDate.setTimeZone(meetings.get(0).getProtocol().getDate().getTimeZone()); sdfTime.setTimeZone(meetings.get(0).getProtocol().getDate().getTimeZone()); String meetingDate = sdfDate.format(meetings.get(0).getProtocol().getDate().getTime()); String meetingTime = sdfTime.format(meetings.get(0).getProtocol().getStart().getTime()) + " - " + sdfTime.format(meetings.get(0).getProtocol().getEnd().getTime()) + " [" + meetings.get(0).getProtocol().getEnd().getTimeZone().getDisplayName() + "]"; Phrase phraseMeeting = new Phrase(meetingDate + " (" + meetingTime + ")", meetingFontTitle); PdfPCell cellMeeting = new PdfPCell(phraseMeeting); cellMeeting.setColspan(2); cellMeeting.setHorizontalAlignment(Element.ALIGN_CENTER); cellMeeting.setPadding(0); cellMeeting.setBorderWidth(0); tableTitlePage.addCell(cellMeeting); String location = meetings.get(0).getProtocol().getLocation(); if (location.trim().equals("")) { location = "--"; } cellMeeting = new PdfPCell(new Phrase(translate("Location") + ": " + location, meetingFontTitle)); cellMeeting.setColspan(2); cellMeeting.setHorizontalAlignment(Element.ALIGN_CENTER); cellMeeting.setPadding(0); cellMeeting.setBorderWidth(0); cellMeeting.setPaddingTop(PDFTools.cmToPt(0.15f)); cellMeeting.setPaddingBottom(PDFTools.cmToPt(1.9f)); tableTitlePage.addCell(cellMeeting); } /* * Review description and comments */ PdfPCell cellRevDesc = new PdfPCell(new Phrase(translate("Review Description:"), boldItalicFont)); cellRevDesc.setBorderWidth(0); cellRevDesc.setPadding(padding); tableTitlePage.addCell(cellRevDesc); cellRevDesc = new PdfPCell(new Phrase(translate("Review Comments"), boldFont)); cellRevDesc.setBorderWidth(0); cellRevDesc.setPadding(padding); cellRevDesc.setBackgroundColor(cellBackground); tableTitlePage.addCell(cellRevDesc); String revDesc = Application.getInstance().getReviewMgmt().getReviewDescription(); if (revDesc.trim().equals("")) { revDesc = "--"; } Phrase phrDesc = new Phrase(revDesc, plainFont); phrDesc.setLeading(leading); cellRevDesc = new PdfPCell(); cellRevDesc.addElement(phrDesc); cellRevDesc.setBorderWidth(0); cellRevDesc.setPadding(padding); cellRevDesc.setPaddingBottom(padding * 1.8f); tableTitlePage.addCell(cellRevDesc); String revComm = Application.getInstance().getReviewMgmt().getReviewComments(); if (revComm.trim().equals("")) { revComm = "--"; } Phrase phrComm = new Phrase(revComm, italicFont); phrComm.setLeading(leading); cellRevDesc = new PdfPCell(); cellRevDesc.addElement(phrComm); cellRevDesc.setBorderWidth(0); cellRevDesc.setPadding(padding); cellRevDesc.setPaddingBottom(padding * 1.8f); cellRevDesc.setBackgroundColor(cellBackground); tableTitlePage.addCell(cellRevDesc); tableTitlePage.addCell(createVerticalStrut(PDFTools.cmToPt(1.0f), 2)); /* * Product title */ PdfPTable tableProduct = new PdfPTable(new float[] { 0.07f, 0.93f }); tableProduct.setWidthPercentage(100); tableProduct.setSplitRows(false); tableProduct.getDefaultCell().setBorderWidth(0); tableProduct.getDefaultCell().setPadding(0); PdfPCell cellProdTitle = new PdfPCell(new Phrase(translate("Reviewed Product:"), boldItalicFont)); cellProdTitle.setColspan(2); cellProdTitle.setPadding(padding); cellProdTitle.setBorder(0); tableProduct.addCell(cellProdTitle); /* * List point used for lists */ Phrase phraseListPoint = new Phrase("", boldFont); phraseListPoint.setLeading(leading); PdfPCell cellListPoint = new PdfPCell(); cellListPoint.addElement(phraseListPoint); cellListPoint.setBorderWidth(0); cellListPoint.setPadding(padding); cellListPoint.setPaddingLeft(padding * 2); cellListPoint.setPaddingBottom(0); /* * Write name and version of the reviewed product */ String prodName = Data.getInstance().getResiData().getReview().getProduct().getName(); if (prodName.trim().equals("")) { prodName = "--"; } Phrase phrName = new Phrase(translate("Product Name") + ": " + prodName, plainFont); phrName.setLeading(leading); PdfPCell cellName = new PdfPCell(); cellName.addElement(phrName); cellName.setBorderWidth(0); cellName.setPadding(padding); cellName.setPaddingBottom(0); tableProduct.addCell(cellListPoint); tableProduct.addCell(cellName); String prodVersion = Data.getInstance().getResiData().getReview().getProduct().getVersion(); if (prodVersion.trim().equals("")) { prodVersion = "--"; } Phrase phrVersion = new Phrase(translate("Product Version") + ": " + prodVersion, plainFont); phrVersion.setLeading(leading); PdfPCell cellVersion = new PdfPCell(); cellVersion.addElement(phrVersion); cellVersion.setBorderWidth(0); cellVersion.setPadding(padding); cellVersion.setPaddingBottom(0); tableProduct.addCell(cellListPoint); tableProduct.addCell(cellVersion); if (Application.getInstance().getReviewMgmt().getNumberOfProdRefs() > 0) { /* * Table of product references */ PdfPCell cellRefTitle = new PdfPCell(new Phrase(translate("Product References:"), boldItalicFont)); cellRefTitle.setBorderWidth(0); cellRefTitle.setPadding(padding); cellRefTitle.setPaddingTop(padding * 4); cellRefTitle.setColspan(2); tableProduct.addCell(cellRefTitle); /* * Textual references */ for (String ref : Application.getInstance().getReviewMgmt().getProductReferences()) { Phrase phraseRef = new Phrase(ref, plainFont); phraseRef.setLeading(leading); PdfPCell cellRef = new PdfPCell(); cellRef.addElement(phraseRef); cellRef.setBorderWidth(0); cellRef.setPadding(padding); cellRef.setPaddingBottom(0); tableProduct.addCell(cellListPoint); tableProduct.addCell(cellRef); } /* * External file references */ for (File ref : Application.getInstance().getReviewMgmt().getExtProdReferences()) { Phrase phraseRef = new Phrase(); phraseRef.add(new Chunk(ref.getName(), plainFont)); phraseRef.add(new Chunk(" (" + translate("File Attachment") + ")", italicFont)); phraseRef.setFont(plainFont); phraseRef.setLeading(leading); PdfPCell cellRef = new PdfPCell(); cellRef.addElement(phraseRef); cellRef.setBorderWidth(0); cellRef.setPadding(padding); cellRef.setPaddingBottom(0); tableProduct.addCell(cellListPoint); if (attachProdExtRefs) { cellRef.setCellEvent(new PDFCellEventExtRef(pdfWriter, ref)); } tableProduct.addCell(cellRef); } } /* * Add the product table to the base table */ PdfPCell cellProduct = new PdfPCell(tableProduct); cellProduct.setBorder(0); cellProduct.setPadding(0); tableTitlePage.addCell(cellProduct); /* * List the meetings of this review */ PdfPCell cellInfos = new PdfPCell(); cellInfos.setBorder(0); cellInfos.setPadding(0); /* * meeting list title or meeting info title */ PdfPTable tableInfos = new PdfPTable(new float[] { 0.09f, 0.91f }); tableInfos.setWidthPercentage(100); tableInfos.setSplitRows(false); tableInfos.getDefaultCell().setBorderWidth(0); tableInfos.getDefaultCell().setPadding(0); String title = translate("Meeting Information:"); if (meetings.size() > 1) { title = translate("Findings Lists of the Review Meetings:"); } PdfPCell cellInfosTitle = new PdfPCell(new Phrase(title, boldFont)); cellInfosTitle.setColspan(2); cellInfosTitle.setPadding(padding); cellInfosTitle.setBorder(0); tableInfos.addCell(cellInfosTitle); if (meetings.size() > 1) { /* * list the meetings of this review (for review protocols) */ for (Meeting m : meetings) { Protocol protocol = m.getProtocol(); if (protocol != null) { String meetingDate = sdfDate.format(protocol.getDate().getTime()); String meetingTime = sdfTime.format(protocol.getStart().getTime()) + " - " + sdfTime.format(protocol.getEnd().getTime()) + " [" + protocol.getEnd().getTimeZone().getDisplayName() + "]"; String protLoc = protocol.getLocation(); if (protLoc.trim().equals("")) { protLoc = "--"; } Phrase phraseMeet = new Phrase( translate("Date") + ": " + meetingDate + "\n" + translate("Time") + ": " + meetingTime + "\n" + translate("Location") + ": " + protLoc, italicFont); Paragraph paraMeet = new Paragraph(); paraMeet.setLeading(leading); Anchor anchor = new Anchor(phraseMeet); anchor.setReference("#" + Long.toString( protocol.getDate().getTimeInMillis() + protocol.getStart().getTimeInMillis())); paraMeet.add(anchor); PdfPCell cellMeet = new PdfPCell(); cellMeet.addElement(paraMeet); cellMeet.setBorderWidth(0); cellMeet.setPadding(padding); tableInfos.addCell(cellListPoint); tableInfos.addCell(cellMeet); } } } else { Protocol prot = meetings.get(0).getProtocol(); Duration meetDur = DatatypeFactory.newInstance() .newDuration(prot.getEnd().getTimeInMillis() - prot.getStart().getTimeInMillis()); Phrase phraseMeetInfo = new Phrase( translate("Duration of the meeting") + ":\n" + meetDur.getHours() + " " + translate("Hour(s)") + ", " + meetDur.getMinutes() + " " + translate("Minute(s)"), italicFont); phraseMeetInfo.setLeading(leading); PdfPCell cellMeetInfo = new PdfPCell(); cellMeetInfo.addElement(phraseMeetInfo); cellMeetInfo.setBorderWidth(0); cellMeetInfo.setPadding(padding); tableInfos.addCell(cellListPoint); tableInfos.addCell(cellMeetInfo); /* * meeting number of findings */ phraseMeetInfo = new Phrase(translate("Number of findings") + ": " + prot.getFindings().size(), italicFont); phraseMeetInfo.setLeading(leading); cellMeetInfo = new PdfPCell(); cellMeetInfo.addElement(phraseMeetInfo); cellMeetInfo.setBorderWidth(0); cellMeetInfo.setPadding(padding); tableInfos.addCell(cellListPoint); tableInfos.addCell(cellMeetInfo); /* * meeting number of attendees */ phraseMeetInfo = new Phrase( translate("Number of attendees") + ": " + protMgmt.getAttendees(prot).size(), italicFont); phraseMeetInfo.setLeading(leading); cellMeetInfo = new PdfPCell(); cellMeetInfo.addElement(phraseMeetInfo); cellMeetInfo.setBorderWidth(0); cellMeetInfo.setPadding(padding); tableInfos.addCell(cellListPoint); tableInfos.addCell(cellMeetInfo); } cellInfos.addElement(tableInfos); cellInfos.setBackgroundColor(cellBackground); cellInfos.setPaddingBottom(padding); tableTitlePage.addCell(cellInfos); /* * Insert vertical strut */ tableTitlePage.addCell(createVerticalStrut(PDFTools.cmToPt(1.0f), 2)); /* * Write general impression and recommendation */ PdfPTable tableRevInfo = new PdfPTable(new float[] { 0.5f, 0.5f }); tableRevInfo.setWidthPercentage(100); tableRevInfo.setSplitRows(false); tableRevInfo.getDefaultCell().setBorderWidth(0); tableRevInfo.getDefaultCell().setPadding(0); /* * Insert vertical strut */ tableRevInfo.addCell(createVerticalStrut(PDFTools.cmToPt(0.5f), 2)); PdfPCell cellImpr = new PdfPCell( new Phrase(translate("General impressions of the product:"), boldFont)); cellImpr.setBorderWidth(0); cellImpr.setPadding(padding); cellImpr.setBorderColor(verticalBorderColor); cellImpr.setBorderWidthLeft(verticalBorderWidth); tableRevInfo.addCell(cellImpr); PdfPCell cellReco = new PdfPCell( new Phrase(translate("Final recommendation for the product:"), boldFont)); cellReco.setBorderWidth(0); cellReco.setPadding(padding); cellReco.setBorderColor(verticalBorderColor); cellReco.setBorderWidthLeft(verticalBorderWidth); tableRevInfo.addCell(cellReco); String impression = Application.getInstance().getReviewMgmt().getImpression(); if (impression.trim().equals("")) { impression = "--"; } Phrase phrImpr = new Phrase(impression, italicFont); phrImpr.setLeading(leading); cellImpr = new PdfPCell(); cellImpr.addElement(phrImpr); cellImpr.setBorderWidth(0); cellImpr.setPadding(padding); cellImpr.setPaddingBottom(padding * 1.8f); cellImpr.setBorderColor(verticalBorderColor); cellImpr.setBorderWidthLeft(verticalBorderWidth); tableRevInfo.addCell(cellImpr); String recommendation = Application.getInstance().getReviewMgmt().getRecommendation(); if (recommendation.trim().equals("")) { recommendation = "--"; } Phrase phrReco = new Phrase(recommendation, italicFont); phrReco.setLeading(leading); cellReco = new PdfPCell(); cellReco.addElement(phrReco); cellReco.setBorderWidth(0); cellReco.setPadding(padding); cellReco.setPaddingBottom(padding * 1.8f); cellReco.setBorderColor(verticalBorderColor); cellReco.setBorderWidthLeft(verticalBorderWidth); tableRevInfo.addCell(cellReco); /* * Add vertical strut */ tableRevInfo.addCell(createVerticalStrut(PDFTools.cmToPt(0.8f), 2)); /* * Write possible severities for this review */ String severities = ""; String separator = ""; for (String sev : Application.getInstance().getSeverityMgmt().getSeverities()) { severities = severities + separator + sev; separator = "; "; } Phrase phrSeverities = new Phrase(); phrSeverities.add(new Chunk( translate("The severities of the findings in this review (descending order of importance):"), italicFontSmall)); phrSeverities.add(new Chunk(" " + severities, boldItalicFontSmall)); phrSeverities.setLeading(leading); PdfPCell cellSevs = new PdfPCell(); cellSevs.setColspan(2); cellSevs.addElement(phrSeverities); cellSevs.setBorderWidth(0); cellSevs.setPadding(padding); tableRevInfo.addCell(cellSevs); /* * Short review statistics */ if (meetings.size() > 1) { Phrase phrRevStat = new Phrase(MessageFormat.format(translate( "This review consists of {0} attendees, {1} findings, {2} meetings and {3} aspects."), Application.getInstance().getReviewMgmt().getNumberOfAttendees(), Application.getInstance().getReviewMgmt().getNumberOfFindings(), Application.getInstance().getReviewMgmt().getNumberOfMeetings(), Application.getInstance().getReviewMgmt().getNumberOfAspects()), italicFontSmall); phrRevStat.setLeading(leading); PdfPCell cellRevStat = new PdfPCell(); cellRevStat.setColspan(2); cellRevStat.setHorizontalAlignment(Element.ALIGN_CENTER); cellRevStat.addElement(phrRevStat); cellRevStat.setBorderWidth(0); cellRevStat.setPadding(padding); cellRevStat.setPaddingTop(0); tableRevInfo.addCell(cellRevStat); } /* * Write the date of creation */ String creationDate = sdfDate.format(new Date().getTime()); Phrase phrCreationDate = new Phrase( translate("This finding has been created with RevAger on") + " " + creationDate, plainFontSmall); phrCreationDate.setLeading(leading); PdfPCell cellCrDate = new PdfPCell(); cellCrDate.setColspan(2); cellCrDate.setHorizontalAlignment(Element.ALIGN_CENTER); cellCrDate.addElement(phrCreationDate); cellCrDate.setBorderWidth(0); cellCrDate.setPadding(0); cellCrDate.setPaddingLeft(padding); cellCrDate.setPaddingRight(padding); tableRevInfo.addCell(cellCrDate); /* * Add content to the base table */ PdfPCell cellRevInfo = new PdfPCell(); cellRevInfo.setColspan(2); cellRevInfo.setBorder(0); cellRevInfo.setPadding(0); cellRevInfo.addElement(tableRevInfo); tableTitlePage.addCell(cellRevInfo); pdfDoc.add(tableTitlePage); } catch (Exception e) { /* * Not part of unit testing because this exception is only thrown if * an internal error occurs. */ throw new ExportException(translate("Cannot generate front page of the PDF document.")); } }
From source file:org.revager.export.ProtocolPDFExporter.java
License:Open Source License
/** * Writes the given attendees to the protocol. * //w w w.j a va 2 s . c o m * @param protocol * the protocol * @param showAttendeesAspects * true, if the aspects of the reviewers should be part of the * protocol * @param showAttendeesPrepTime * true, if the preparation time of the reviewers should be part * of the protocol * @param showSignatureFields * ture, if the signature fields should be part of the protocol * * @throws ExportException * If an error occurs while writing the attendees to the * protocol */ protected void writeAttendees(Protocol protocol, boolean showAttendeesAspects, boolean showAttendeesPrepTime, boolean showSignatureFields) throws ExportException { List<Attendee> atts; if (protocol != null) { atts = protMgmt.getAttendees(protocol); } else { atts = Application.getInstance().getAttendeeMgmt().getAttendees(); } /* * Sort the attendees by their role into different lists */ List<Attendee> reviewers = new ArrayList<Attendee>(); List<Attendee> moderators = new ArrayList<Attendee>(); List<Attendee> scribes = new ArrayList<Attendee>(); List<Attendee> authors = new ArrayList<Attendee>(); List<Attendee> customers = new ArrayList<Attendee>(); List<Attendee> others = new ArrayList<Attendee>(); for (Attendee att : atts) { switch (att.getRole()) { case AUTHOR: authors.add(att); break; case CUSTOMER: customers.add(att); break; case MODERATOR: moderators.add(att); break; case REVIEWER: reviewers.add(att); break; case SCRIBE: scribes.add(att); break; default: others.add(att); break; } } List<List<Attendee>> attendees = new ArrayList<List<Attendee>>(); attendees.add(moderators); attendees.add(scribes); attendees.add(authors); attendees.add(customers); attendees.add(reviewers); attendees.add(others); /* * Write attendees */ try { Font contactFont = new Font(BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.EMBEDDED), 10); Font nameFont = new Font( BaseFont.createFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1252, BaseFont.EMBEDDED), 10); Font roleFont = new Font( BaseFont.createFont(BaseFont.HELVETICA_OBLIQUE, BaseFont.CP1252, BaseFont.EMBEDDED), 10); Font aspectsFont = new Font( BaseFont.createFont(BaseFont.HELVETICA_OBLIQUE, BaseFont.CP1252, BaseFont.EMBEDDED), 8); Font aspectsTitleFont = new Font( BaseFont.createFont(BaseFont.HELVETICA_BOLDOBLIQUE, BaseFont.CP1252, BaseFont.EMBEDDED), 8); /* * Build base table for all attendees */ PdfPTable tableAttendees = new PdfPTable(1); tableAttendees.setWidthPercentage(100); tableAttendees.setSplitRows(false); tableAttendees.getDefaultCell().setBorderWidth(0); tableAttendees.getDefaultCell().setPadding(0); boolean grayBackground = true; for (List<Attendee> attList : attendees) { for (Attendee att : attList) { /* * Build table for one attendee */ PdfPTable tableAttendee = new PdfPTable(new float[] { 0.80f, 0.20f }); tableAttendee.setWidthPercentage(100); tableAttendee.getDefaultCell().setBorderWidth(0); tableAttendee.getDefaultCell().setPadding(0); PdfPCell cellAttendee = new PdfPCell(); cellAttendee.setPadding(0); cellAttendee.setBorder(0); /* * Name of the attendee */ PdfPCell cell = new PdfPCell(); cell.setBorderWidth(0); cell.setPadding(padding * 0.4f); cell.setPaddingBottom(padding * 1.5f); cell.addElement(new Phrase(att.getName(), nameFont)); cell.addElement(new Phrase(att.getContact(), contactFont)); Phrase phraseStrut = new Phrase(" "); phraseStrut.setLeading(leading * 0.6f); /* * Aspects of this attendee */ if (!attMgmt.getAspects(att).isEmpty() && showAttendeesAspects) { String separator = ""; cell.addElement(phraseStrut); cell.addElement(new Phrase(translate("Assigned aspects:") + " ", aspectsTitleFont)); Phrase phraseAspects = new Phrase(); phraseAspects.setLeading(leading); phraseAspects.setFont(aspectsFont); for (Aspect asp : attMgmt.getAspects(att)) { phraseAspects.add(new Chunk( separator + asp.getDirective() + " (" + asp.getCategory() + ")", aspectsFont)); separator = " "; } cell.addElement(phraseAspects); } /* * Preparation time of the attendee */ Duration prepTime; if (protocol != null) { prepTime = protMgmt.getAttendeePrepTime(att, protocol); } else { prepTime = null; } if (prepTime != null && showAttendeesPrepTime) { cell.addElement(phraseStrut); cell.addElement(new Phrase(translate("Preparation time:") + " ", aspectsTitleFont)); Phrase phrasePrepTime = new Phrase(); phrasePrepTime.setLeading(leading); phrasePrepTime.setFont(aspectsFont); String prep = ""; String separator = ""; if (prepTime.getDays() > 0) { prep = prep + prepTime.getDays() + " " + translate("Day(s)"); separator = ", "; } if (prepTime.getHours() > 0) { prep = prep + separator + prepTime.getHours() + " " + translate("Hour(s)"); separator = ", "; } if (prepTime.getMinutes() >= 0) { prep = prep + separator + prepTime.getMinutes() + " " + translate("Minute(s)"); separator = ", "; } phrasePrepTime.add(new Chunk(prep, aspectsFont)); cell.addElement(phrasePrepTime); } /* * Signature field for the attendee */ if (showSignatureFields) { cell.addElement(phraseStrut); cell.addElement(phraseStrut); cell.addElement(phraseStrut); cell.addElement(phraseStrut); cell.addElement(new Phrase("________________________________________", aspectsFont)); cell.addElement( new Phrase(translate("Date, Signature") + " (" + att.getName() + ")", aspectsFont)); } tableAttendee.addCell(cell); /* * role of the attendee */ cell = new PdfPCell(new Phrase(translate(att.getRole().toString()), roleFont)); cell.setBorderWidth(0); cell.setPadding(padding * 0.4f); cell.setPaddingTop(padding * 1.1f); cell.setHorizontalAlignment(Element.ALIGN_RIGHT); tableAttendee.addCell(cell); cellAttendee.addElement(tableAttendee); cellAttendee.setPadding(0); cellAttendee.setPaddingLeft(padding); cellAttendee.setPaddingRight(padding); if (grayBackground == true) { grayBackground = false; cellAttendee.setBackgroundColor(cellBackground); } else { grayBackground = true; } /* * Add attendee to the list */ tableAttendees.addCell(cellAttendee); } } PdfPCell cellBottomLine = new PdfPCell(); cellBottomLine.setPadding(0); cellBottomLine.setBorderWidth(0); cellBottomLine.setBorderWidthBottom(1); cellBottomLine.setBorderColor(cellBackground); tableAttendees.addCell(cellBottomLine); /* * Add the attendee base table to the document */ pdfDoc.add(tableAttendees); } catch (Exception e) { /* * Not part of unit testing because this exception is only thrown if * an internal error occurs. */ throw new ExportException(translate("Cannot put attendees into the PDF document.")); } }
From source file:org.revager.export.ProtocolPDFExporter.java
License:Open Source License
/** * Write the findings to the protocol.//from w w w . j a v a 2 s. c o m * * @param protocol * the protocol * @param attachExtRefs * true if the external references should be part of the protocol * * @throws ExportException * If an error occurs while writing the findings to the protocol */ protected void writeFindings(Protocol protocol, boolean attachExtRefs) throws ExportException { try { /* * Define fonts */ Font plainFontTitle = new Font( BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.EMBEDDED), 9, Font.NORMAL, Color.WHITE); Font boldFontTitle = new Font( BaseFont.createFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1252, BaseFont.EMBEDDED), 10, Font.NORMAL, Color.WHITE); Font plainFont = new Font(BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.EMBEDDED), 10); Font boldFont = new Font( BaseFont.createFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1252, BaseFont.EMBEDDED), 10); Font italicFont = new Font( BaseFont.createFont(BaseFont.HELVETICA_OBLIQUE, BaseFont.CP1252, BaseFont.EMBEDDED), 10); Font boldItalicFont = new Font( BaseFont.createFont(BaseFont.HELVETICA_BOLDOBLIQUE, BaseFont.CP1252, BaseFont.EMBEDDED), 10); /* * Write findings */ PdfPTable tableBase = new PdfPTable(1); tableBase.setWidthPercentage(100); tableBase.setSplitRows(false); tableBase.getDefaultCell().setBorderWidth(0); tableBase.getDefaultCell().setPadding(0); for (Finding f : protocol.getFindings()) { tableBase.addCell(createVerticalStrut(PDFTools.cmToPt(0.7f), 1)); PdfPCell cellFinding = new PdfPCell(); cellFinding.setBorderColor(Color.GRAY); cellFinding.setBorderWidth(0.5f); PdfPTable tableTitle = new PdfPTable(3); tableTitle.setWidthPercentage(100); /* * Print title of the finding */ Phrase phraseTitle = new Phrase(translate("Finding") + " " + f.getId(), boldFontTitle); PdfPCell cellTitle = new PdfPCell(phraseTitle); cellTitle.setBackgroundColor(bgColorTitle); cellTitle.setBorderWidth(0); cellTitle.setPadding(padding); cellTitle.setPaddingBottom(padding * 1.5f); cellTitle.setHorizontalAlignment(Element.ALIGN_LEFT); tableTitle.addCell(cellTitle); /* * Print severity of the finding */ Phrase phraseSeverity = new Phrase(findMgmt.getLocalizedSeverity(f), plainFontTitle); PdfPCell cellSeverity = new PdfPCell(phraseSeverity); cellSeverity.setBackgroundColor(bgColorTitle); cellSeverity.setBorderWidth(0); cellSeverity.setPadding(padding); cellSeverity.setPaddingTop(padding * 1.1f); cellSeverity.setHorizontalAlignment(Element.ALIGN_CENTER); tableTitle.addCell(cellSeverity); /* * Print the meeting date and time of the finding */ String meetingDate = sdfDate.format(protocol.getDate().getTime()); PdfPCell cellMeeting = new PdfPCell(new Phrase(meetingDate, plainFontTitle)); cellMeeting.setBackgroundColor(bgColorTitle); cellMeeting.setBorderWidth(0); cellMeeting.setPadding(padding); cellMeeting.setPaddingTop(padding * 1.1f); cellMeeting.setHorizontalAlignment(Element.ALIGN_RIGHT); tableTitle.addCell(cellMeeting); /* * Description */ Phrase phraseDesc = new Phrase(f.getDescription(), plainFont); phraseDesc.setLeading(leading); PdfPCell cellDesc = new PdfPCell(); cellDesc.addElement(phraseDesc); cellDesc.setBorderWidth(0); cellDesc.setPadding(padding); cellDesc.setColspan(3); tableTitle.addCell(cellDesc); cellFinding.addElement(tableTitle); /* * List point used for lists */ Phrase phraseListPoint = new Phrase("", boldFont); phraseListPoint.setLeading(leading * 0.93f); PdfPCell cellListPoint = new PdfPCell(); cellListPoint.addElement(phraseListPoint); cellListPoint.setBorderWidth(0); cellListPoint.setPadding(padding); cellListPoint.setPaddingLeft(padding * 2); /* * Table of references */ if (f.getReferences().size() > 0 || (f.getExternalReferences().size() > 0 && attachExtRefs == true)) { PdfPTable tableRefs = new PdfPTable(new float[] { 0.04f, 0.96f }); tableRefs.setWidthPercentage(100); PdfPCell cellRefTitle = new PdfPCell(new Phrase(translate("References:"), boldItalicFont)); cellRefTitle.setBorderWidth(0); cellRefTitle.setPadding(padding); cellRefTitle.setPaddingTop(padding * 3); cellRefTitle.setPaddingBottom(0); cellRefTitle.setColspan(2); tableRefs.addCell(cellRefTitle); /* * Textual references */ for (String ref : f.getReferences()) { Phrase phraseRef = new Phrase(ref, plainFont); phraseRef.setLeading(leading); PdfPCell cellRef = new PdfPCell(); cellRef.addElement(phraseRef); cellRef.setBorderWidth(0); cellRef.setPadding(padding); tableRefs.addCell(cellListPoint); tableRefs.addCell(cellRef); } /* * External file references */ if (attachExtRefs == true) { for (File ref : findMgmt.getExtReferences(f)) { Phrase phraseRef = new Phrase(); phraseRef.add(new Chunk(ref.getName(), plainFont)); phraseRef.add(new Chunk(" (" + translate("File Attachment") + ")", italicFont)); phraseRef.setFont(plainFont); phraseRef.setLeading(leading); PdfPCell cellRef = new PdfPCell(); cellRef.addElement(phraseRef); cellRef.setBorderWidth(0); cellRef.setPadding(padding); tableRefs.addCell(cellListPoint); cellRef.setCellEvent(new PDFCellEventExtRef(pdfWriter, ref)); tableRefs.addCell(cellRef); } } cellFinding.addElement(tableRefs); } /* * Table of aspects */ if (f.getAspects().size() > 0) { PdfPTable tableAspects = new PdfPTable(new float[] { 0.04f, 0.96f }); tableAspects.setWidthPercentage(100); PdfPCell cellAspTitle = new PdfPCell(new Phrase(translate("Aspects:"), boldItalicFont)); cellAspTitle.setBorderWidth(0); cellAspTitle.setPadding(padding); cellAspTitle.setPaddingTop(padding * 3); cellAspTitle.setPaddingBottom(0); cellAspTitle.setColspan(2); tableAspects.addCell(cellAspTitle); for (String asp : f.getAspects()) { Phrase phraseAsp = new Phrase(asp, plainFont); phraseAsp.setLeading(leading); PdfPCell cellAsp = new PdfPCell(); cellAsp.addElement(phraseAsp); cellAsp.setBorderWidth(0); cellAsp.setPadding(padding); tableAspects.addCell(cellListPoint); tableAspects.addCell(cellAsp); } cellFinding.addElement(tableAspects); } /* * Vertical strut at the end of the table */ PdfPTable tableStrut = new PdfPTable(1); tableStrut.setWidthPercentage(100); tableStrut.addCell(createVerticalStrut(padding, 1)); cellFinding.addElement(tableStrut); tableBase.addCell(cellFinding); } pdfDoc.add(tableBase); } catch (Exception e) { /* * Not part of unit testing because this exception is only thrown if * an internal error occurs. */ throw new ExportException(translate("Cannot put findings into the PDF document.")); } }
From source file:org.tellervo.desktop.print.BasicBoxLabel.java
License:Open Source License
public void generateBoxLabel(OutputStream output) { try {/*from w w w . j av a 2s . c o m*/ PdfWriter writer = PdfWriter.getInstance(document, output); document.setPageSize(PageSize.LETTER); document.open(); cb = writer.getDirectContent(); // Set basic metadata document.addAuthor("Tellervo"); document.addSubject("Tellervo Box Labels"); PdfPTable table = new PdfPTable(2); table.setTotalWidth(495f); table.setLockedWidth(true); for (WSIBox b : boxlist) { Paragraph p = new Paragraph(); p.add(new Chunk(b.getTitle() + Chunk.NEWLINE, labelTitleFont)); p.add(new Chunk(Chunk.NEWLINE + b.getComments() + Chunk.NEWLINE, bodyFont)); p.add(new Chunk(App.getLabName() + Chunk.NEWLINE + Chunk.NEWLINE, bodyFont)); p.add(new Chunk(this.getBarCode(b), 0, 0, true)); PdfPCell cell = new PdfPCell(p); cell.setPaddingLeft(15f); cell.setPaddingRight(15f); cell.setBorderColor(Color.LIGHT_GRAY); table.addCell(cell); } PdfPCell cell = new PdfPCell(new Paragraph()); cell.setBorderColor(Color.LIGHT_GRAY); table.addCell(cell); document.add(table); document.close(); /*float top = document.top(15); int row = 1; for(int i = 0; i< boxlist.size(); i = i+2) { log.debug("Document left : "+document.left()); log.debug("Document right: "+document.right()); log.debug("Top : "+top); // Column 1 ColumnText ct1a = new ColumnText(cb); ct1a.setSimpleColumn(document.left(), top-210, 368, top, 20, Element.ALIGN_LEFT); ColumnText ct1b = new ColumnText(cb); ct1b.setSimpleColumn(document.left(), top-70, document.left()+206, top-150, 20, Element.ALIGN_LEFT); try{ WSIBox b1 = boxlist.get(i); ct1a.addText(getTitlePDF(b1)); ct1a.go(); ct1b.addElement(getBarCode(b1)); ct1b.go(); } catch (Exception e) { log.debug("Failed writing box label in left column where i="+i); } // Column 2 ColumnText ct2a = new ColumnText(cb); ct2a.setSimpleColumn(306, top-210, document.right(), top, 20, Element.ALIGN_LEFT); ColumnText ct2b = new ColumnText(cb); ct2b.setSimpleColumn(306, top-70, 512, top-80, 20, Element.ALIGN_LEFT); try{ WSIBox b2 = boxlist.get(i+1); ct2a.addText(getTitlePDF(b2)); ct2a.go(); ct2b.addElement(getBarCode(b2)); ct2b.go(); } catch (Exception e) { log.debug("Failed writing box label in right column where i="+i); //e.printStackTrace(); } // Column 2 /* ColumnText ct2 = new ColumnText(cb); ct2.setSimpleColumn(370, //llx top-100, //lly document.right(0), //urx top+15, //ury 20, //leading Element.ALIGN_RIGHT //alignment ); try{ WSIBox b2 = boxlist.get(i+1); ct2.addText(getTitlePDF(b2)); ct2.addElement(getBarCode(b2)); ct2.go(); } catch (Exception e) { log.debug("Failed writing box label where i="+i+1); } */ /* top = top-160; if(row==5) { top = document.top(15); document.newPage(); row=1; } else { row++; } }*/ } catch (DocumentException de) { System.err.println(de.getMessage()); } // Close the document document.close(); }
From source file:oscar.oscarEncounter.oscarConsultationRequest.pageUtil.ConsultationPDFCreator.java
License:Open Source License
private PdfPTable createReplyHeader() { PdfPCell cell; PdfPTable infoTable = new PdfPTable(1); cell = new PdfPCell(new Phrase("", headerFont)); cell.setBorder(0);// w w w . j a v a 2 s .c o m cell.setPaddingLeft(25); infoTable.addCell(cell); cell.setPhrase(new Phrase(getResource("msgConsReq"), bigBoldFont)); cell.setPadding(0); cell.setBorder(0); cell.setColspan(2); cell.setHorizontalAlignment(Element.ALIGN_CENTER); infoTable.addCell(cell); if (reqFrm.pwb.equals("1")) { cell.setPhrase(new Phrase(getResource("msgPleaseReplyPatient"), boldFont)); } else if (org.oscarehr.common.IsPropertiesOn.isMultisitesEnable()) { cell.setPhrase(new Phrase("", boldFont)); } else { cell.setPhrase(new Phrase(String.format("%s %s %s", getResource("msgPleaseReplyPart1"), clinic.getClinicName(), getResource("msgPleaseReplyPart2")), boldFont)); } infoTable.addCell(cell); // The last cell in the table is extended to the maximum available height; // inserting a blank cell here prevents the last border used to underline text from // being displaced to the bottom of this table. cell.setPhrase(new Phrase(" ", font)); cell.setBorder(0); cell.setColspan(2); infoTable.addCell(cell); return infoTable; }
From source file:oscar.oscarEncounter.oscarConsultationRequest.pageUtil.ConsultationPDFCreator.java
License:Open Source License
/** * Creates a table and populates it with the clinic information for the header. * @return the table produced// w w w . j ava2 s. c o m */ private PdfPTable createClinicInfoHeader() { float[] tableWidths; PdfPCell cell; //tableWidths = new float[]{ 2, 2.5f }; //PdfPTable infoTable = new PdfPTable(tableWidths); PdfPTable infoTable = new PdfPTable(1); infoTable.setWidthPercentage(100); //cell = new PdfPCell(); String letterheadName = null; if (reqFrm.letterheadName != null && reqFrm.letterheadName.startsWith("prog_")) { ProgramDao programDao = (ProgramDao) SpringUtils.getBean("programDao"); Integer programNo = Integer.parseInt(reqFrm.letterheadName.substring(5)); letterheadName = programDao.getProgramName(programNo); } else if (!reqFrm.letterheadName.equals("-1")) { Provider letterheadNameProvider = (reqFrm.letterheadName != null ? new RxProviderData().getProvider(reqFrm.letterheadName) : null); if (letterheadNameProvider != null) letterheadName = letterheadNameProvider.getFirstName() + " " + letterheadNameProvider.getSurname(); } else { letterheadName = clinic.getClinicName(); } //PdfPCell cell; //PdfPTable infoTable = new PdfPTable(1); cell = new PdfPCell(new Phrase(letterheadName, headerFont)); cell.setBorder(0); cell.setPaddingLeft(25); infoTable.addCell(cell); cell.setPhrase(new Phrase((reqFrm.letterheadAddress != null && reqFrm.letterheadAddress.trim().length() > 0 ? String.format("%s", reqFrm.letterheadAddress) : String.format("%s, %s, %s %s", clinic.getClinicAddress(), clinic.getClinicCity(), clinic.getClinicProvince(), clinic.getClinicPostal())), font)); infoTable.addCell(cell); cell.setPhrase(new Phrase(String.format("Tel: %s Fax: %s", (reqFrm.letterheadPhone != null && reqFrm.letterheadPhone.trim().length() > 0 ? reqFrm.letterheadPhone : clinic.getClinicPhone()), (reqFrm.letterheadFax != null && reqFrm.letterheadFax.trim().length() > 0 ? reqFrm.letterheadFax : clinic.getClinicFax())), font)); infoTable.addCell(cell); /* cell.setPhrase(new Phrase(getResource("msgConsReq"), font)); cell.setPadding(0); cell.setBorder(0); cell.setColspan(2); cell.setHorizontalAlignment(Element.ALIGN_CENTER); infoTable.addCell(cell); if (reqFrm.pwb.equals("1")){ cell.setPhrase(new Phrase(getResource("msgPleaseReplyPatient"), boldFont)); } else if (org.oscarehr.common.IsPropertiesOn.isMultisitesEnable()) { cell.setPhrase(new Phrase("", boldFont)); } else { cell.setPhrase(new Phrase( String.format("%s %s %s", getResource("msgPleaseReplyPart1"), clinic.getClinicName(), getResource("msgPleaseReplyPart2")), boldFont)); } infoTable.addCell(cell); */ // The last cell in the table is extended to the maximum available height; // inserting a blank cell here prevents the last border used to underline text from // being displaced to the bottom of this table. cell.setPhrase(new Phrase(" ", font)); cell.setBorder(0); cell.setColspan(2); infoTable.addCell(cell); return infoTable; }
From source file:oscar.oscarLab.ca.all.pageUtil.LabPDFCreator.java
License:Open Source License
private void addLabCategory(String header) throws DocumentException { float[] mainTableWidths = { 5f, 3f, 1f, 3f, 2f, 4f, 2f }; PdfPTable table = new PdfPTable(mainTableWidths); table.setHeaderRows(3);/*from w w w .j a v a 2s .c o m*/ table.setWidthPercentage(100); PdfPCell cell = new PdfPCell(); // category name cell.setPadding(3); cell.setPhrase(new Phrase(" ")); cell.setBorder(0); cell.setColspan(7); table.addCell(cell); cell.setBorder(15); cell.setPadding(3); cell.setColspan(2); cell.setPhrase(new Phrase(header.replaceAll("<br\\s*/*>", "\n"), new Font(bf, 12, Font.BOLD))); table.addCell(cell); cell.setPhrase(new Phrase(" ")); cell.setBorder(0); cell.setColspan(5); table.addCell(cell); // table headers cell.setColspan(1); cell.setBorder(15); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setBackgroundColor(new Color(210, 212, 255)); cell.setPhrase(new Phrase("Test Name(s)", boldFont)); table.addCell(cell); cell.setPhrase(new Phrase("Result", boldFont)); table.addCell(cell); cell.setPhrase(new Phrase("Abn", boldFont)); table.addCell(cell); cell.setPhrase(new Phrase("Reference Range", boldFont)); table.addCell(cell); cell.setPhrase(new Phrase("Units", boldFont)); table.addCell(cell); cell.setPhrase(new Phrase("Date/Time Completed", boldFont)); table.addCell(cell); cell.setPhrase(new Phrase("Status", boldFont)); table.addCell(cell); // add test results int obrCount = handler.getOBRCount(); int linenum = 0; cell.setBorder(12); cell.setBorderColor(Color.BLACK); // cell.setBorderColor(Color.WHITE); cell.setBackgroundColor(new Color(255, 255, 255)); if (handler.getMsgType().equals("MEDVUE")) { //cell.setBackgroundColor(getHighlightColor(linenum)); linenum++; cell.setPhrase(new Phrase(handler.getRadiologistInfo(), boldFont)); cell.setColspan(7); cell.setHorizontalAlignment(Element.ALIGN_LEFT); table.addCell(cell); cell.setPaddingLeft(100); cell.setColspan(7); cell.setHorizontalAlignment(Element.ALIGN_LEFT); cell.setPhrase(new Phrase(handler.getOBXComment(1, 1, 1).replaceAll("<br\\s*/*>", "\n"), font)); table.addCell(cell); } else { for (int j = 0; j < obrCount; j++) { boolean obrFlag = false; int obxCount = handler.getOBXCount(j); for (int k = 0; k < obxCount; k++) { String obxName = handler.getOBXName(j, k); if (!handler.getOBXResultStatus(j, k).equals("TDIS")) { // ensure that the result is a real result if ((!handler.getOBXResultStatus(j, k).equals("DNS") && !obxName.equals("") && handler.getObservationHeader(j, k).equals(header)) || (handler.getMsgType().equals("EPSILON") && handler.getOBXIdentifier(j, k).equals(header) && !obxName.equals("")) || (handler.getMsgType().equals("PFHT") && !obxName.equals("") && handler.getObservationHeader(j, k).equals(header))) { // <<-- DNS only needed for // MDS messages String obrName = handler.getOBRName(j); // add the obrname if necessary if (!obrFlag && !obrName.equals("") && !(obxName.contains(obrName) && obxCount < 2)) { // cell.setBackgroundColor(getHighlightColor(linenum)); linenum++; cell.setPhrase(new Phrase(obrName, boldFont)); cell.setColspan(7); cell.setHorizontalAlignment(Element.ALIGN_LEFT); table.addCell(cell); cell.setColspan(1); obrFlag = true; } // add the obx results and info Font lineFont = new Font(bf, 8, Font.NORMAL, getTextColor(handler.getOBXAbnormalFlag(j, k))); // cell.setBackgroundColor(getHighlightColor(linenum)); linenum++; cell.setHorizontalAlignment(Element.ALIGN_LEFT); cell.setPhrase(new Phrase((obrFlag ? " " : "") + obxName, lineFont)); table.addCell(cell); cell.setPhrase(new Phrase(handler.getOBXResult(j, k).replaceAll("<br\\s*/*>", "\n"), lineFont)); cell.setHorizontalAlignment(Element.ALIGN_RIGHT); table.addCell(cell); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setPhrase(new Phrase( (handler.isOBXAbnormal(j, k) ? handler.getOBXAbnormalFlag(j, k) : "N"), lineFont)); table.addCell(cell); cell.setHorizontalAlignment(Element.ALIGN_LEFT); cell.setPhrase(new Phrase(handler.getOBXReferenceRange(j, k), lineFont)); table.addCell(cell); cell.setPhrase(new Phrase(handler.getOBXUnits(j, k), lineFont)); table.addCell(cell); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setPhrase(new Phrase(handler.getTimeStamp(j, k), lineFont)); table.addCell(cell); cell.setPhrase(new Phrase(handler.getOBXResultStatus(j, k), lineFont)); table.addCell(cell); if (!handler.getMsgType().equals("PFHT")) { // add obx comments if (handler.getOBXCommentCount(j, k) > 0) { // cell.setBackgroundColor(getHighlightColor(linenum)); linenum++; cell.setPaddingLeft(100); cell.setColspan(7); cell.setHorizontalAlignment(Element.ALIGN_LEFT); for (int l = 0; l < handler.getOBXCommentCount(j, k); l++) { cell.setPhrase(new Phrase( handler.getOBXComment(j, k, l).replaceAll("<br\\s*/*>", "\n"), font)); table.addCell(cell); } cell.setPadding(3); cell.setColspan(1); } } // if (DNS) } else if ((handler.getMsgType().equals("EPSILON") && handler.getOBXIdentifier(j, k).equals(header) && obxName.equals("")) || (handler.getMsgType().equals("PFHT") && obxName.equals("") && handler.getObservationHeader(j, k).equals(header))) { // cell.setBackgroundColor(getHighlightColor(linenum)); linenum++; cell.setPaddingLeft(100); cell.setColspan(7); cell.setHorizontalAlignment(Element.ALIGN_LEFT); cell.setPhrase( new Phrase(handler.getOBXResult(j, k).replaceAll("<br\\s*/*>", "\n"), font)); table.addCell(cell); cell.setPadding(3); cell.setColspan(1); } if (handler.getMsgType().equals("PFHT") && !handler.getNteForOBX(j, k).equals("") && handler.getNteForOBX(j, k) != null) { // cell.setBackgroundColor(getHighlightColor(linenum)); linenum++; cell.setPaddingLeft(100); cell.setColspan(7); cell.setHorizontalAlignment(Element.ALIGN_LEFT); cell.setPhrase( new Phrase(handler.getNteForOBX(j, k).replaceAll("<br\\s*/*>", "\n"), font)); table.addCell(cell); cell.setPadding(3); cell.setColspan(1); if (handler.getOBXCommentCount(j, k) > 0) { // cell.setBackgroundColor(getHighlightColor(linenum)); linenum++; cell.setPaddingLeft(100); cell.setColspan(7); cell.setHorizontalAlignment(Element.ALIGN_LEFT); for (int l = 0; l < handler.getOBXCommentCount(j, k); l++) { cell.setPhrase(new Phrase( handler.getOBXComment(j, k, l).replaceAll("<br\\s*/*>", "\n"), font)); table.addCell(cell); } cell.setPadding(3); cell.setColspan(1); } } } else { if (handler.getOBXCommentCount(j, k) > 0) { // cell.setBackgroundColor(getHighlightColor(linenum)); linenum++; cell.setPaddingLeft(100); cell.setColspan(7); cell.setHorizontalAlignment(Element.ALIGN_LEFT); for (int l = 0; l < handler.getOBXCommentCount(j, k); l++) { cell.setPhrase(new Phrase( handler.getOBXComment(j, k, l).replaceAll("<br\\s*/*>", "\n"), font)); table.addCell(cell); } cell.setPadding(3); cell.setColspan(1); } } // if (!handler.getOBXResultStatus(j, k).equals("TDIS")) } if (!handler.getMsgType().equals("PFHT")) { // add obr comments if (handler.getObservationHeader(j, 0).equals(header)) { cell.setColspan(7); cell.setHorizontalAlignment(Element.ALIGN_LEFT); for (int k = 0; k < handler.getOBRCommentCount(j); k++) { // the obrName should only be set if it has not been // set already which will only have occured if the // obx name is "" or if it is the same as the obr name if (!obrFlag && handler.getOBXName(j, 0).equals("")) { // cell.setBackgroundColor(getHighlightColor(linenum)); linenum++; cell.setPhrase(new Phrase(handler.getOBRName(j), boldFont)); table.addCell(cell); obrFlag = true; } // cell.setBackgroundColor(getHighlightColor(linenum)); linenum++; cell.setPaddingLeft(100); cell.setPhrase( new Phrase(handler.getOBRComment(j, k).replaceAll("<br\\s*/*>", "\n"), font)); table.addCell(cell); cell.setPadding(3); } cell.setColspan(1); } } } // for (j) } // if (isMEDVUE) document.add(table); }
From source file:tk.diginspect.main.SoOFSignatories.java
public void createPDF() { doc = new Document(PageSize.A4); try {/* w ww. java 2 s . c o m*/ String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/RFO"; File dir = new File(path); if (!dir.exists()) { dir.mkdirs(); } String strFinalname, strFilename2, strFilenames; String filename = sp.getString("EstablishmentName", null); String strfilename = filename.replaceAll("\\W+", "-"); String inspector = sp.getString("FDRO1", null); String inspby = inspector.replaceAll("\\W+", "-"); File file = new File(dir, strfilename + "-" + strFile + "-" + inspby + ".pdf"); strFilename2 = strfilename + "-" + strFile + "-" + inspby; strFilenames = strFilename2 + ".pdf"; strFinalname = path + "/" + strFilenames; savePreferences("fileName", strFinalname); FileOutputStream fOut = new FileOutputStream(file); PdfWriter.getInstance(doc, fOut); doc.open(); FDALetterhead(); // General Info Table float[] table1columnWidths = { 1f, 1f, 1f, 1f }; PdfPTable table1 = new PdfPTable(table1columnWidths); table1.setWidthPercentage(110f); table1.setSpacingAfter(20f); insertCell(table1, "INSPECTION REPORT", Element.ALIGN_CENTER, 4, "#8EBAFF", 1, 0); insertCell(table1, "Name of Establishment", Element.ALIGN_LEFT, 1, "#8EBAFF", 1, 0); insertCell(table1, sp.getString("EstablishmentName", "N/A"), Element.ALIGN_LEFT, 3, "#FFFFFF", 1, 0); insertCell(table1, "Plant/Office Address", Element.ALIGN_LEFT, 1, "#8EBAFF", 1, 0); insertCell(table1, sp.getString("PlantOfficeAddress", "N/A"), Element.ALIGN_LEFT, 3, "#FFFFFF", 1, 0); insertCell(table1, "Warehouse Address", Element.ALIGN_LEFT, 1, "#8EBAFF", 1, 0); insertCell(table1, sp.getString("WarehouseAddress", "N/A"), Element.ALIGN_LEFT, 3, "#FFFFFF", 1, 0); insertCell(table1, "Owner", Element.ALIGN_LEFT, 1, "#8EBAFF", 1, 0); insertCell(table1, sp.getString("Owner", "N/A"), Element.ALIGN_LEFT, 3, "#FFFFFF", 1, 0); insertCell(table1, "Telephone Number", Element.ALIGN_LEFT, 1, "#8EBAFF", 1, 0); insertCell(table1, sp.getString("TelNumber", "N/A"), Element.ALIGN_LEFT, 3, "#FFFFFF", 1, 0); insertCell(table1, "Fax No", Element.ALIGN_LEFT, 1, "#8EBAFF", 1, 0); insertCell(table1, sp.getString("FaxNumber", "N/A"), Element.ALIGN_LEFT, 3, "#FFFFFF", 1, 0); insertCell(table1, "Classification", Element.ALIGN_LEFT, 1, "#8EBAFF", 1, 0); String Classification = sp.getString("MainClass", null) + ", " + sp.getString("SecClass", null) + ", " + sp.getString("ThirdClass", null) + ", " + sp.getString("FourthClass", ""); insertCell(table1, Classification, Element.ALIGN_LEFT, 3, "#FFFFFF", 1, 0); insertCell(table1, "Product/s:", Element.ALIGN_LEFT, 1, "#8EBAFF", 1, 0); insertCell(table1, sp.getString("Products", "N/A"), Element.ALIGN_LEFT, 3, "#FFFFFF", 1, 0); insertCell(table1, "Manner of Notification", Element.ALIGN_LEFT, 1, "#8EBAFF", 1, 0); insertCell(table1, sp.getString("Notification", "N/A"), Element.ALIGN_LEFT, 3, "#FFFFFF", 1, 0); insertCell(table1, "Purpose of Inspection", Element.ALIGN_LEFT, 1, "#8EBAFF", 1, 0); insertCell(table1, sp.getString("Inspection", "N/A"), Element.ALIGN_LEFT, 3, "#FFFFFF", 1, 0); insertCell(table1, "Registered Pharmacist / Authorized Representative / Person", Element.ALIGN_LEFT, 4, "#8EBAFF", 1, 0); insertCell(table1, "Name", Element.ALIGN_LEFT, 1, "#8EBAFF", 1, 0); insertCell(table1, sp.getString("PharmacistName", "N/A"), Element.ALIGN_LEFT, 3, "#FFFFFF", 1, 0); insertCell(table1, "Reg. No. (PRC-ID)", Element.ALIGN_LEFT, 1, "#8EBAFF", 1, 0); insertCell(table1, sp.getString("PrcID", "N/A"), Element.ALIGN_LEFT, 3, "#FFFFFF", 1, 0); insertCell(table1, "Date Issued", Element.ALIGN_LEFT, 1, "#8EBAFF", 1, 0); insertCell(table1, sp.getString("PrcDateIssued", "N/A"), Element.ALIGN_LEFT, 3, "#FFFFFF", 1, 0); insertCell(table1, "Validity", Element.ALIGN_LEFT, 1, "#8EBAFF", 1, 0); insertCell(table1, sp.getString("PrcValidity", "N/A"), Element.ALIGN_LEFT, 3, "#FFFFFF", 1, 0); insertCell(table1, "Position", Element.ALIGN_LEFT, 1, "#8EBAFF", 1, 0); insertCell(table1, sp.getString("PharmacistPosition", "N/A"), Element.ALIGN_LEFT, 3, "#FFFFFF", 1, 0); insertCell(table1, "Person/s Interviewed", Element.ALIGN_LEFT, 1, "#8EBAFF", 1, 0); insertCell(table1, sp.getString("InterviewedName", "N/A"), Element.ALIGN_LEFT, 3, "#FFFFFF", 1, 0); insertCell(table1, "Position", Element.ALIGN_LEFT, 1, "#8EBAFF", 1, 0); insertCell(table1, sp.getString("InterviewedPosition", "N/A"), Element.ALIGN_LEFT, 3, "#FFFFFF", 1, 0); insertCell(table1, "License to Operate", Element.ALIGN_LEFT, 4, "#8EBAFF", 1, 0); insertCell(table1, "Number", Element.ALIGN_LEFT, 1, "#8EBAFF", 1, 0); insertCell(table1, sp.getString("LTONumber", "N/A"), Element.ALIGN_LEFT, 3, "#FFFFFF", 1, 0); insertCell(table1, "Renewal", Element.ALIGN_LEFT, 1, "#8EBAFF", 1, 0); insertCell(table1, sp.getString("LTORenewalDate", "N/A"), Element.ALIGN_LEFT, 3, "#FFFFFF", 1, 0); insertCell(table1, "Validity", Element.ALIGN_LEFT, 1, "#8EBAFF", 1, 0); insertCell(table1, sp.getString("LTOValidity", "N/A"), Element.ALIGN_LEFT, 3, "#FFFFFF", 1, 0); insertCell(table1, "Payment of Appropriate Fee", Element.ALIGN_LEFT, 4, "#8EBAFF", 1, 0); insertCell(table1, "OR Number", Element.ALIGN_LEFT, 1, "#8EBAFF", 1, 0); insertCell(table1, sp.getString("ORNum", "N/A"), Element.ALIGN_LEFT, 3, "#FFFFFF", 1, 0); insertCell(table1, "Amount", Element.ALIGN_LEFT, 1, "#8EBAFF", 1, 0); insertCell(table1, "Php " + sp.getString("ORAmount", "N/A"), Element.ALIGN_LEFT, 3, "#FFFFFF", 1, 0); insertCell(table1, "Date of Payment", Element.ALIGN_LEFT, 0, "#8EBAFF", 1, 0); insertCell(table1, sp.getString("ORDate", "N/A"), Element.ALIGN_LEFT, 3, "#FFFFFF", 1, 0); insertCell(table1, "RSN", Element.ALIGN_LEFT, 1, "#8EBAFF", 1, 1); insertCell(table1, sp.getString("RSN", "N/A"), Element.ALIGN_LEFT, 3, "#FFFFFF", 1, 1); doc.add(table1); footer(); // 2nd Page doc.newPage(); FDALetterhead(); PdfPTable table2 = new PdfPTable(1); table2.setWidthPercentage(110f); table2.setSpacingAfter(20f); insertCell(table2, "Observation Findings:", Element.ALIGN_LEFT, 1, "#8EBAFF", 1, 0); insertCell1(table2, sp.getString("ObservationFindings", ""), 1, 1, 600f); doc.add(table2); footer(); // 3rd Page doc.newPage(); FDALetterhead(); PdfPTable table3 = new PdfPTable(1); table3.setWidthPercentage(110f); table3.setSpacingAfter(20f); insertCell(table3, "Directives:", Element.ALIGN_LEFT, 1, "#8EBAFF", 1, 1); nested(table3, 0.1f, 2f, R.string.directives1, sp.getBoolean("Directives1", false), Element.ALIGN_LEFT); nested(table3, 0.1f, 2f, R.string.directives2, sp.getBoolean("Directives2", false), Element.ALIGN_LEFT); nested(table3, 0.2f, 2f, R.string.directives3, sp.getBoolean("Directives3", false), Element.ALIGN_RIGHT); nested(table3, 0.2f, 2f, R.string.directives4, sp.getBoolean("Directives4", false), Element.ALIGN_RIGHT); nested(table3, 0.1f, 2f, R.string.directives5, sp.getBoolean("Directives5", false), Element.ALIGN_LEFT); nested(table3, 0.1f, 2f, R.string.directives6, sp.getBoolean("Directives6", false), Element.ALIGN_LEFT); nested(table3, 0.1f, 2f, R.string.directives7, sp.getBoolean("Directives7", false), Element.ALIGN_LEFT); String Directives8 = getResources().getString(R.string.directives8); PdfPCell cellDirectives8 = new PdfPCell(new Paragraph(Font.TIMES_ROMAN, Directives8)); cellDirectives8.setPaddingLeft(50); cellDirectives8.setPaddingTop(5); cellDirectives8.setPaddingBottom(5); cellDirectives8.setPaddingRight(5); cellDirectives8.setBorderWidthTop(0); cellDirectives8.setBorderWidthBottom(0); table3.addCell(cellDirectives8); String Directives = sp.getString("Directives8", null); boolean Directives9 = false, Directives10 = false; if (Directives.equals(R.string.directives9)) { Directives9 = true; Directives10 = false; } else if (Directives.equals(R.string.directives10)) { Directives9 = false; Directives10 = true; } else { Directives9 = false; Directives10 = false; } nested(table3, 0.3f, 2f, R.string.directives9, Directives9, Element.ALIGN_RIGHT); nested(table3, 0.3f, 2f, R.string.directives10, Directives10, Element.ALIGN_RIGHT); insertCell(table3, "Inspected By:", Element.ALIGN_CENTER, 1, "#8EBAFF", 1, 0); PdfPTable signature1 = new PdfPTable(2); sig(signature1, "FDRO1"); sig(signature1, "FDRO2"); insertCell(signature1, sp.getString("FDRO1", null), Element.ALIGN_CENTER, 1, "#FFFFFF", 0, 0); insertCell(signature1, sp.getString("FDRO2", null), Element.ALIGN_CENTER, 1, "#FFFFFF", 0, 0); insertCell(signature1, "Food-Drug Regulation Officer", Element.ALIGN_CENTER, 1, "#FFFFFF", 1, 0); insertCell(signature1, "Food-Drug Regulation Officer", Element.ALIGN_CENTER, 1, "#FFFFFF", 1, 0); insertCell(signature1, "Date: " + dateStarted, Element.ALIGN_LEFT, 1, "#FFFFFF", 1, 0); insertCell(signature1, "Time: " + timeS, Element.ALIGN_LEFT, 1, "#FFFFFF", 1, 0); sig(signature1, "EstRep1"); sig(signature1, "EstRep2"); insertCell(signature1, sp.getString("EstRep1", null), Element.ALIGN_CENTER, 1, "#FFFFFF", 0, 0); insertCell(signature1, sp.getString("EstRep2", null), Element.ALIGN_CENTER, 1, "#FFFFFF", 0, 0); insertCell(signature1, "Establishments Representative", Element.ALIGN_CENTER, 1, "#FFFFFF", 1, 1); insertCell(signature1, "Establishments Representative", Element.ALIGN_CENTER, 1, "#FFFFFF", 1, 1); PdfPCell nesthousing1 = new PdfPCell(signature1); table3.addCell(nesthousing1); doc.add(table3); footer(); // 4th Page doc.newPage(); FDALetterhead(); PdfPTable table4 = new PdfPTable(1); table4.setWidthPercentage(110f); table4.setSpacingAfter(20f); insertCell(table4, "(FDA USE ONLY)", Element.ALIGN_CENTER, 1, "#8EBAFF", 1, 1); insertCell(table4, "Compliance Made by the Company", Element.ALIGN_LEFT, 1, "#FFFFFF", 0, 0); nested(table4, 0.1f, 2f, R.string.CAPA, false, Element.ALIGN_LEFT); nested(table4, 0.2f, 2f, R.string.Accepted, false, Element.ALIGN_RIGHT); nested(table4, 0.2f, 2f, R.string.NotAccepted, false, Element.ALIGN_RIGHT); insertCell(table4, "Recommendation (to Licensing) :", Element.ALIGN_LEFT, 1, "#FFFFFF", 0, 0); insertCell1(table4, "", 0, 0, 100f); PdfPTable signature2 = new PdfPTable(2); insertCell1(signature2, "", 0, 0, 50f); insertCell1(signature2, "", 0, 0, 50f); insertCell(signature2, "Print Name & Signature of FDRO/s", Element.ALIGN_CENTER, 1, "#FFFFFF", 1, 0); insertCell(signature2, "Date", Element.ALIGN_CENTER, 1, "#FFFFFF", 1, 0); insertCell(signature2, "Reviewed by:", Element.ALIGN_LEFT, 2, "#8EBAFF", 1, 1); insertCell1(signature2, "", 0, 0, 50f); insertCell1(signature2, "", 0, 0, 50f); insertCell(signature2, "Print Name & Signature of Team Leader/Supervisor", Element.ALIGN_CENTER, 1, "#FFFFFF", 1, 1); insertCell(signature2, "Date", Element.ALIGN_CENTER, 1, "#FFFFFF", 1, 1); PdfPCell nesthousing2 = new PdfPCell(signature2); table4.addCell(nesthousing2); doc.add(table4); footer(); } catch (DocumentException de) { Log.e("PDFCreator", "DocumentException:" + de); } catch (FileNotFoundException e) { Log.e("PDFCreator", "ioException:" + e); } finally { doc.close(); } }
From source file:uk.ac.ox.oucs.vle.resources.PDFWriter.java
License:Educational Community License
private PdfPCell headCell(String name, Font font) { PdfPCell pdfCell = new PdfPCell(new Phrase(name, font)); pdfCell.setMinimumHeight(font.getSize() * 2f); pdfCell.setHorizontalAlignment(Element.ALIGN_LEFT); pdfCell.setVerticalAlignment(Element.ALIGN_CENTER); pdfCell.setPaddingBottom(font.getSize() * 0.5f); pdfCell.setPaddingTop(font.getSize() * 0.5f); pdfCell.setPaddingLeft(font.getSize()); pdfCell.setPaddingRight(font.getSize()); return pdfCell; }