public IActionResult GetReport()
        {
            var report = new StiReport();

            //Load and add font to the resources
            var fileContent = System.IO.File.ReadAllBytes(StiNetCoreHelper.MapPath(this, "Fonts/Roboto-Black.ttf"));
            var resource    = new StiResource("Roboto-Black", "Roboto-Black", false, StiResourceType.FontTtf, fileContent, false);

            report.Dictionary.Resources.Add(resource);

            //Add resource font to the font collection
            StiFontCollection.AddResourceFont(resource.Name, resource.Content, "ttf", resource.Alias);

            //Create a text component
            var dataText = new StiText();

            dataText.ClientRectangle = new RectangleD(1, 1, 3, 2);
            dataText.Text            = "Sample Text";
            dataText.Font            = StiFontCollection.CreateFont("Roboto-Black", 12, FontStyle.Regular);
            dataText.Border.Side     = StiBorderSides.All;

            report.Pages[0].Components.Add(dataText);

            return(StiNetCoreDesigner.GetReportResult(this, report));
        }
        private void Fill()
        {
            try
            {
                var items = new List <string>();

                int index    = 0;
                int selIndex = -1;
                foreach (var fontFamily in StiFontCollection.GetFontFamilies())
                {
                    if (fontFamily.IsStyleAvailable(FontStyle.Regular))
                    {
                        items.Add(fontFamily.Name);
                        if (this.Text == fontFamily.Name)
                        {
                            selIndex = index;
                        }
                        index++;
                    }
                }
                base.Items.Clear();
                base.Items.AddRange(items.ToArray());
                this.SelectedIndex = selIndex;
            }
            catch
            {
            }
        }
Exemple #3
0
        public static Font ChangeFontName(Font font, string newFontName)
        {
            if (string.IsNullOrEmpty(newFontName))
            {
                return(font);
            }

            return(new Font(
                       StiFontCollection.GetFontFamily(newFontName),
                       font.Size,
                       font.Style,
                       font.Unit,
                       font.GdiCharSet,
                       font.GdiVerticalFont));
        }
Exemple #4
0
        public static FontStyle CorrectStyle(string fontName, FontStyle style)
        {
            var        isCustomFont = StiFontCollection.IsCustomFont(fontName);
            FontFamily family       = isCustomFont ? StiFontCollection.GetFontFamily(fontName) : new FontFamily(fontName);

            try
            {
                if (family.IsStyleAvailable(style))
                {
                    return(style);
                }
                else
                {
                    if ((!family.IsStyleAvailable(FontStyle.Bold)) && (style & FontStyle.Bold) > 0)
                    {
                        style -= FontStyle.Bold;
                    }

                    if ((!family.IsStyleAvailable(FontStyle.Italic)) && (style & FontStyle.Italic) > 0)
                    {
                        style -= FontStyle.Italic;
                    }

                    if ((!family.IsStyleAvailable(FontStyle.Strikeout)) && (style & FontStyle.Strikeout) > 0)
                    {
                        style -= FontStyle.Strikeout;
                    }

                    if ((!family.IsStyleAvailable(FontStyle.Underline)) && (style & FontStyle.Underline) > 0)
                    {
                        style -= FontStyle.Underline;
                    }

                    if (!family.IsStyleAvailable(style))
                    {
                        if (family.IsStyleAvailable(FontStyle.Bold))
                        {
                            return(FontStyle.Bold);
                        }
                        if (family.IsStyleAvailable(FontStyle.Italic))
                        {
                            return(FontStyle.Italic);
                        }
                        else if (family.IsStyleAvailable(FontStyle.Underline))
                        {
                            return(FontStyle.Underline);
                        }
                        else if (family.IsStyleAvailable(FontStyle.Strikeout))
                        {
                            return(FontStyle.Strikeout);
                        }
                    }

                    return(style);
                }
            }
            finally
            {
                if (!isCustomFont)
                {
                    family.Dispose();
                }
            }
        }
Exemple #5
0
        public IActionResult PurchaseStatisticsBPrint(SearchFormModel model)
        {
            model.Type = (int)Constants.PurchaseType.B;
            var result         = _unitOfWork.PurchaseStatisticsRepository.GetListOfContractByPurchaseStatisticsCd(model);
            var reportLocation = "./wwwroot/report/PurchaseStatisticsBReport.mrt";
            var report         = new StiReport();

            StiFontCollection.AddFontFile("./wwwroot/assets/fonts/meiryo/Meiryo W53 Regular.ttf", "Meiryo");
            StiFontCollection.AddFontFile("./wwwroot/assets/fonts/meiryo/MeiryoUI-Bold.ttf", "Meiryo UI");
            report.Load(reportLocation);
            report.ReportName      = string.Concat("購入者リスト集計表 B_", DateTime.Now.ToString(Constants.ExactDateTimeFormat));
            report["EventName"]    = $"【{result.EventName}】";
            report["EventAddress"] = result.EventAddress + (string.IsNullOrEmpty(result.EventPlace) ? string.Empty : $"({result.EventPlace})");
            report["PeriodTime"]   = result.PeriodTime;
            report["EventManager"] = result.EventManagerString;
            report["InputPerson"]  = result.InputPersonString;

            var    content = report.Pages["content"];
            var    border = new StiBorder(StiBorderSides.All, Color.Black, 1, StiPenStyle.Solid);
            double top = .2, left = 0, basicWidth = .4, basicHeight = .2;
            var    countDays    = (result.EndDate - result.StartDate).TotalDays + 1;
            var    dynamicWidth = Math.Round(basicWidth + (7 - countDays) * 1.4 / countDays / 3, 2);

            DrawTitleB(content, result.StartDate, result.EndDate, dynamicWidth);

            foreach (var artist in result.ArtistsTotal)
            {
                artist.MaxCell = artist.MaxCell < 6 ? 6 : artist.MaxCell;
                while (artist.MaxCell % 3 != 0)
                {
                    artist.MaxCell++;
                }

                var artistName = new StiText(new RectangleD(left, top, 1.2, Math.Round((double)artist.MaxCell / 3) * .2 + basicHeight))
                {
                    Text          = artist.ArtistName,
                    Font          = new Font("Meiryo", 6),
                    WordWrap      = true,
                    Border        = border,
                    HorAlignment  = StiTextHorAlignment.Center,
                    VertAlignment = StiVertAlignment.Center
                };
                content.Components.Add(artistName);
                left += artistName.Width;

                for (var date = result.StartDate; date.Date <= result.EndDate.Date; date = date.AddDays(1))
                {
                    var cell = result.RowDetails.FirstOrDefault(x => x.ArtistCd == artist.ArtistCd && x.HoldDate.Date.CompareTo(date.Date) == 0);

                    var emptyText = new StiText(new RectangleD(left, top + artistName.Height - basicHeight, dynamicWidth, basicHeight))
                    {
                        Text   = string.Empty,
                        Border = border,
                    };
                    content.Components.Add(emptyText);

                    var numberOfContracts = new StiText(new RectangleD(left + dynamicWidth, top + artistName.Height - basicHeight, dynamicWidth, basicHeight))
                    {
                        Text          = (cell?.NumberOfContracts ?? 0).ToString(),
                        Font          = new Font("Meiryo", 5),
                        WordWrap      = true,
                        Border        = border,
                        HorAlignment  = StiTextHorAlignment.Right,
                        VertAlignment = StiVertAlignment.Center,
                        Margins       = new StiMargins(0, 2, 0, 0)
                    };
                    content.Components.Add(numberOfContracts);

                    var totalPriceOfContracts = new StiText(new RectangleD(left + dynamicWidth * 2, top + artistName.Height - basicHeight, dynamicWidth, basicHeight))
                    {
                        Text                       = (cell?.TotalPriceOfContracts ?? 0).ToString(Constants.CurrencyFormat),
                        Font                       = new Font("Meiryo", 5),
                        Border                     = border,
                        HorAlignment               = StiTextHorAlignment.Right,
                        VertAlignment              = StiVertAlignment.Center,
                        Margins                    = new StiMargins(0, 2, 0, 0),
                        ShrinkFontToFit            = true,
                        ShrinkFontToFitMinimumSize = 4
                    };
                    content.Components.Add(totalPriceOfContracts);

                    double topPrice = top, leftPrice = left;
                    for (var i = 0; i < artist.MaxCell; i++)
                    {
                        var rec   = new RectangleD(leftPrice, topPrice, dynamicWidth, basicHeight);
                        var price = new StiText(rec)
                        {
                            Text          = (cell == null || i >= cell.ContractPrices.Count) ? string.Empty : cell.ContractPrices[i].ToString(Constants.CurrencyFormat),
                            Font          = new Font("Meiryo", 5),
                            WordWrap      = true,
                            Border        = border,
                            HorAlignment  = StiTextHorAlignment.Right,
                            VertAlignment = StiVertAlignment.Center,
                            Margins       = new StiMargins(0, 2, 0, 0)
                        };
                        if ((i + 1) % 3 == 0)
                        {
                            leftPrice -= dynamicWidth * 2;
                            topPrice  += .2;
                        }
                        else
                        {
                            leftPrice += dynamicWidth;
                        }

                        content.Components.Add(price);
                    }

                    left += dynamicWidth * 3;
                }

                var totalContracts = new StiText(new RectangleD(left, top, .6, artistName.Height))
                {
                    Text          = artist.TotalContracts.ToString(),
                    Font          = new Font("Meiryo", 5),
                    WordWrap      = true,
                    Border        = border,
                    HorAlignment  = StiTextHorAlignment.Center,
                    VertAlignment = StiVertAlignment.Center
                };
                content.Components.Add(totalContracts);
                left += .6;

                var subTotal = new StiText(new RectangleD(left, top, 1.1, artistName.Height))
                {
                    Text                       = artist.SubTotal.ToString(Constants.CurrencyFormat),
                    Font                       = new Font("Meiryo", 5),
                    Border                     = border,
                    HorAlignment               = StiTextHorAlignment.Right,
                    VertAlignment              = StiVertAlignment.Center,
                    Margins                    = new StiMargins(0, 2, 0, 0),
                    ShrinkFontToFit            = true,
                    ShrinkFontToFitMinimumSize = 4
                };
                content.Components.Add(subTotal);

                left = 0;
                top += artistName.Height;
            }

            var totalText = new StiText(new RectangleD(left, top, 1.2, basicHeight))
            {
                Text          = "合計",
                Font          = new Font("Meiryo", 6),
                Border        = border,
                HorAlignment  = StiTextHorAlignment.Center,
                VertAlignment = StiVertAlignment.Center
            };

            content.Components.Add(totalText);
            left += 1.2;

            for (var date = result.StartDate; date.Date <= result.EndDate.Date; date = date.AddDays(1))
            {
                var cell      = result.DateTotal.FirstOrDefault(x => date.Date.CompareTo(x.Date.Value.Date) == 0);
                var emptyText = new StiText(new RectangleD(left, top, dynamicWidth, basicHeight))
                {
                    Text   = string.Empty,
                    Border = border,
                };
                content.Components.Add(emptyText);
                left += dynamicWidth;

                var numberOfContracts = new StiText(new RectangleD(left, top, dynamicWidth, basicHeight))
                {
                    Text          = (cell?.TotalContracts ?? 0).ToString(),
                    Font          = new Font("Meiryo", 5),
                    Border        = border,
                    HorAlignment  = StiTextHorAlignment.Right,
                    VertAlignment = StiVertAlignment.Center,
                    Margins       = new StiMargins(0, 2, 0, 0)
                };
                content.Components.Add(numberOfContracts);
                left += dynamicWidth;

                var totalPriceOfContracts = new StiText(new RectangleD(left, top, dynamicWidth, basicHeight))
                {
                    Text                       = (cell?.SubTotal ?? 0).ToString(Constants.CurrencyFormat),
                    Font                       = new Font("Meiryo", 5),
                    Border                     = border,
                    HorAlignment               = StiTextHorAlignment.Right,
                    VertAlignment              = StiVertAlignment.Center,
                    Margins                    = new StiMargins(0, 2, 0, 0),
                    ShrinkFontToFit            = true,
                    ShrinkFontToFitMinimumSize = 4
                };
                content.Components.Add(totalPriceOfContracts);
                left += dynamicWidth;
            }

            var sumNumberOfContracts = new StiText(new RectangleD(left, top, .6, basicHeight))
            {
                Text          = result.ArtistsTotal.Sum(x => x.TotalContracts).ToString(),
                Font          = new Font("Meiryo", 5),
                Border        = border,
                HorAlignment  = StiTextHorAlignment.Center,
                VertAlignment = StiVertAlignment.Center
            };

            content.Components.Add(sumNumberOfContracts);
            left += sumNumberOfContracts.Width;

            var total = new StiText(new RectangleD(left, top, 1.1, basicHeight))
            {
                Text                       = result.ArtistsTotal.Sum(x => x.SubTotal).ToString(Constants.CurrencyFormat),
                Font                       = new Font("Meiryo", 5),
                Border                     = border,
                HorAlignment               = StiTextHorAlignment.Right,
                VertAlignment              = StiVertAlignment.Center,
                Margins                    = new StiMargins(0, 2, 0, 0),
                ShrinkFontToFit            = true,
                ShrinkFontToFitMinimumSize = 4
            };

            content.Components.Add(total);

            return(StiNetCoreReportResponse.PrintAsPdf(report));
        }