Implement Pdf printing

This commit is contained in:
2023-08-02 20:31:02 +02:00
parent baf694621c
commit 921871cab1
2 changed files with 10 additions and 4 deletions

View File

@ -66,9 +66,9 @@ namespace Elwig.Documents {
File.Copy(PdfFile.FilePath, pdfPath); File.Copy(PdfFile.FilePath, pdfPath);
} }
public async Task Print() { public async Task Print(int copies = 1) {
if (PdfFile == null) throw new InvalidOperationException("Pdf file has not been generated yet"); if (PdfFile == null) throw new InvalidOperationException("Pdf file has not been generated yet");
Pdf.Print(PdfFile.FilePath); await Pdf.Print(PdfFile.FilePath, copies);
} }
public void Show() { public void Show() {

View File

@ -5,11 +5,13 @@ using PdfSharp.Pdf.IO;
using PuppeteerSharp; using PuppeteerSharp;
using Elwig.Helpers; using Elwig.Helpers;
using Elwig.Windows; using Elwig.Windows;
using System.Diagnostics;
namespace Elwig.Documents { namespace Elwig.Documents {
public static class Pdf { public static class Pdf {
private static readonly string Chromium = @"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"; private static readonly string Chromium = @"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe";
private static readonly string PdfToPrinter = App.ExePath + "PDFtoPrinter.exe";
private static IBrowser? Browser = null; private static IBrowser? Browser = null;
public static bool IsReady => Browser != null; public static bool IsReady => Browser != null;
@ -73,8 +75,12 @@ namespace Elwig.Documents {
}); });
} }
public static void Print(string path) { public static async Task Print(string path, int copies = 1) {
// TODO print pdf var p = new Process() { StartInfo = new() { FileName = PdfToPrinter } };
p.StartInfo.ArgumentList.Add(path);
p.StartInfo.ArgumentList.Add($"copies={copies}");
p.Start();
await p.WaitForExitAsync();
} }
} }
} }