public void beginDraw() { // long t0 = System.currentTimeMillis(); if (document == null) { document = new Document(new Rectangle(width, height)); try { if (file != null) { // BufferedOutputStream output = new BufferedOutputStream(stream, 16384); output = new BufferedOutputStream(new FileOutputStream(file), 16384); } else if (output == null) { throw new RuntimeException( "PGraphicsPDF requires a path " + "for the location of the output file."); } writer = PdfWriter.getInstance(document, output); document.open(); content = writer.getDirectContent(); // template = content.createTemplate(width, height); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException("Problem saving the PDF file."); } // System.out.println("beginDraw fonts " + (System.currentTimeMillis() - t)); g2 = content.createGraphics(width, height, getMapper()); // g2 = template.createGraphics(width, height, mapper); } // System.out.println("beginDraw " + (System.currentTimeMillis() - t0)); super.beginDraw(); }
public PdfOrderGuideSwiss(HttpServletRequest pRequest, String pCatalogLocaleCd) { super(); if (pCatalogLocaleCd == null) { mCatalogLocaleCd = "fr_CH"; } else { mCatalogLocaleCd = pCatalogLocaleCd; } mCatalogLocale = new Locale(pCatalogLocaleCd); mRequest = pRequest; try { mFormatter = ClwI18nUtil.getInstance(pRequest, mCatalogLocaleCd, -1); } catch (Exception exc) { } ; if (mFormatter == null) { try { mFormatter = ClwI18nUtil.getInstance(pRequest, "fr_CH", -1); } catch (Exception exc) { } ; } try { initFontsUnicode(); } catch (Exception exc) { exc.printStackTrace(); } }
private Phrase doEncode(String nowBy) { BaseFont bf; Font font = null; Phrase p = null; try { bf = BaseFont.createFont("MHei-Medium", "UniCNS-UCS2-H", BaseFont.NOT_EMBEDDED); font = new Font(bf, 10, 0); p = new Phrase(nowBy, font); } catch (Exception e) { e.printStackTrace(); } return p; }
/** Call to explicitly go to the next page from within a single draw(). */ public void nextPage() { PStyle savedStyle = getStyle(); g2.dispose(); try { // writer.setPageEmpty(false); // maybe useful later document.newPage(); // is this bad if no addl pages are made? } catch (Exception e) { e.printStackTrace(); } if (textMode == SHAPE) { g2 = content.createGraphicsShapes(width, height); } else if (textMode == MODEL) { g2 = content.createGraphics(width, height, mapper); } style(savedStyle); // should there be a beginDraw/endDraw in here? }
public void init(HttpServletRequest pRequest, String pCatalogLocaleCd) { mCatalogLocale = new Locale(pCatalogLocaleCd); mRequest = pRequest; try { mFormatter = ClwI18nUtil.getInstance(pRequest, pCatalogLocaleCd, -1); } catch (Exception exc) { } ; if (mFormatter == null) { try { mFormatter = ClwI18nUtil.getInstance(pRequest, "fr_CH", -1); } catch (Exception exc) { } ; } try { initFontsUnicode(); } catch (Exception exc) { exc.printStackTrace(); } }
/** * Process the specified HTTP request, and create the corresponding HTTP response (or forward to * another web component that will create it). Return an <code>ActionForward</code> instance * describing where and how control should be forwarded, or <code>null</code> if the response has * already been completed. * * @param mapping The ActionMapping used to select this instance * @param form The optional ActionForm bean for this request (if any) * @param request The HTTP request we are processing * @param response The HTTP response we are creating * @exception Exception if business logic throws an exception */ public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { // Extract attributes we will need MessageResources messages = getResources(request); // save errors ActionMessages errors = new ActionMessages(); // START check for login (security) if (!SecurityService.getInstance().checkForLogin(request.getSession(false))) { return (mapping.findForward("welcome")); } // END check for login (security) // START get id of current project from either request, attribute, or cookie // id of project from request String projectId = null; projectId = request.getParameter("projectViewId"); // check attribute in request if (projectId == null) { projectId = (String) request.getAttribute("projectViewId"); } // id of project from cookie if (projectId == null) { projectId = StandardCode.getInstance().getCookie("projectViewId", request.getCookies()); } // default project to last if not in request or cookie if (projectId == null) { java.util.List results = ProjectService.getInstance().getProjectList(); ListIterator iterScroll = null; for (iterScroll = results.listIterator(); iterScroll.hasNext(); iterScroll.next()) {} iterScroll.previous(); Project p = (Project) iterScroll.next(); projectId = String.valueOf(p.getProjectId()); } Integer id = Integer.valueOf(projectId); // END get id of current project from either request, attribute, or cookie // get project Project p = ProjectService.getInstance().getSingleProject(id); // get user (project manager) User u = UserService.getInstance() .getSingleUserRealName( StandardCode.getInstance().getFirstName(p.getPm()), StandardCode.getInstance().getLastName(p.getPm())); // START process pdf try { PdfReader reader = new PdfReader("C://templates/CL01_001.pdf"); // the template // save the pdf in memory ByteArrayOutputStream pdfStream = new ByteArrayOutputStream(); // the filled-in pdf PdfStamper stamp = new PdfStamper(reader, pdfStream); // stamp.setEncryption(true, "pass", "pass", PdfWriter.AllowCopy | PdfWriter.AllowPrinting); AcroFields form1 = stamp.getAcroFields(); Date cDate = new Date(); Integer month = cDate.getMonth(); Integer day = cDate.getDate(); Integer year = cDate.getYear() + 1900; String[] monthName = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }; // set the field values in the pdf form // form1.setField("", projectId) form1.setField("currentdate", monthName[month] + " " + day + ", " + year); form1.setField( "firstname", StandardCode.getInstance().noNull(p.getContact().getFirst_name())); form1.setField("pm", p.getPm()); form1.setField("emailpm", u.getWorkEmail1()); if (u.getWorkPhoneEx() != null && u.getWorkPhoneEx().length() > 0) { // ext present form1.setField( "phonepm", StandardCode.getInstance().noNull(u.getWorkPhone()) + " ext " + StandardCode.getInstance().noNull(u.getWorkPhoneEx())); } else { // no ext present form1.setField("phonepm", StandardCode.getInstance().noNull(u.getWorkPhone())); } form1.setField("faxpm", StandardCode.getInstance().noNull(u.getLocation().getFax_number())); form1.setField("postalpm", StandardCode.getInstance().printLocation(u.getLocation())); // START add images // if(u.getPicture() != null && u.getPicture().length() > 0) { // PdfContentByte over; // Image img = Image.getInstance("C:/Program Files (x86)/Apache Software // Foundation/Tomcat 7.0/webapps/logo/images/" + u.getPicture()); // img.setAbsolutePosition(200, 200); // over = stamp.getOverContent(1); // over.addImage(img, 54, 0,0, 65, 47, 493); // } // END add images form1.setField("productname", StandardCode.getInstance().noNull(p.getProduct())); form1.setField("project", p.getNumber() + p.getCompany().getCompany_code()); form1.setField("description", StandardCode.getInstance().noNull(p.getProductDescription())); form1.setField("additional", p.getProjectRequirements()); // get sources and targets StringBuffer sources = new StringBuffer(""); StringBuffer targets = new StringBuffer(""); if (p.getSourceDocs() != null) { for (Iterator iterSource = p.getSourceDocs().iterator(); iterSource.hasNext(); ) { SourceDoc sd = (SourceDoc) iterSource.next(); sources.append(sd.getLanguage() + " "); if (sd.getTargetDocs() != null) { for (Iterator iterTarget = sd.getTargetDocs().iterator(); iterTarget.hasNext(); ) { TargetDoc td = (TargetDoc) iterTarget.next(); if (!td.getLanguage().equals("All")) targets.append(td.getLanguage() + " "); } } } } form1.setField("source", sources.toString()); form1.setField("target", targets.toString()); form1.setField( "start", (p.getStartDate() != null) ? DateFormat.getDateInstance(DateFormat.SHORT).format(p.getStartDate()) : ""); form1.setField( "due", (p.getDueDate() != null) ? DateFormat.getDateInstance(DateFormat.SHORT).format(p.getDueDate()) : ""); if (p.getCompany().getCcurrency().equalsIgnoreCase("USD")) { form1.setField( "cost", (p.getProjectAmount() != null) ? "$ " + StandardCode.getInstance().formatDouble(p.getProjectAmount()) : ""); } else { form1.setField( "cost", (p.getProjectAmount() != null) ? "€ " + StandardCode.getInstance() .formatDouble(p.getProjectAmount() / p.getEuroToUsdExchangeRate()) : ""); } // stamp.setFormFlattening(true); stamp.close(); // write to client (web browser) response.setHeader( "Content-disposition", "attachment; filename=" + p.getNumber() + p.getCompany().getCompany_code() + "-Order-Confirmation" + ".pdf"); OutputStream os = response.getOutputStream(); pdfStream.writeTo(os); os.flush(); } catch (Exception e) { System.err.println("PDF Exception:" + e.getMessage()); throw new RuntimeException(e); } // END process pdf // Forward control to the specified success URI return (mapping.findForward("Success")); }
private void drawOGHeader( Document document, UserShopForm sForm, String pImageName, boolean personal) throws DocumentException { // add the logo try { Image i = Image.getInstance(pImageName); float x = document.leftMargin(); float y = document.getPageSize().getHeight() - i.getHeight() - 5; i.setAbsolutePosition(x, y); document.add(i); } catch (Exception e) { e.printStackTrace(); } if (catalogOnly) { return; } // unfortuanately this means we are limited to PDF rendering only. // get the user's personal info PdfPTable personalInfo; if (personal) { personalInfo = getPersonalized(sForm); } else { personalInfo = getNonPersonalized(sForm); } if (null != sForm.getAppUser().getUserAccount() && null != sForm.getAppUser().getUserAccount().getSkuTag()) { String t = sForm.getAppUser().getUserAccount().getSkuTag().getValue(); if (t != null && t.length() > 0) { mSkuTag = t; } } // Display the contact info PdfPTable contactInfo = new PdfPTable(2); contactInfo.setWidthPercentage(50); contactInfo.setWidths(sizes); contactInfo.getDefaultCell().setBorder(borderType); contactInfo.getDefaultCell().setHorizontalAlignment(PdfPCell.ALIGN_LEFT); String orderOnlineStr = ClwI18nUtil.getMessage(mRequest, "shop.og.text.orderOnLine:", null); contactInfo.addCell(makePhrase(orderOnlineStr + " ", smallHeading, false)); contactInfo.addCell( makePhrase( sForm.getAppUser().getUserStore().getStorePrimaryWebAddress().getValue(), smallHeading, true)); ContactUsInfo contact = null; if (sForm.getAppUser().getContactUsList().size() == 1) { contact = (ContactUsInfo) sForm.getAppUser().getContactUsList().get(0); } String orderFaxNumber = null, bscdesc = null; if (sForm.getAppUser().getSite().getBSC() != null && sForm.getAppUser().getSite().getBSC().getFaxNumber() != null && sForm.getAppUser().getSite().getBSC().getFaxNumber().getPhoneNum() != null) { orderFaxNumber = sForm.getAppUser().getSite().getBSC().getFaxNumber().getPhoneNum(); bscdesc = sForm.getAppUser().getSite().getBSC().getBusEntityData().getLongDesc(); } if (orderFaxNumber == null && contact != null) { orderFaxNumber = contact.getFax(); } if (orderFaxNumber != null) { String faxOrderStr = ClwI18nUtil.getMessage(mRequest, "shop.og.text.faxOrder:", null); contactInfo.addCell(makePhrase(faxOrderStr + " ", smallHeading, false)); contactInfo.addCell(makePhrase(orderFaxNumber, smallHeading, true)); } if (null != bscdesc && bscdesc.length() > 0) { // if there is a BSC descripton set, then show // that information. PdfPCell cell = new PdfPCell(new Paragraph(bscdesc, smallHeading)); cell.disableBorderSide(PdfPCell.LEFT); cell.disableBorderSide(PdfPCell.RIGHT); cell.disableBorderSide(PdfPCell.TOP); cell.disableBorderSide(PdfPCell.BOTTOM); cell.setColspan(2); cell.setPaddingTop(6); contactInfo.addCell(cell); } else { // otherwise show the standard contact us information // request for dmsi - dhl for eric. durval 11/1/2005. if (contact != null) { contactInfo.addCell(makePhrase(" ", smallHeading, false)); contactInfo.addCell(makePhrase(" ", smallHeading, true)); String contactUsStr = ClwI18nUtil.getMessage(mRequest, "shop.og.text.contactUs", null); contactInfo.addCell(makePhrase(contactUsStr + " ", smallHeading, false)); contactInfo.addCell(makePhrase("", smallHeading, true)); String phoneStr = ClwI18nUtil.getMessage(mRequest, "shop.og.text.phone:", null); contactInfo.addCell(makePhrase(phoneStr + " ", smallHeading, false)); contactInfo.addCell( makePhrase( "" + contact.getPhone() + " " + contact.getCallHours(), smallHeading, true)); String emailStr = ClwI18nUtil.getMessage(mRequest, "shop.og.text.email:", null); contactInfo.addCell(makePhrase(emailStr + " ", smallHeading, false)); contactInfo.addCell(makePhrase(contact.getEmail(), smallHeading, true)); } } // make the two tables into one PdfPTable wholeTable = new PdfPTable(2); wholeTable.setWidthPercentage(100); wholeTable.setWidths(halves); wholeTable.getDefaultCell().setBorder(borderType); wholeTable.addCell(personalInfo); wholeTable.addCell(contactInfo); document.add(wholeTable); String ogcomments = ""; if (null != sForm.getAppUser().getSite() && null != sForm.getAppUser().getSite().getComments()) { ogcomments = sForm.getAppUser().getSite().getComments().getValue(); } if (null == ogcomments || ogcomments.length() == 0) { if (null != sForm.getAppUser().getUserAccount()) { ogcomments = sForm.getAppUser().getUserAccount().getComments().getValue(); } } // add the comments if there are any if (ogcomments != null && ogcomments.length() > 0) { document.add(makeBlankLine()); String commentsStr = ClwI18nUtil.getMessage(mRequest, "shop.og.text.comments:", null); document.add(makePhrase(commentsStr + " " + ogcomments, smallHeading, true)); } document.add(makeBlankLine()); String commentsStr = ClwI18nUtil.getMessage(mRequest, "shop.og.text.comments:", null); document.add( makePhrase( commentsStr + " " + "__________________________________________" + "__________________________________________" + "__________", smallHeading, true)); document.add( makePhrase( "__________" + "__________________________________________" + "__________________________________________" + "__________", smallHeading, true)); document.add( makePhrase( "__________" + "__________________________________________" + "__________________________________________" + "__________", smallHeading, true)); // Add an order guide note in the next page if a note is present. if (null != sForm.getAppUser().getUserAccount() && null != sForm.getAppUser().getUserAccount().getOrderGuideNote()) { String t = sForm.getAppUser().getUserAccount().getOrderGuideNote().getValue(); if (t != null && t.length() > 0) { document.newPage(); pageNumber = pageNumber + 1; // document.add(makeBlankLine()); document.add(makePhrase(t, smallHeading, true)); } } PdfPTable sort = new PdfPTable(1); sort.setWidthPercentage(100); sort.getDefaultCell().setHorizontalAlignment(PdfPCell.ALIGN_RIGHT); sort.getDefaultCell().setBorder(borderType); if (sForm.getOrderBy() == Constants.ORDER_BY_CATEGORY) { String sortedByCategoryStr = ClwI18nUtil.getMessage(mRequest, "shop.og.text.sortedBy:Category", null); sort.addCell(makePhrase(sortedByCategoryStr + " ", smallHeading, false)); } else if (sForm.getOrderBy() == Constants.ORDER_BY_CUST_SKU) { String sortedByOurSkuNumStr = ClwI18nUtil.getMessage(mRequest, "shop.og.text.sortedBy:OurSkuNum", null); sort.addCell(makePhrase(sortedByOurSkuNumStr, smallHeading, false)); } else { String sortedByProductNameStr = ClwI18nUtil.getMessage(mRequest, "shop.og.text.sortedBy:ProductName", null); sort.addCell(makePhrase(sortedByProductNameStr, smallHeading, false)); } document.add(sort); }
// utility function to make an item Element. private Table makeItemElement(ShoppingCartItemData pItm) throws DocumentException { Table itmTbl = new PTable(mColumnCount); itmTbl.setWidth(100); itmTbl.setWidths(itmColumnWidth); itmTbl.getDefaultCell().setBorderColor(java.awt.Color.black); itmTbl.getDefaultCell().setVerticalAlignment(Cell.ALIGN_TOP); itmTbl.setOffset(0); itmTbl.setBorder(Table.NO_BORDER); if (!catalogOnly) { String t0 = ""; if (pItm.getIsaInventoryItem()) { t0 = "i"; } if (null != mSiteData && mSiteData.isAnInventoryAutoOrderItem(pItm.getProduct().getProductId())) { t0 += "a"; } Cell tpc0 = new Cell(makePhrase(t0, small, true)); if (!pItm.getIsaInventoryItem()) { tpc0.setBorder(0); } itmTbl.addCell(tpc0); } Cell tpc01 = new Cell(makePhrase("", normal, true)); itmTbl.addCell(tpc01); String t = ""; if (pItm.getProduct().isPackProblemSku()) { t += "*"; } if (t.length() > 0) t += " "; Cell tpc1 = new Cell(makePhrase(t + pItm.getActualSkuNum(), normal, true)); itmTbl.addCell(tpc1); itmTbl.addCell(makePhrase(pItm.getProduct().getCatalogProductShortDesc(), normal, true)); if (mShowSize) { itmTbl.addCell(makePhrase(pItm.getProduct().getSize(), normal, true)); } // itmTbl.addCell(makePhrase(pItm.getProduct().getPack(), normal, true)); // itmTbl.addCell(makePhrase(pItm.getProduct().getUom(), normal, true)); // itmTbl.addCell(makePhrase(pItm.getProduct().getManufacturerName(),normal,true)); if (mShowPrice) { BigDecimal price = new BigDecimal(pItm.getPrice()); String priceStr = ""; try { priceStr = mFormatter.priceFormatWithoutCurrency(price); } catch (Exception exc) { exc.printStackTrace(); } Cell pcell = new Cell(makePhrase(priceStr, normal, true)); pcell.setHorizontalAlignment(Element.ALIGN_RIGHT); itmTbl.addCell(pcell); } if (catalogOnly) { if (pItm.getProduct() != null && pItm.getProduct().getCatalogDistrMapping() != null && Utility.isTrue(pItm.getProduct().getCatalogDistrMapping().getStandardProductList())) { String yStr = ClwI18nUtil.getMessage(mRequest, "shoppingItems.text.y", null); itmTbl.addCell(makePhrase(yStr, normal, true)); } else { String nStr = ClwI18nUtil.getMessage(mRequest, "shoppingItems.text.n", null); itmTbl.addCell(makePhrase(nStr, normal, true)); } } if (!catalogOnly) { // BigDecimal amount = new BigDecimal(pItm.getAmount()); itmTbl.addCell(makePhrase("", normal, true)); } return itmTbl; }