mirror of
				https://github.com/Nioux/AideDeJeu.git
				synced 2025-10-30 23:16:09 +00:00 
			
		
		
		
	Test pdf command line
This commit is contained in:
		
							parent
							
								
									466d20a7a9
								
							
						
					
					
						commit
						a5dcf78992
					
				
					 2 changed files with 79 additions and 58 deletions
				
			
		|  | @ -1250,68 +1250,71 @@ namespace AideDeJeu.ViewModels.PlayerCharacter | ||||||
|                 var filePath = Path.Combine(basePath, fileName); |                 var filePath = Path.Combine(basePath, fileName); | ||||||
|                 using (var stream = new FileStream(filePath, FileMode.Create, FileAccess.ReadWrite)) |                 using (var stream = new FileStream(filePath, FileMode.Create, FileAccess.ReadWrite)) | ||||||
|                 { |                 { | ||||||
|                     PdfReader reader = null; |                     GeneratePdfToStream(playerCharacter, stream); | ||||||
|                     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(); |  | ||||||
|                     } |  | ||||||
| 
 |  | ||||||
|                     return fileName; |                     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) |         public async Task OpenPdfAsync(string filename) | ||||||
|         { |         { | ||||||
|  |  | ||||||
|  | @ -354,6 +354,7 @@ namespace AideDeJeuCmd | ||||||
|             { |             { | ||||||
|                 Console.WriteLine("l : build library"); |                 Console.WriteLine("l : build library"); | ||||||
|                 Console.WriteLine("o : check orphan links"); |                 Console.WriteLine("o : check orphan links"); | ||||||
|  |                 Console.WriteLine("p : test pdf"); | ||||||
|                 Console.WriteLine("q : quitter"); |                 Console.WriteLine("q : quitter"); | ||||||
|                 var key = Console.ReadKey(true); |                 var key = Console.ReadKey(true); | ||||||
|                 switch (key.KeyChar) |                 switch (key.KeyChar) | ||||||
|  | @ -364,12 +365,29 @@ namespace AideDeJeuCmd | ||||||
|                     case 'o': |                     case 'o': | ||||||
|                         await CheckOrphanLinksAsync(); |                         await CheckOrphanLinksAsync(); | ||||||
|                         break; |                         break; | ||||||
|  |                     case 'p': | ||||||
|  |                         await TestPdfAsync(); | ||||||
|  |                         break; | ||||||
|                     case 'q': |                     case 'q': | ||||||
|                         return; |                         return; | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |         static async Task TestPdfAsync() | ||||||
|  |         { | ||||||
|  |             Tests.Xamarin.Forms.Mocks.MockForms.Init(); | ||||||
|  |             SQLitePCL.raw.SetProvider(new SQLitePCL.SQLite3Provider_e_sqlite3()); | ||||||
|  |             DependencyService.Register<INativeAPI, AideDeJeu.Cmd.Version_CMD>(); | ||||||
|  |             //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() |         static async Task BuildLibraryAsync() | ||||||
|         { |         { | ||||||
|             Tests.Xamarin.Forms.Mocks.MockForms.Init(); |             Tests.Xamarin.Forms.Mocks.MockForms.Init(); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Yan Maniez
						Yan Maniez