Laden...

Drucken aus Anwendung ohne Dialog

Erstellt von mysharp55 vor 8 Jahren Letzter Beitrag vor 8 Jahren 3.294 Views
M
mysharp55 Themenstarter:in
17 Beiträge seit 2015
vor 8 Jahren
Drucken aus Anwendung ohne Dialog

Hallo,

ich habe eine kleine Software geschrieben. Nun möchte ich die Ausgabe drucken. Hierzu habe ich einen PDF/A Drucker installiert. Leider funktioniert der Druck nicht, d.h. es öffnet sich der Editor mit dem Inhalt (was er nicht soll), aber es gelangt nichts zum Drucker.

Aus diesem Grund habe ich ein kleines Test-Projekt erstellt. Hier möchte ich ein paar Zeilen an den Drucker senden. Diese funktioniert aber nur, wenn der Drucker auch der Standard-Drukcer ist.

Ich habe das Gefühl das " process.StartInfo.Arguments" ignoriert wird.

Auch ein "PrintTo" in "process.StartInfo.Verb = "print";" hat leider nichts gebracht.

Kann ich auch auf einen anderen Drucker als den Standard-Drucker (im stillen - also ohne dialoge) drucken ?

Freue mich von euren Ideen zu hören 😃 - hier der (Test)-Code:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace PrintingTest
{
    class Program
    {
        static void Main(string[] args)
        {
            Print();
        }

        public static void Print()
        {
            System.Diagnostics.Process process = new System.Diagnostics.Process();

            process.Refresh();

            process.StartInfo.Arguments = "Brother DCP-J315W Printer";

            process.StartInfo.CreateNoWindow = true;

            //Standarddrucker
            process.StartInfo.Verb = "print";

            process.StartInfo.FileName = @"C:\Users\XXX\Documents\TestPrint.txt";

            process.StartInfo.UseShellExecute = true;

            process.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;

            process.Start();

        }
    }
}

189 Beiträge seit 2014
vor 8 Jahren

Hallo mysharp55,

hast du dir schon die PrintDocument-Klasse angesehen?

VG Ezio

M
8 Beiträge seit 2014
vor 8 Jahren

Hallo,

versuch mal mit

ProcessStartInfo startInfo = new ProcessStartInfo
            {
                FileName = filename,
                Verb = "PrintTo",
                Arguments = "\"" + "Brother DCP-J315W Printer" + "\"",
                CreateNoWindow = true,
                WindowStyle = ProcessWindowStyle.Hidden
            };


            Process p = new Process();
            p.StartInfo = startInfo;
            p.Start();

            if (p != null && p.HasExited == false)
                p.Kill();

Viele Grüße