Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public String generateOperationsReport(List<Operation> operations, Account account) throws PDFNotGeneratedException {
- try {
- Date date = new Date();
- PDDocument document = new PDDocument();
- PDPage page = new PDPage();
- document.addPage(page);
- User user = account.getOwner();
- PDFont font = PDType1Font.COURIER_BOLD;
- PDPageContentStream contentStream = new PDPageContentStream(document, page);
- contentStream.beginText();
- contentStream.setFont(font, 12);
- contentStream.moveTextPositionByAmount(10, 760);
- contentStream.drawString(user.getName() + " " + user.getLastName());
- contentStream.moveTextPositionByAmount(0, -10);
- contentStream.drawString(account.getAccountNr());
- contentStream.moveTextPositionByAmount(0, -10);
- contentStream.drawString(account.getCardNr());
- contentStream.moveTextPositionByAmount(0, -10);
- contentStream.drawString(date.toString());
- for (int ii = 0; ii < operations.size(); ii++) {
- if ((ii % 15) == 0) {
- contentStream.endText();
- contentStream.close();
- page = new PDPage();
- document.addPage(page);
- contentStream = new PDPageContentStream(document, page);
- contentStream.beginText();
- contentStream.setFont(font, 12);
- contentStream.moveTextPositionByAmount(10, 750);
- }
- contentStream.drawString(operations.get(ii).getName());
- contentStream.moveTextPositionByAmount(250, 0);
- long cash = operations.get(ii).getCash();
- contentStream.drawString(cashConverter.convertToString(cash));
- contentStream.moveTextPositionByAmount(200, 0);
- if (operations.get(ii).getAccountTo() != null) {
- contentStream.drawString(operations.get(ii).getAccountTo().getAccountNr());
- }
- contentStream.moveTextPositionByAmount(-450, -10);
- contentStream.drawString(operations.get(ii).getType().getName());
- contentStream.moveTextPositionByAmount(200, 0);
- contentStream.drawString(operations.get(ii).getCreationDate().toString());
- contentStream.moveTextPositionByAmount(-200, -20);
- }
- contentStream.endText();
- contentStream.close();
- String filename = "ATMReport_" + account.getAccountNr() + ".pdf";
- document.save(filename);
- document.close();
- return filename;
- } catch (IOException | COSVisitorException ex) {
- Logger.getLogger(PDFGenerator.class.getName()).log(Level.SEVERE, null, ex);
- throw new PDFNotGeneratedException();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment