diff --git a/AideDeJeu/AideDeJeu/AideDeJeu.csproj b/AideDeJeu/AideDeJeu/AideDeJeu.csproj index e60950d5..b1e1ce22 100644 --- a/AideDeJeu/AideDeJeu/AideDeJeu.csproj +++ b/AideDeJeu/AideDeJeu/AideDeJeu.csproj @@ -23,6 +23,12 @@ + + + + + + @@ -40,6 +46,7 @@ + @@ -50,6 +57,12 @@ + + + + + + @@ -67,6 +80,7 @@ + diff --git a/AideDeJeu/AideDeJeu/Pdf/Cinzel-Black.otf b/AideDeJeu/AideDeJeu/Pdf/Cinzel-Black.otf new file mode 100644 index 00000000..e1d142f1 Binary files /dev/null and b/AideDeJeu/AideDeJeu/Pdf/Cinzel-Black.otf differ diff --git a/AideDeJeu/AideDeJeu/Pdf/Cinzel-Bold.otf b/AideDeJeu/AideDeJeu/Pdf/Cinzel-Bold.otf new file mode 100644 index 00000000..736fb115 Binary files /dev/null and b/AideDeJeu/AideDeJeu/Pdf/Cinzel-Bold.otf differ diff --git a/AideDeJeu/AideDeJeu/Pdf/Cinzel-Regular.otf b/AideDeJeu/AideDeJeu/Pdf/Cinzel-Regular.otf new file mode 100644 index 00000000..2fa4b3ed Binary files /dev/null and b/AideDeJeu/AideDeJeu/Pdf/Cinzel-Regular.otf differ diff --git a/AideDeJeu/AideDeJeu/Pdf/CinzelDecorative-Black.otf b/AideDeJeu/AideDeJeu/Pdf/CinzelDecorative-Black.otf new file mode 100644 index 00000000..e4aeef4d Binary files /dev/null and b/AideDeJeu/AideDeJeu/Pdf/CinzelDecorative-Black.otf differ diff --git a/AideDeJeu/AideDeJeu/Pdf/CinzelDecorative-Bold.otf b/AideDeJeu/AideDeJeu/Pdf/CinzelDecorative-Bold.otf new file mode 100644 index 00000000..918600ff Binary files /dev/null and b/AideDeJeu/AideDeJeu/Pdf/CinzelDecorative-Bold.otf differ diff --git a/AideDeJeu/AideDeJeu/Pdf/CinzelDecorative-Regular.otf b/AideDeJeu/AideDeJeu/Pdf/CinzelDecorative-Regular.otf new file mode 100644 index 00000000..9f6ddafc Binary files /dev/null and b/AideDeJeu/AideDeJeu/Pdf/CinzelDecorative-Regular.otf differ diff --git a/AideDeJeu/AideDeJeu/Pdf/MarcellusSC-Regular.ttf b/AideDeJeu/AideDeJeu/Pdf/MarcellusSC-Regular.ttf new file mode 100644 index 00000000..7304b969 Binary files /dev/null and b/AideDeJeu/AideDeJeu/Pdf/MarcellusSC-Regular.ttf differ diff --git a/AideDeJeu/AideDeJeu/Pdf/PdfService.cs b/AideDeJeu/AideDeJeu/Pdf/PdfService.cs index b9ab6812..ab3ab9a1 100644 --- a/AideDeJeu/AideDeJeu/Pdf/PdfService.cs +++ b/AideDeJeu/AideDeJeu/Pdf/PdfService.cs @@ -54,10 +54,37 @@ namespace AideDeJeu.Pdf //stamper.Close(); //reader.Close(); } + + Font ParagraphFont = null; private void Render(IEnumerable blocks, Document document) { + if(ParagraphFont == null) + { + //var fontPath = Path.Combine(Xamarin.Essentials.FileSystem.CacheDirectory, "Cinzel-Regular.otf"); + var fontPath = @"C:\Users\yanma\Documents\Visual Studio 2017\Projects\AideDeJeu\AideDeJeu\AideDeJeuCmd\bin\Debug\netcoreapp2.1\Cinzel-Regular.otf"; + using (var inFont = AideDeJeu.Tools.Helpers.GetResourceStream("AideDeJeu.Pdf.Cinzel-Regular.otf")) + { + using (var outFont = new FileStream(fontPath, FileMode.Create, FileAccess.ReadWrite)) + { + inFont.CopyTo(outFont); + } + } + FontFactory.Register(fontPath); + + //var mafont = FontFactory.GetFont("cinzel", 20, iTextSharp.text.Font.NORMAL); + var mafont = iTextSharp.text.pdf.BaseFont.CreateFont(fontPath, iTextSharp.text.pdf.BaseFont.IDENTITY_H, iTextSharp.text.pdf.BaseFont.EMBEDDED); + //var font = mafont.BaseFont; + var bigFont = new iTextSharp.text.Font(mafont, 20); + + var fonts = FontFactory.RegisteredFonts; + + ParagraphFont = bigFont; + } var phrases = Render(blocks); + + ColumnText ct = new ColumnText(_Writer.DirectContent); + int column = 0; ct.SetSimpleColumn(10, 10 + 200 * column, 200, 200 + 200 * column); int status = 0; @@ -65,21 +92,26 @@ namespace AideDeJeu.Pdf float y = 0; foreach (var phrase in phrases) { + //var pphrase = new Phrase("test", bigFont); + phrase.Font = ParagraphFont; y = ct.YLine; - //document.Add(phrase); - ct.AddText(phrase); - status = ct.Go(true); - if(ColumnText.HasMoreText(status)) - { + document.Add(phrase); + //ct.AddText(phrase); + //status = ct.Go(true); + //if(ColumnText.HasMoreText(status)) + //{ + + // column++; + // ct.SetSimpleColumn(10, 10 + 200 * column, 200, 200 + 200 * column); + // y += 200; + //} + //ct.YLine = y; + //ct.SetText(phrase); + //status = ct.Go(false); + + - column++; - ct.SetSimpleColumn(10, 10 + 200 * column, 200, 200 + 200 * column); - y += 200; - } - ct.YLine = y; - ct.SetText(phrase); - status = ct.Go(false); //ColumnText ct = new ColumnText(_Writer.DirectContent); //ct.AddText(CreateFormatted(block.Inline, Font.HELVETICA, 0, new Color(0, 0, 0), 12)); //ct.Alignment = Element.ALIGN_JUSTIFIED; @@ -190,7 +222,7 @@ namespace AideDeJeu.Pdf new Chunk() { Content = literal.Content.Text.Substring(literal.Content.Start, literal.Content.Length), - Font = new Font(fontFamily, fontSize, fontStyle, fontColor) + Font = ParagraphFont, //new Font(fontFamily, fontSize, fontStyle, fontColor) } }; case EmphasisInline emphasis: diff --git a/AideDeJeu/AideDeJeuCmd/AideDeJeuCmd.csproj b/AideDeJeu/AideDeJeuCmd/AideDeJeuCmd.csproj index 67fb4ba9..69bb2adf 100644 --- a/AideDeJeu/AideDeJeuCmd/AideDeJeuCmd.csproj +++ b/AideDeJeu/AideDeJeuCmd/AideDeJeuCmd.csproj @@ -16,6 +16,7 @@ + diff --git a/AideDeJeu/AideDeJeuCmd/Program.cs b/AideDeJeu/AideDeJeuCmd/Program.cs index 6f10dff9..d8002617 100644 --- a/AideDeJeu/AideDeJeuCmd/Program.cs +++ b/AideDeJeu/AideDeJeuCmd/Program.cs @@ -753,6 +753,7 @@ namespace AideDeJeuCmd Tests.Xamarin.Forms.Mocks.MockForms.Init(); SQLitePCL.raw.SetProvider(new SQLitePCL.SQLite3Provider_e_sqlite3()); DependencyService.Register(); + Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); //Xamarin.Essentials.Platform.Init(this, bundle); //Xamarin.Essentials.ExperimentalFeatures.Enable(Xamarin.Essentials.ExperimentalFeatures.ShareFileRequest); @@ -770,7 +771,7 @@ namespace AideDeJeuCmd using (var stream = new FileStream("test.pdf", FileMode.Create)) { //pdfService.MarkdownToPdf("# mon titre\n\nhop", stream); - pdfService.MarkdownToPdf(spells.Select(s => s.Markdown).ToList(), stream); + pdfService.MarkdownToPdf(spells.Select(s => s.Markdown).Take(3).ToList(), stream); //pdfService.MarkdownToPdf(new List() { item.Markdown }, stream); //var stream = new MemoryStream(); //pce.GeneratePdfToStream(pc, stream); diff --git a/AideDeJeu/AideDeJeuWeb/AideDeJeuWeb.csproj b/AideDeJeu/AideDeJeuWeb/AideDeJeuWeb.csproj index 6c80f53b..f534ecf7 100644 --- a/AideDeJeu/AideDeJeuWeb/AideDeJeuWeb.csproj +++ b/AideDeJeu/AideDeJeuWeb/AideDeJeuWeb.csproj @@ -14,6 +14,7 @@ +