C# Drukowanie pliku PDF

0

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
0

Przekopałem internet i nie mogę sobie z tym poradzić. Tak ciężko jest wydrukować pdf w C#?

0

wszak nie uzywalem tego co ty, bo do pdfow uzywam Pechkina, ale bledy sa czytelne:

  1. w linijce ktorej tu nie ma probujesz cos zrobic z obiektem klasy System.Drawing.Image w miejscu gdzie system oczekuje System.Windows.Media.Imaging.BitmapSource. Sprawdz czy nie da sie inaczej tego obiektu stworzyc by byl w poprawnym formacie.

  2. Metoda SourceToBitmap ktora wywolujesz nie istnieje, lub jest gdzies gdzie jest niedostepna z tego poziomu. Znajdz ja i dolacz czy to referencje, czy wstrzyknij zaleznosc.

  3. to samo co wyzej, nie ma dostepu do Enuma. Jesli referencje sa dodane na obydwu kliknij PPM i Resolve, lub ctrl + . z kursorem na tym teksci i powinno pomoc, a jak nie to musisz dodac referencje.

0

Ok, poradziłem sobie z tym w taki sposób:

var file= pdf.SaveAsImage(i);
file.Save(string.Format("result-{0}.png", i), ImageFormat.Png);

I działa, jednak ta biblioteka ma ograniczenie do 3 stron max. Czy ta twoja biblioteka umożliwia drukowanie pdf?

1 użytkowników online, w tym zalogowanych: 0, gości: 1