| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | 
							- using InABox.Core;
 
- using Syncfusion.Pdf;
 
- using Syncfusion.Pdf.Graphics;
 
- using Syncfusion.PdfToImageConverter;
 
- namespace InABox.Avalonia.Platform.Desktop;
 
- public class Desktop_PdfRenderer : IPdfRenderer
 
- {
 
-     public byte[]? PdfToImage(byte[]? pdf, int page, int dpi)
 
-     {
 
-         if (pdf?.Any() != true)
 
-             return null;
 
-         
 
-         using (var inData = new MemoryStream(pdf))
 
-         {
 
-             using (var converter = new PdfToImageConverter(inData))
 
-             {
 
-                 using (var outData = new MemoryStream())
 
-                 {
 
-                     converter.Convert(page,true,false)
 
-                         .CopyTo(outData);
 
-                     return outData.ToArray();
 
-                 }
 
-             }
 
-         }
 
-         
 
-     }
 
-     public Task<byte[]?> PdfToImageAsync(byte[]? pdf, int page, int dpi)
 
-         => Task.Run(() => PdfToImage(pdf, page, dpi));
 
-     public byte[]? ImageToPdf(byte[]? image)
 
-     { 
 
-         if (image?.Any() != true)
 
-             return null;
 
-         using var imgStream = new MemoryStream(image);
 
-         
 
-         var bmp = new PdfBitmap(imgStream);
 
-         
 
-         var doc = new PdfDocument();
 
-         
 
-         var section = doc.Sections.Add();
 
-         section.PageSettings.Margins.All = 0;
 
-         section.PageSettings.Width = bmp.Width;
 
-         section.PageSettings.Height = bmp.Height;
 
-         
 
-         var page = section.Pages.Add();
 
-         page.Graphics.DrawImage(bmp, 0, 0, page.Size.Width, page.Size.Height);
 
-         using var docStream = new MemoryStream();
 
-         
 
-         doc.Save(docStream);
 
-         return docStream.GetBuffer();
 
-     }
 
-     public Task<byte[]?> ImageToPdfAsync(byte[]? image)
 
-         => Task.Run(() => ImageToPdf(image));
 
-     public Logger? Logger { get; set; }
 
- }
 
 
  |