Haifisch7734

Untitled

Jun 21st, 2015
274
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.99 KB | None | 0 0
  1.    public String generateOperationsReport(List<Operation> operations, Account account) throws PDFNotGeneratedException {
  2.         try {
  3.             Date date = new Date();
  4.             PDDocument document = new PDDocument();
  5.             PDPage page = new PDPage();
  6.             document.addPage(page);
  7.             User user = account.getOwner();
  8.             PDFont font = PDType1Font.COURIER_BOLD;
  9.            
  10.             PDPageContentStream contentStream = new PDPageContentStream(document, page);
  11.             contentStream.beginText();
  12.             contentStream.setFont(font, 12);
  13.             contentStream.moveTextPositionByAmount(10, 760);
  14.             contentStream.drawString(user.getName() + " " + user.getLastName());
  15.             contentStream.moveTextPositionByAmount(0, -10);
  16.             contentStream.drawString(account.getAccountNr());
  17.             contentStream.moveTextPositionByAmount(0, -10);
  18.             contentStream.drawString(account.getCardNr());
  19.             contentStream.moveTextPositionByAmount(0, -10);
  20.             contentStream.drawString(date.toString());
  21.            
  22.             for (int ii = 0; ii < operations.size(); ii++) {
  23.                 if ((ii % 15) == 0) {
  24.                     contentStream.endText();
  25.                     contentStream.close();
  26.                     page = new PDPage();
  27.                     document.addPage(page);
  28.                     contentStream = new PDPageContentStream(document, page);
  29.                     contentStream.beginText();
  30.                     contentStream.setFont(font, 12);
  31.                     contentStream.moveTextPositionByAmount(10, 750);
  32.                 }
  33.                 contentStream.drawString(operations.get(ii).getName());
  34.                 contentStream.moveTextPositionByAmount(250, 0);
  35.                 long cash = operations.get(ii).getCash();
  36.                 contentStream.drawString(cashConverter.convertToString(cash));
  37.                 contentStream.moveTextPositionByAmount(200, 0);
  38.                 if (operations.get(ii).getAccountTo() != null) {
  39.                     contentStream.drawString(operations.get(ii).getAccountTo().getAccountNr());
  40.                 }
  41.                 contentStream.moveTextPositionByAmount(-450, -10);
  42.                 contentStream.drawString(operations.get(ii).getType().getName());
  43.                 contentStream.moveTextPositionByAmount(200, 0);
  44.                 contentStream.drawString(operations.get(ii).getCreationDate().toString());
  45.                 contentStream.moveTextPositionByAmount(-200, -20);
  46.             }
  47.             contentStream.endText();
  48.             contentStream.close();
  49.             String filename = "ATMReport_" + account.getAccountNr() + ".pdf";
  50.            
  51.             document.save(filename);
  52.             document.close();
  53.             return filename;
  54.         } catch (IOException | COSVisitorException ex) {
  55.             Logger.getLogger(PDFGenerator.class.getName()).log(Level.SEVERE, null, ex);
  56.             throw new PDFNotGeneratedException();
  57.         }
  58.        
  59.     }
Advertisement
Add Comment
Please, Sign In to add comment