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);
}
public async Task Print() {
public async Task Print(int copies = 1) {
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() {

View File

@ -5,11 +5,13 @@ using PdfSharp.Pdf.IO;
using PuppeteerSharp;
using Elwig.Helpers;
using Elwig.Windows;
using System.Diagnostics;
namespace Elwig.Documents {
public static class Pdf {
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;
public static bool IsReady => Browser != null;
@ -73,8 +75,12 @@ namespace Elwig.Documents {
});
}
public static void Print(string path) {
// TODO print pdf
public static async Task Print(string path, int copies = 1) {
var p = new Process() { StartInfo = new() { FileName = PdfToPrinter } };
p.StartInfo.ArgumentList.Add(path);
p.StartInfo.ArgumentList.Add($"copies={copies}");
p.Start();
await p.WaitForExitAsync();
}
}
}