From d26f093e080cdce4050e65897a8bb7703e6a66a9 Mon Sep 17 00:00:00 2001 From: Yan Maniez Date: Tue, 23 Apr 2019 00:01:39 +0200 Subject: [PATCH] Abilities to pdf ;) --- .../PlayerCharacterEditorViewModel.cs | 95 ++++++++++++------- 1 file changed, 62 insertions(+), 33 deletions(-) diff --git a/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacter/PlayerCharacterEditorViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacter/PlayerCharacterEditorViewModel.cs index 07559510..e2e5213c 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacter/PlayerCharacterEditorViewModel.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacter/PlayerCharacterEditorViewModel.cs @@ -868,6 +868,36 @@ namespace AideDeJeu.ViewModels.PlayerCharacter } } private async Task ExecuteRollDicesCommandAsync() + { + var random = new Random(DateTime.Now.Millisecond); + var values = RollMRick(random); + values.Sort(); + List mins; + List maxs; + if (SelectedPlayerCharacter.Class?.Proficiencies?.SavingThrows != null) + { + mins = values.Take(4).ToList(); + maxs = values.Skip(4).ToList(); + } + else + { + mins = values; + maxs = null; + } + + + Strength = PickAbility(random, ref mins, ref maxs, "Force"); + Dexterity = PickAbility(random, ref mins, ref maxs, "Dextérité"); + Constitution = PickAbility(random, ref mins, ref maxs, "Constitution"); + Intelligence = PickAbility(random, ref mins, ref maxs, "Intelligence"); + Wisdom = PickAbility(random, ref mins, ref maxs, "Sagesse"); + Charisma = PickAbility(random, ref mins, ref maxs, "Charisme"); + + await GeneratePdfAsync(); + await OpenPdfAsync(); + } + + async Task GeneratePdfAsync() { //PdfDocument pdfDoc = new PdfDocument(new PdfReader(SRC), new PdfWriter(dest)); //PdfDocument srcDoc; @@ -886,9 +916,37 @@ namespace AideDeJeu.ViewModels.PlayerCharacter //PdfDocument pdfDoc = new PdfDocument(new PdfWriter()); + var stream = DependencyService.Get().CreateStream("test.pdf"); PdfReader reader = new PdfReader(AideDeJeu.Tools.Helpers.GetResourceStream("AideDeJeu.Pdf.178_hd_01_feuille_de_perso_v1.pdf")); + + + + // read the file + //PdfReader fondo = new PdfReader("listaPrecios.pdf"); + PdfStamper stamper = new PdfStamper(reader, stream); + PdfContentByte content = stamper.GetOverContent(1); + // add text + ColumnText.ShowTextAligned(content, iTextSharp.text.Element.ALIGN_LEFT, new Phrase("Galefrin"), 40, 700, 0); + + ColumnText.ShowTextAligned(content, iTextSharp.text.Element.ALIGN_LEFT, new Phrase(Strength.ToString()), 40, 620, 0); + ColumnText.ShowTextAligned(content, iTextSharp.text.Element.ALIGN_LEFT, new Phrase(Dexterity.ToString()), 40, 545, 0); + ColumnText.ShowTextAligned(content, iTextSharp.text.Element.ALIGN_LEFT, new Phrase(Constitution.ToString()), 40, 470, 0); + ColumnText.ShowTextAligned(content, iTextSharp.text.Element.ALIGN_LEFT, new Phrase(Intelligence.ToString()), 40, 395, 0); + ColumnText.ShowTextAligned(content, iTextSharp.text.Element.ALIGN_LEFT, new Phrase(Wisdom.ToString()), 40, 320, 0); + ColumnText.ShowTextAligned(content, iTextSharp.text.Element.ALIGN_LEFT, new Phrase(Charisma.ToString()), 40, 245, 0); + + //ColumnText ct = new ColumnText(content); + //// this are the coordinates where you want to add text + //// if the text does not fit inside it will be cropped + //ct.SetSimpleColumn(50, 500, 500, 50); + //ct.SetText(new Phrase("Galefrin")); + //ct.Go(); + stamper.Close(); + + /* + Document document = new Document(PageSize.LETTER); var stream = DependencyService.Get().CreateStream("test.pdf"); var writer = PdfWriter.GetInstance(document, stream); @@ -920,7 +978,11 @@ namespace AideDeJeu.ViewModels.PlayerCharacter ColumnText.ShowTextAligned(canvas, iTextSharp.text.Element.ALIGN_LEFT, new Phrase("Galefrin"), 40, document.PageSize.Height - 100, 0); document.Close(); + */ + } + async Task OpenPdfAsync() + { //DependencyService.Get().OpenFileByName("test.pdf"); //var file = Path.Combine(FileSystem.CacheDirectory, fn); @@ -935,39 +997,6 @@ namespace AideDeJeu.ViewModels.PlayerCharacter File = shareFile }); - var random = new Random(DateTime.Now.Millisecond); - var values = RollMRick(random); - values.Sort(); - List mins; - List maxs; - if (SelectedPlayerCharacter.Class?.Proficiencies?.SavingThrows != null) - { - mins = values.Take(4).ToList(); - maxs = values.Skip(4).ToList(); - } - else - { - mins = values; - maxs = null; - } - - - Strength = PickAbility(random, ref mins, ref maxs, "Force"); - Dexterity = PickAbility(random, ref mins, ref maxs, "Dextérité"); - Constitution = PickAbility(random, ref mins, ref maxs, "Constitution"); - Intelligence = PickAbility(random, ref mins, ref maxs, "Intelligence"); - Wisdom = PickAbility(random, ref mins, ref maxs, "Sagesse"); - Charisma = PickAbility(random, ref mins, ref maxs, "Charisme"); - //Strength = random.Next(6) + random.Next(6) + random.Next(6) + 3; - //Dexterity = random.Next(6) + random.Next(6) + random.Next(6) + 3; - //Constitution = random.Next(6) + random.Next(6) + random.Next(6) + 3; - //Intelligence = random.Next(6) + random.Next(6) + random.Next(6) + 3; - //Wisdom = random.Next(6) + random.Next(6) + random.Next(6) + 3; - //Charisma = random.Next(6) + random.Next(6) + random.Next(6) + 3; - //if(SelectedPlayerCharacter.Class?.Proficiencies?.SavingThrows?.Contains("Force") == true) - //{ - // Strength = 18; - //} } private int PickAbility(Random random, ref List mins, ref List maxs, string name)