Szukam i szukam i nie mogę znaleźć dobrego rozwiązania. Chce wydrukować plik PDF - wysłać go do drukarki, ale mieć przy tym możliwość do klasy PrinterSettings.
Robiłem coś takiego i to działało:
ProcessStartInfo info = new ProcessStartInfo();
info.Verb = "print";
info.FileName = @"c:\output.pdf";
info.CreateNoWindow = true;
info.WindowStyle = ProcessWindowStyle.Hidden;
Process p = new Process();
p.StartInfo = info;
p.Start();
p.WaitForInputIdle();
System.Threading.Thread.Sleep(3000);
if (false == p.CloseMainWindow())
p.Kill();
Ale nie mam tutaj dostępu do wyżej wspomnianej klasy żeby np. ustawić druk dwustronny.
Edit:
Wyczytałem że trzeba przerobić pliki pdf na obrazki. Chce użyć do tego biblioteki Spire.PDF, tak jak piszą w dokumentacji robię to w taki sposób:
PdfDocument pdf = new PdfDocument();
pdf.LoadFromFile("e:\\proba1.pdf");
BitmapSource source;
Bitmap bmp;
for (int i = 1; i < pdf.Pages.Count + 1; i++)
{
source = pdf.SaveAsImage(i);
bmp = SourceToBitmap(source);
bmp.Save(string.Format("result-{0}.png", i), ImageFormat.Png);
}
Ale dostaje błąd:
Error 1 Cannot implicitly convert type 'System.Drawing.Image' to 'System.Windows.Media.Imaging.BitmapSource' C:\Users\Łukasz\documents\visual studio 2013\Projects\WpfApplication1\WpfApplication1\MainWindow.xaml.cs 90 26 FileMonitor
Error 2 The name 'SourceToBitmap' does not exist in the current context C:\Users\Łukasz\documents\visual studio 2013\Projects\WpfApplication1\WpfApplication1\MainWindow.xaml.cs 91 23 FileMonitor
Error 3 The name 'ImageFormat' does not exist in the current context C:\Users\Łukasz\documents\visual studio 2013\Projects\WpfApplication1\WpfApplication1\MainWindow.xaml.cs 92 62 FileMonitor