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:
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);
|
||||
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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue