public void AddVoucherImage(string jobIdLocation, Document pdf, AdjustmentLetter letter, IFileReader fileReader) { var secondPage = pdf.Pages.Add(); var drn = letter.AdjustedVoucher.voucher.documentReferenceNumber; var fs = fileReader.LoadImage(jobIdLocation, letter.ProcessingDate, drn); if (fs != null) { secondPage.Resources.Images.Add(fs); secondPage.Contents.Add(new Operator.GSave()); //// Create Rectangle and Matrix objects var rectangle = new Rectangle(ReportConstants.LowerLeftX, ReportConstants.LowerLeftY, ReportConstants.UpperRightX, ReportConstants.UpperRightY); var matrix = new Aspose.Pdf.DOM.Matrix(new[] { rectangle.URX - rectangle.LLX, 0, 0, rectangle.URY - rectangle.LLY, rectangle.LLX, rectangle.LLY }); //// Using ConcatenateMatrix (concatenate matrix) operator: defines how image must be placed secondPage.Contents.Add(new Operator.ConcatenateMatrix(matrix)); var ximage = secondPage.Resources.Images[secondPage.Resources.Images.Count]; //// Using Do operator: this operator draws image secondPage.Contents.Add(new Operator.Do(ximage.Name)); //// Using GRestore operator: this operator restores graphics state secondPage.Contents.Add(new Operator.GRestore()); } else { Log.Warning("Image not found for voucher {@voucher} to attach to letter", new { jobIdentifier = letter.JobIdentifier, processingDate = letter.ProcessingDate, DRN = drn }); } }
public void AddTransactionReport(Document pdf, AdjustmentLetter letter) { var page = pdf.Pages.Add(); page.PageInfo.Margin.Left = 35; page.PageInfo.Margin.Right = 10; page.PageInfo.Width = Aspose.Pdf.Generator.PageSize.A4Width; var report = MapVoucherToReport(letter); var dataTable = CreateTransactionLines(report); BuildReportFromDataTable(dataTable, page, report); }
public void WhenGenerateReportCalled_ThenCreateReportPage() { var letterGenerator = new LetterGenerator(config.Object, aspose.Object); var voucher = TestData_VoucherInfo(); var letter = new AdjustmentLetter { AdjustedVoucher = voucher }; letter.Vouchers.Add(voucher); var pdf = new Document(); var count = pdf.Pages.Count; letterGenerator.AddTransactionReport(pdf, letter); Assert.AreEqual(count + 1, pdf.Pages.Count); }
public Report MapVoucherToReport(AdjustmentLetter letter) { var voucher = letter.AdjustedVoucher; var headerRow = new HeaderRow { BusinessDate = voucher.voucher.processingDate.ToShortDateString(), ReportOn = DateTime.Today.ToShortDateString(), Page = "1" }; var voucherList = letter.Vouchers.Select(vouch => new TableRow { AccountNo = vouch.voucher.accountNumber.ToString(), Ad = vouch.voucher.auxDom, Amount = FormatAmount(vouch.voucher.amount, "Decimal"), Bsb = vouch.voucher.bsbNumber, Bch = vouch.voucherBatch.scannedBatchNumber, NegBsb = vouch.voucherBatch.collectingBank, Drcr = vouch.voucher.documentType.ToString(), TransCode = vouch.voucher.transactionCode, Ean = vouch.voucher.extraAuxDom, Din = vouch.voucher.documentReferenceNumber }).ToList(); var totalCredAmount = letter.Vouchers.Where(x => x.voucher.documentType.ToString().ToUpper() == "CR").Sum(x => Convert.ToDecimal(x.voucher.amount)); var totalDebAmount = letter.Vouchers.Where(x => x.voucher.documentType.ToString().ToUpper() == "DR").Sum(x => Convert.ToDecimal(x.voucher.amount)); var footerRow = new FooterRow { TotalCreditAmount = totalCredAmount.ToString(CultureInfo.InvariantCulture), TotalDebitAmount = totalDebAmount.ToString(CultureInfo.InvariantCulture), CreditCount = letter.Vouchers.Count(x => x.voucher.documentType.ToString().ToUpper() == "CR").ToString(), DebitCount = letter.Vouchers.Count(x => x.voucher.documentType.ToString().ToUpper() == "DR").ToString() }; var report = new Report { HeaderInfo = headerRow, VoucherRows = voucherList, FooterInfo = footerRow }; return(report); }
public void WhenAddImageCalled_ThenCreatePdfPage() { var letterGenerator = new LetterGenerator(config.Object, aspose.Object); var voucher = TestData_VoucherInfo(); var letter = new AdjustmentLetter { AdjustedVoucher = voucher }; letter.Vouchers.Add(voucher); var jobIdLocation = config.Object.BitLockerLocation; var pdf = new Document(); var count = pdf.Pages.Count; letterGenerator.AddVoucherImage(jobIdLocation, pdf, letter, fileReader.Object); Assert.AreEqual(count + 1, pdf.Pages.Count); }
private AdjustmentLetter GetTestData_Letter() { var letter = new AdjustmentLetter(); var voucherInfo = GetTestData_VoucherInfo(); letter.PdfFilename = "Hello.pdf"; letter.AdjustedVoucher = voucherInfo; letter.Vouchers.Add(voucherInfo); return letter; }
public Report MapVoucherToReport(AdjustmentLetter letter) { var voucher = letter.AdjustedVoucher; var headerRow = new HeaderRow { BusinessDate = voucher.voucher.processingDate.ToShortDateString(), ReportOn = DateTime.Today.ToShortDateString(), Page = "1" }; var voucherList = letter.Vouchers.Select(vouch => new TableRow { AccountNo = vouch.voucher.accountNumber.ToString(), Ad = vouch.voucher.auxDom, Amount = FormatAmount(vouch.voucher.amount, "Decimal"), Bsb = vouch.voucher.bsbNumber, Bch = vouch.voucherBatch.scannedBatchNumber, NegBsb = vouch.voucherBatch.collectingBank, Drcr = vouch.voucher.documentType.ToString(), TransCode = vouch.voucher.transactionCode, Ean = vouch.voucher.extraAuxDom, Din = vouch.voucher.documentReferenceNumber }).ToList(); var totalCredAmount = letter.Vouchers.Where(x => x.voucher.documentType.ToString().ToUpper() == "CR").Sum(x => Convert.ToDecimal(x.voucher.amount)); var totalDebAmount = letter.Vouchers.Where(x => x.voucher.documentType.ToString().ToUpper() == "DR").Sum(x => Convert.ToDecimal(x.voucher.amount)); var footerRow = new FooterRow { TotalCreditAmount = totalCredAmount.ToString(CultureInfo.InvariantCulture), TotalDebitAmount = totalDebAmount.ToString(CultureInfo.InvariantCulture), CreditCount = letter.Vouchers.Count(x => x.voucher.documentType.ToString().ToUpper() == "CR").ToString(), DebitCount = letter.Vouchers.Count(x => x.voucher.documentType.ToString().ToUpper() == "DR").ToString() }; var report = new Report { HeaderInfo = headerRow, VoucherRows = voucherList, FooterInfo = footerRow }; return report; }