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(); }
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(); }