Implement Pdf printing
This commit is contained in:
@ -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() {
|
||||||
|
@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user