Public feed
#723411
ServletOutputStream servletOutput = response.getOutputStream(); ByteArrayOutputStream outputArray = new ByteArrayOutputStream(); int pageOffset = 0; ArrayList master = new ArrayList(); int f = 0; Document document = null; PdfCopy writer = null; ByteArrayOutputStream baos; PdfStamper stamper; AcroFields form; for(int i = 0; i < purchaseItem.getTicketGuests().size(); i++) { TicketGuest ticketGuest = (TicketGuest) purchaseItem.getTicketGuests().get(i); /* reader = new PdfReader(templatePath + "eTicketForm.pdf"); //baos = new ByteArrayOutputStream(); stamper = new PdfStamper(reader, baos); form = stamper.getAcroFields(); */ PdfReader reader = new PdfReader(templatePath + "eTicketForm.pdf"); baos = new ByteArrayOutputStream(); stamper = new PdfStamper(reader, baos); form = stamper.getAcroFields(); DateFormat dateOnly = new SimpleDateFormat("M/dd/yyyy"); DateFormat eventStartDateLong = new SimpleDateFormat("EEEEE, MMMMM d, yyyy"); DateFormat eventDoorTime = new SimpleDateFormat("h:mm a"); form.setField("ticketBubbleLeftTitle01", "Event:"); form.setField("ticketBubbleLeftTitle02", "Date:"); form.setField("ticketBubbleLeftTitle03", "Cost:"); form.setField("ticketBubbleLeftTitle04", "Order ID:"); form.setField("ticketBubbleLeftTitle05", "Ticket ID"); form.setField("ticketBubbleRightTitle01", "Event:"); form.setField("ticketBubbleRightTitle02", "Date:"); form.setField("ticketBubbleRightTitle03", "Cost:"); form.setField("ticketBubbleRightTitle04", "Order ID:"); form.setField("ticketBubbleRightTitle05", "Ticket ID"); form.setField("ticketBubbleLeft01", ticketEvent.getName()); form.setField("ticketBubbleLeft02", dateOnly.format(ticketEvent.getEventStart())); form.setField("ticketBubbleLeft03", roundMoney((purchaseItem.getFinalPrice() / purchaseItem.getQuantity()))); form.setField("ticketBubbleLeft04", "" + order.getID()); form.setField("ticketBubbleLeft05", "" + ticketGuest.getID()); form.setField("ticketBubbleRight01", ticketEvent.getName()); form.setField("ticketBubbleRight02", dateOnly.format(ticketEvent.getEventStart())); form.setField("ticketBubbleRight03", roundMoney((purchaseItem.getFinalPrice() / purchaseItem.getQuantity()))); form.setField("ticketBubbleRight04", "" + order.getID()); form.setField("ticketBubbleRight05", "" + ticketGuest.getID()); form.setField("promoterName", " " + ticketEvent.getPartner().getCompany() + " presents..."); form.setField("eventName", ticketEvent.getName()); form.setField("eventDate", eventStartDateLong.format(ticketEvent.getEventStart())); form.setField("eventPriceAndAge", roundMoney((purchaseItem.getFinalPrice() / purchaseItem.getQuantity())) + " / " + ticketEvent.getMinimalAge().getName()); form.setField("eventDoorTime", "Doors open at " + eventDoorTime.format(ticketEvent.getEventStart())); form.setField("venueName", ticketEvent.getVenueNameDisplay()); form.setField("venueAddress", ticketEvent.getVenueAddressDisplay().getAddress1() + " " + ticketEvent.getVenueAddressDisplay().getAddress2() + " " + ticketEvent.getVenueAddressDisplay().getCity()); form.setField("eventInfoLine", ticketEvent.getVenueAddressDisplay().getPhone()); form.setField("ticketFooter01", "Tickets and more event information at"); form.setField("ticketFooter02", "www.vitalculture.com | www.vitalhiphop.com"); form.setField("barCode01UPC", "*"+ ticketGuest.getUpcHash() +"*"); form.setField("barCode01String", "" + ticketGuest.getUpcHash()); form.setField("dateOfPurchase", dateOnly.format(order.getProcessTime())); form.setField("ticketNumber", "" + ticketGuest.getID()); form.setField("orderNumber", "" + order.getID()); form.setField("purchasedBy", order.getCustomer().getFirstName() + " " + order.getCustomer().getLastName()); form.setField("barCode02UPC", "*"+ ticketGuest.getUpcHash() +"*"); form.setField("barCode02String", "" + ticketGuest.getUpcHash()); //stamp.set stamper.setFormFlattening(true); stamper.close(); reader = new PdfReader(baos.toByteArray()); reader.consolidateNamedDestinations(); // we retrieve the total number of pages int n = reader.getNumberOfPages(); List bookmarks = SimpleBookmark.getBookmark(reader); if (bookmarks != null) { if (pageOffset != 0) SimpleBookmark.shiftPageNumbers(bookmarks, pageOffset, null); master.addAll(bookmarks); } pageOffset += n; if (f == 0) { // step 1: creation of a document-object document = new Document(reader.getPageSizeWithRotation(1)); // step 2: we create a writer that listens to the document writer = new PdfCopy(document, outputArray); // step 3: we open the document document.open(); } // step 4: we add content PdfImportedPage page; for (int x = 0; x < n; ) { ++x; page = writer.getImportedPage(reader, x); writer.addPage(page); } PRAcroForm newForm = reader.getAcroForm(); if (newForm != null) writer.copyAcroForm(reader); f++; //reader = new PdfReader(baos.toByteArray()); //copy.addPage(copy.getImportedPage(reader, 1)); } //ByteArrayOutputStream baos = new ByteArrayOutputStream(); response.setHeader("Expires", "0"); response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0"); response.setHeader("Pragma", "public"); response.setContentType("application/pdf"); response.setContentLength(outputArray.size()); //outputArray.writeTo(servletOutput); servletOutput.write(outputArray.toByteArray()); servletOutput.flush(); document.close();