Browse Source

GeneratePdfAndShow, GenerateXpsAndShow (#546)

Marcin Ziąbek 2 years ago
parent
commit
26195786a4
2 changed files with 38 additions and 10 deletions
  1. 6 10
      Source/QuestPDF.ReportSample/Tests.cs
  2. 32 0
      Source/QuestPDF/Fluent/GenerateExtensions.cs

+ 6 - 10
Source/QuestPDF.ReportSample/Tests.cs

@@ -21,24 +21,20 @@ namespace QuestPDF.ReportSample
             
             var model = DataSource.GetReport();
             Report = new StandardReport(model);
+            
+            //ImagePlaceholder.Solid = true;
         }
         
         [Test] 
-        public void GenerateAndShowPdf()
+        public void GeneratePdfAndShow()
         {
-            //ImagePlaceholder.Solid = true;
-        
-            var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"test_result.pdf");
-            Report.GeneratePdf(path);
-            Process.Start("explorer.exe", path);
+            Report.GeneratePdfAndShow();
         }
         
         [Test] 
-        public void GenerateAndShowXps()
+        public void GenerateXpsAndShow()
         {
-            var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"test_result.xps");
-            Report.GenerateXps(path);
-            Process.Start("explorer.exe", path);
+            Report.GenerateXpsAndShow();
         }
     }
 }

+ 32 - 0
Source/QuestPDF/Fluent/GenerateExtensions.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using System.Diagnostics;
 using System.IO;
 using QuestPDF.Drawing;
 using QuestPDF.Infrastructure;
@@ -28,6 +29,13 @@ namespace QuestPDF.Fluent
             DocumentGenerator.GeneratePdf(stream, document);
         }
         
+        public static void GeneratePdfAndShow(this IDocument document)
+        {
+            var filePath = Path.Combine(Path.GetTempPath(), $"QuestPDF Document.pdf");
+            document.GeneratePdf(filePath);
+            OpenFileUsingDefaultProgram(filePath);
+        }
+
         #endregion
 
         #region XPS
@@ -50,6 +58,13 @@ namespace QuestPDF.Fluent
             DocumentGenerator.GenerateXps(stream, document);
         }
         
+        public static void GenerateXpsAndShow(this IDocument document)
+        {
+            var filePath = Path.Combine(Path.GetTempPath(), $"QuestPDF Document.xps");
+            document.GenerateXps(filePath);
+            OpenFileUsingDefaultProgram(filePath);
+        }
+        
         #endregion
 
         #region Images
@@ -77,5 +92,22 @@ namespace QuestPDF.Fluent
         }
 
         #endregion
+        
+        #region Helpers
+        
+        private static void OpenFileUsingDefaultProgram(string filePath)
+        {
+            var process = new Process
+            {
+                StartInfo = new ProcessStartInfo(filePath)
+                {
+                    UseShellExecute = true
+                }
+            };
+
+            process.Start();
+        }
+        
+        #endregion
     }
 }