MobileDocumentExtensions.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. using Syncfusion.Pdf;
  2. using Syncfusion.Pdf.Graphics;
  3. namespace InABox.Avalonia
  4. {
  5. public static class MobileDocumentExtensions
  6. {
  7. public static void ConvertToPDF(this MobileDocument document)
  8. {
  9. using (var img = new MemoryStream(document.Data))
  10. {
  11. var image = new PdfBitmap(img);
  12. var pdfDoc = new PdfDocument();
  13. var section = pdfDoc.Sections.Add();
  14. section.PageSettings.Margins.All = 0;
  15. section.PageSettings.Width = image.Width;
  16. section.PageSettings.Height = image.Height;
  17. var page = section.Pages.Add();
  18. page.Graphics.DrawImage(image, 0, 0, page.Size.Width, page.Size.Height);
  19. using (var ms = new MemoryStream())
  20. {
  21. pdfDoc.Save(ms);
  22. document.Data = ms.GetBuffer();
  23. document.FileName = Path.ChangeExtension(document.FileName, "pdf");
  24. }
  25. }
  26. }
  27. public static bool IsPDF(this MobileDocument document) => document.FileName.ToUpper().EndsWith(".PDF");
  28. }
  29. }