From c0633ba6e91f68887472f0b439b626288500c0fc Mon Sep 17 00:00:00 2001 From: Yan Maniez Date: Tue, 25 Jun 2019 14:05:47 +0200 Subject: [PATCH] Pdf --- AideDeJeu/AideDeJeu/Pdf/PdfService.cs | 20 +++++++++++++++++++ AideDeJeu/AideDeJeu/ViewModels/Navigator.cs | 10 ++-------- .../Views/Library/ItemDetailPage.xaml | 2 +- .../AideDeJeu/Views/Library/ItemsPage.xaml | 2 +- 4 files changed, 24 insertions(+), 10 deletions(-) diff --git a/AideDeJeu/AideDeJeu/Pdf/PdfService.cs b/AideDeJeu/AideDeJeu/Pdf/PdfService.cs index 49451e99..057923dd 100644 --- a/AideDeJeu/AideDeJeu/Pdf/PdfService.cs +++ b/AideDeJeu/AideDeJeu/Pdf/PdfService.cs @@ -10,6 +10,7 @@ using System.Diagnostics; using System.IO; using System.Linq; using System.Text; +using System.Threading.Tasks; using Xamarin.Forms; namespace AideDeJeu.Pdf @@ -39,6 +40,25 @@ namespace AideDeJeu.Pdf Document _Document = null; PdfWriter _Writer = null; + + public string BasePdfDirectory + { + get + { + return Path.Combine(Xamarin.Essentials.FileSystem.CacheDirectory, "pdf"); + } + } + + public async Task MarkdownToPDF(List mds) + { + var basePath = BasePdfDirectory; + Directory.CreateDirectory(basePath); + using (var stream = new FileStream(Path.Combine(BasePdfDirectory, "test.pdf"), FileMode.Create)) + { + MarkdownToPdf(mds, stream); + } + return "test.pdf"; + } public void MarkdownToPdf(List mds, Stream stream) { var pipeline = new Markdig.MarkdownPipelineBuilder().UseYamlFrontMatter().UsePipeTables().Build(); diff --git a/AideDeJeu/AideDeJeu/ViewModels/Navigator.cs b/AideDeJeu/AideDeJeu/ViewModels/Navigator.cs index 307957c5..dbae097b 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/Navigator.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/Navigator.cs @@ -363,15 +363,9 @@ namespace AideDeJeu.ViewModels public async Task ExecuteGeneratePDFCommandAsync(string markdown) { - using (var stream = new FileStream(Path.Combine(Xamarin.Essentials.FileSystem.CacheDirectory, Path.Combine("pdf", "test.pdf")), FileMode.Create)) - { - - PdfService.Instance.MarkdownToPdf(new List() { markdown }, stream); - } - var page = new PdfViewPage(); - page.PdfFile = new Tools.NotifyTaskCompletion(Task.Run(() => - { return "test.pdf"; } + page.PdfFile = new Tools.NotifyTaskCompletion(Task.Run(async() => + { return await PdfService.Instance.MarkdownToPDF(new List() { markdown }); } )); page.BindingContext = page; await Navigation.PushAsync(page, true); diff --git a/AideDeJeu/AideDeJeu/Views/Library/ItemDetailPage.xaml b/AideDeJeu/AideDeJeu/Views/Library/ItemDetailPage.xaml index af38f5e6..3aaea1e4 100644 --- a/AideDeJeu/AideDeJeu/Views/Library/ItemDetailPage.xaml +++ b/AideDeJeu/AideDeJeu/Views/Library/ItemDetailPage.xaml @@ -14,7 +14,7 @@ - + diff --git a/AideDeJeu/AideDeJeu/Views/Library/ItemsPage.xaml b/AideDeJeu/AideDeJeu/Views/Library/ItemsPage.xaml index 3ca8ca9a..37b75d37 100644 --- a/AideDeJeu/AideDeJeu/Views/Library/ItemsPage.xaml +++ b/AideDeJeu/AideDeJeu/Views/Library/ItemsPage.xaml @@ -17,7 +17,7 @@ - +