コード例 #1
0
        protected override void InternalGenerate()
        {
            IColor clrBlack = AppHost.GfxProvider.CreateColor(0x000000);
            IColor clrBlue  = AppHost.GfxProvider.CreateColor(0x0000FF);

            fTitleFont = fWriter.CreateFont("", 22f, true, false, clrBlack);
            fChapFont  = fWriter.CreateFont("", 16f, true, false, clrBlack);
            fTextFont  = fWriter.CreateFont("", 10f, false, false, clrBlack);

            fWriter.AddParagraph(fTitle, fTitleFont, TextAlignment.taLeft);

            var surnames = new StringList();

            surnames.Sorted         = true;
            surnames.DuplicateSolve = DuplicateSolve.Ignore;

            GEDCOMTree   tree   = fBase.Context.Tree;
            var          enumer = tree.GetEnumerator(GEDCOMRecordType.rtIndividual);
            GEDCOMRecord record;

            while (enumer.MoveNext(out record))
            {
                var    iRec      = record as GEDCOMIndividualRecord;
                var    nameParts = GKUtils.GetNameParts(iRec, false);
                string surname   = fBase.Context.Culture.NormalizeSurname(nameParts.Surname, iRec.Sex == GEDCOMSex.svFemale);
                surnames.Add(surname);
            }

            fWriter.AddParagraph(SRLangMan.LS(RLS.LSID_Surnames), fChapFont, TextAlignment.taLeft);
            fWriter.BeginList();
            for (int i = 0; i < surnames.Count; i++)
            {
                string item = surnames[i];
                string primaryKey = "", alternateKey = "";
                string translit = BaseMorpher.Transliterate(TranslitScheme.ts_Russian, TranslitScheme.ts_GOST, item);
                DoubleMetaphone.doubleMetaphone(translit, ref primaryKey, ref alternateKey);
                fWriter.AddListItem(" " + item + "\t" + translit + "\t" + primaryKey + "\t" + alternateKey, fTextFont);
            }
            fWriter.EndList();
        }
コード例 #2
0
        protected override void InternalGenerate()
        {
            IColor clrBlack = AppHost.GfxProvider.CreateColor(0x000000);
            IColor clrBlue  = AppHost.GfxProvider.CreateColor(0x0000FF);

            fTitleFont = fWriter.CreateFont("", 22f, true, false, clrBlack);
            fChapFont  = fWriter.CreateFont("", 16f, true, false, clrBlack);
            fTextFont  = fWriter.CreateFont("", 10f, false, false, clrBlack);

            fWriter.AddParagraph(fTitle, fTitleFont, TextAlignment.taLeft);

            var names    = new List <NameItem>();
            var surnames = new List <NameItem>();

            GEDCOMTree   tree   = fBase.Context.Tree;
            var          enumer = tree.GetEnumerator(GEDCOMRecordType.rtIndividual);
            GEDCOMRecord record;

            while (enumer.MoveNext(out record))
            {
                var iRec      = record as GEDCOMIndividualRecord;
                var nameParts = GKUtils.GetNameParts(iRec, false);

                var item = names.Find(x => x.Name.Equals(nameParts.Name));
                if (item != null)
                {
                    item.Amount += 1;
                }
                else
                {
                    names.Add(new NameItem(nameParts.Name));
                }

                item = surnames.Find(x => x.Name.Equals(nameParts.Surname));
                if (item != null)
                {
                    item.Amount += 1;
                }
                else
                {
                    surnames.Add(new NameItem(nameParts.Surname));
                }
            }

            SortHelper.QuickSort(names, ItemsCompare);
            SortHelper.QuickSort(surnames, ItemsCompare);

            fWriter.AddParagraph(SRLangMan.LS(RLS.LSID_Names), fChapFont, TextAlignment.taLeft);
            fWriter.BeginList();
            foreach (var item in names)
            {
                fWriter.AddListItem(" " + item.Name + "\t" + item.Amount, fTextFont);
            }
            fWriter.EndList();

            fWriter.AddParagraph(SRLangMan.LS(RLS.LSID_Surnames), fChapFont, TextAlignment.taLeft);
            fWriter.BeginList();
            foreach (var item in surnames)
            {
                fWriter.AddListItem(" " + item.Name + "\t" + item.Amount, fTextFont);
            }
            fWriter.EndList();
        }