From a5dcf78992b1b2d9d9c05909ee58aabb892a0adf Mon Sep 17 00:00:00 2001 From: Yan Maniez Date: Thu, 30 May 2019 21:01:01 +0200 Subject: [PATCH] Test pdf command line --- .../PlayerCharacterEditorViewModel.cs | 119 +++++++++--------- AideDeJeu/AideDeJeuCmd/Program.cs | 18 +++ 2 files changed, 79 insertions(+), 58 deletions(-) diff --git a/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacter/PlayerCharacterEditorViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacter/PlayerCharacterEditorViewModel.cs index 36248105..4b2680f7 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacter/PlayerCharacterEditorViewModel.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacter/PlayerCharacterEditorViewModel.cs @@ -1250,68 +1250,71 @@ namespace AideDeJeu.ViewModels.PlayerCharacter var filePath = Path.Combine(basePath, fileName); using (var stream = new FileStream(filePath, FileMode.Create, FileAccess.ReadWrite)) { - PdfReader reader = null; - try - { - reader = new PdfReader(AideDeJeu.Tools.Helpers.GetResourceStream("AideDeJeu.Pdf.feuille_de_personnage_editable.pdf")); - PdfStamper stamper = null; - try - { - stamper = new PdfStamper(reader, stream); - var form = stamper.AcroFields; - var fields = form.Fields; -#if DEBUG - foreach (DictionaryEntry field in fields) - { - var item = field.Value as AcroFields.Item; - Debug.WriteLine(field.Key); - if(field.Key.ToString().Equals("Portrait")) - { - Debug.WriteLine("Portrait"); - } - form.SetField(field.Key.ToString(), field.Key.ToString()); - } -#endif // DEBUG - - form.SetField("Nom", SelectedPlayerCharacter?.Name ?? string.Empty); - form.SetField("Niveau", "1"); - form.SetField("Race", SelectedPlayerCharacter?.Race?.Name ?? string.Empty); - form.SetField("Classe", SelectedPlayerCharacter?.Class?.Name ?? string.Empty); - form.SetField("Alignement", SelectedPlayerCharacter?.Alignment?.Name ?? string.Empty); - form.SetField("Historique", SelectedPlayerCharacter?.Background?.Background?.Name ?? string.Empty); - form.SetField("Trait de personnalité", - (SelectedPlayerCharacter.Background.PersonalityTrait ?? string.Empty) + "\n\n" + - (SelectedPlayerCharacter.Background.PersonalityIdeal ?? string.Empty) + "\n\n" + - (SelectedPlayerCharacter.Background.PersonalityLink ?? string.Empty) + "\n\n" + - (SelectedPlayerCharacter.Background.PersonalityDefect ?? string.Empty) - ); - form.SetField("For Valeur", SelectedPlayerCharacter?.Abilities?.Strength?.Value?.ToString()); - form.SetField("For MOD", SelectedPlayerCharacter?.Abilities?.Strength?.ModString); - form.SetField("Dex Valeur", SelectedPlayerCharacter?.Abilities?.Dexterity?.Value?.ToString()); - form.SetField("Dex MOD", SelectedPlayerCharacter?.Abilities?.Dexterity?.ModString); - form.SetField("Con Valeur", SelectedPlayerCharacter?.Abilities?.Constitution?.Value?.ToString()); - form.SetField("Con MOD", SelectedPlayerCharacter?.Abilities?.Constitution?.ModString); - form.SetField("Int Valeur", SelectedPlayerCharacter?.Abilities?.Intelligence?.Value?.ToString()); - form.SetField("Int MOD", SelectedPlayerCharacter?.Abilities?.Intelligence?.ModString); - form.SetField("Sag Valeur", SelectedPlayerCharacter?.Abilities?.Wisdom?.Value?.ToString()); - form.SetField("Sag MOD", SelectedPlayerCharacter?.Abilities?.Wisdom?.ModString); - form.SetField("Cha Valeur", SelectedPlayerCharacter?.Abilities?.Charisma?.Value?.ToString()); - form.SetField("Cha MOD", SelectedPlayerCharacter?.Abilities?.Charisma?.ModString); - } - finally - { - stamper?.Close(); - } - } - finally - { - reader?.Close(); - } - + GeneratePdfToStream(playerCharacter, stream); return fileName; } }); } + public void GeneratePdfToStream(PlayerCharacterViewModel playerCharacter, Stream stream) + { + PdfReader reader = null; + try + { + reader = new PdfReader(AideDeJeu.Tools.Helpers.GetResourceStream("AideDeJeu.Pdf.feuille_de_personnage_editable.pdf")); + PdfStamper stamper = null; + try + { + stamper = new PdfStamper(reader, stream); + var form = stamper.AcroFields; + var fields = form.Fields; +#if DEBUG + foreach (DictionaryEntry field in fields) + { + var item = field.Value as AcroFields.Item; + Debug.WriteLine(field.Key); + if (field.Key.ToString().Equals("Portrait")) + { + Debug.WriteLine("Portrait"); + } + form.SetField(field.Key.ToString(), field.Key.ToString()); + } +#endif // DEBUG + + form.SetField("Nom", SelectedPlayerCharacter?.Name ?? string.Empty); + form.SetField("Niveau", "1"); + form.SetField("Race", SelectedPlayerCharacter?.Race?.Name ?? string.Empty); + form.SetField("Classe", SelectedPlayerCharacter?.Class?.Name ?? string.Empty); + form.SetField("Alignement", SelectedPlayerCharacter?.Alignment?.Name ?? string.Empty); + form.SetField("Historique", SelectedPlayerCharacter?.Background?.Background?.Name ?? string.Empty); + form.SetField("Trait de personnalité", + (SelectedPlayerCharacter.Background.PersonalityTrait ?? string.Empty) + "\n\n" + + (SelectedPlayerCharacter.Background.PersonalityIdeal ?? string.Empty) + "\n\n" + + (SelectedPlayerCharacter.Background.PersonalityLink ?? string.Empty) + "\n\n" + + (SelectedPlayerCharacter.Background.PersonalityDefect ?? string.Empty) + ); + form.SetField("For Valeur", SelectedPlayerCharacter?.Abilities?.Strength?.Value?.ToString()); + form.SetField("For MOD", SelectedPlayerCharacter?.Abilities?.Strength?.ModString); + form.SetField("Dex Valeur", SelectedPlayerCharacter?.Abilities?.Dexterity?.Value?.ToString()); + form.SetField("Dex MOD", SelectedPlayerCharacter?.Abilities?.Dexterity?.ModString); + form.SetField("Con Valeur", SelectedPlayerCharacter?.Abilities?.Constitution?.Value?.ToString()); + form.SetField("Con MOD", SelectedPlayerCharacter?.Abilities?.Constitution?.ModString); + form.SetField("Int Valeur", SelectedPlayerCharacter?.Abilities?.Intelligence?.Value?.ToString()); + form.SetField("Int MOD", SelectedPlayerCharacter?.Abilities?.Intelligence?.ModString); + form.SetField("Sag Valeur", SelectedPlayerCharacter?.Abilities?.Wisdom?.Value?.ToString()); + form.SetField("Sag MOD", SelectedPlayerCharacter?.Abilities?.Wisdom?.ModString); + form.SetField("Cha Valeur", SelectedPlayerCharacter?.Abilities?.Charisma?.Value?.ToString()); + form.SetField("Cha MOD", SelectedPlayerCharacter?.Abilities?.Charisma?.ModString); + } + finally + { + stamper?.Close(); + } + } + finally + { + reader?.Close(); + } + } public async Task OpenPdfAsync(string filename) { diff --git a/AideDeJeu/AideDeJeuCmd/Program.cs b/AideDeJeu/AideDeJeuCmd/Program.cs index 24ea2adf..ddf3933e 100644 --- a/AideDeJeu/AideDeJeuCmd/Program.cs +++ b/AideDeJeu/AideDeJeuCmd/Program.cs @@ -354,6 +354,7 @@ namespace AideDeJeuCmd { Console.WriteLine("l : build library"); Console.WriteLine("o : check orphan links"); + Console.WriteLine("p : test pdf"); Console.WriteLine("q : quitter"); var key = Console.ReadKey(true); switch (key.KeyChar) @@ -364,12 +365,29 @@ namespace AideDeJeuCmd case 'o': await CheckOrphanLinksAsync(); break; + case 'p': + await TestPdfAsync(); + break; case 'q': return; } } } + static async Task TestPdfAsync() + { + Tests.Xamarin.Forms.Mocks.MockForms.Init(); + SQLitePCL.raw.SetProvider(new SQLitePCL.SQLite3Provider_e_sqlite3()); + DependencyService.Register(); + //Xamarin.Essentials.Platform.Init(this, bundle); + //Xamarin.Essentials.ExperimentalFeatures.Enable(Xamarin.Essentials.ExperimentalFeatures.ShareFileRequest); + + var pc = new AideDeJeu.ViewModels.PlayerCharacter.PlayerCharacterViewModel(); + var pce = new AideDeJeu.ViewModels.PlayerCharacter.PlayerCharacterEditorViewModel(); + var stream = new MemoryStream(); + pce.GeneratePdfToStream(pc, stream); + } + static async Task BuildLibraryAsync() { Tests.Xamarin.Forms.Mocks.MockForms.Init();