protected override int ExecuteArguments(IEnumerable <IArgument> args)
        {
            var srcPath  = args.Get <Src1Argument>();
            var srcType  = args.Get <SrcType1Argument>();
            var src2Path = args.Get <Src2Argument>();
            var src2Type = args.Get <SrcType2Argument>();
            var destPath = args.Get <DestArgument>();
            var dpi      = args.Get <DpiArgument>();
            var width    = args.Get <LineWidthArgument>();
            var margin   = args.Get <MarginArgument>();
            var parPage  = args.Get <ParPageArgument>();

            var pdfContext = new PdfContext
            {
                FileName              = Path.GetFileName(destPath.Argument),
                OutputPath            = Path.GetDirectoryName(destPath.Argument),
                Dpi                   = dpi.GetArgumentAsFloat(),
                IsVisibleSeparateLine = args.Contains <VisibleLineArgument>(),
            };

            var labelContext = new LabelContext
            {
                OutlineWidth = width.GetArgumentAsInt(),
                MarginRatio  = margin.GetArgumentAsFloat(),
                ParPage      = parPage.GetArgumentAsInt(),
            };

            try
            {
                var toAddressList = CsvReader.Read(CsvResolver.ResolveType(srcType), srcPath.Argument)
                                    .Cast <IAddress>();
                var fromAddress = CsvReader.Read(CsvResolver.ResolveType(src2Type), src2Path.Argument)
                                  .Cast <IAddress>().First();

                var labelContents = this.BuildLabelContents(toAddressList, fromAddress);

                var drawer = new PdfDrawer(pdfContext, labelContext);
                drawer.Draw(labelContents);

                this._messenger.Send("PDF の作成を終了しました");

                return(0);
            }
            catch (Exception ex)
            {
                this._messenger.Send("PDF の作成でエラーが発生しました");
                this._messenger.Send(ex.Message);

                return(1);
            }
        }
        public void Build()
        {
            var drawer = new PdfDrawer(this._context.PdfContext, this._context.LabelContext);

            drawer.Draw(this._context.LabelContents);
        }