1
0
Fork 0
mirror of https://github.com/Nioux/AideDeJeu.git synced 2025-10-29 14:35:45 +00:00

Test pdf command line

This commit is contained in:
Yan Maniez 2019-05-30 21:01:01 +02:00
parent 466d20a7a9
commit a5dcf78992
2 changed files with 79 additions and 58 deletions

View file

@ -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)
{

View file

@ -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<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()
{
Tests.Xamarin.Forms.Mocks.MockForms.Init();