Autor Beitrag
Jamez
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18



BeitragVerfasst: Mi 09.12.09 03:17 
Wie im Titel schon gefragt, suche ich nach der Möglichkeit eine Html-Datei auszudrucken per Knopfdruck ^^
Würde mich freuen wenn es dafür vielleicht einen simplen Befehl gibt.



Schonmal vielen Dank für die Antwort
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Mi 09.12.09 10:22 
Nein, innerhalb von NET gibt es keinen derartigen Befehl. (Was und wie gedruckt werden kann, ist Sache eines Programms, das entscheidet, wie es mit bestimmten Dateien umzugehen hat, aber nicht die Sache des Betriebssystems oder einer Ergänzung dazu.) Es gibt (vereinfacht gesagt) nur zwei Wege:

1a. Öffne mit Process.Start ein Programm, das HTML ausdrucken kann; dem übergibst du geeignete Parameter, nämlich den Dateinamen und etwas wie "/p".

1b. Evtl. geht es noch schneller: Öffne mit Process.Start direkt diese Datei und übergib als Parameter "/p" oder "/print". Das entspräche dem Rechtsclick im Explorer mit der Auswahl "Print".

2. Der gesamte Druckvorgang wird mit PrintDocument manuell erledigt.

Gruß Jürgen

Danke, Daniel, für den Link!


Zuletzt bearbeitet von JüTho am Mi 09.12.09 10:30, insgesamt 1-mal bearbeitet
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Mi 09.12.09 10:28 
Für die Variante 1b von JüTho gibt es ein CodeSnipple: dotnet-snippets.de/d...drucken-SID1061.aspx

Drucker-Auswahl müsstest du über den Default-Drucker machen.

Schöner ist die 2. Lösung (es gibt für die gänigen Formate meistens Assemblies die dir weiter helfen - leider auch viele kommerzielle).

Gruß Daniel
Jamez Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18



BeitragVerfasst: Mi 09.12.09 14:12 
vielen Dank für die Antworten, hat mir erstmal weitergeholfen :-)


Okay, gibt doch noch ein kleines Problem


Und zwar wenn ich

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
private static void PrintFile(string fullPath)
        {
            FileInfo fileInfo = new FileInfo(fullPath);

            if (!fileInfo.Exists)
            {
                throw new FileNotFoundException();
            }

            var printProcess = new Process();
            printProcess.StartInfo.FileName = fullPath;
            printProcess.StartInfo.UseShellExecute = true;
            printProcess.StartInfo.Verb = "print";
            printProcess.Start();
        }




benute, zeigt er mir bei var printProcess = new Process(); Process als Fehler an:

Der Typ- oder Namenspace "Process" konnte nicht gefunden werden
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Mi 09.12.09 14:59 
Die Fehlermeldung geht doch noch weiter oder?

Da steht drin woran es liegt.
Jamez Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18



BeitragVerfasst: Mi 09.12.09 15:10 
Fehlt eine Using-Direktive oder ein Assemblyverweis ?


Muss ich noch using System.xxx; hinzufügen ? ^^

Wenn ja was genau
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Mi 09.12.09 15:14 
Richtig :)

Die Klasse Process liegt im Namespace: System.Diagnostics

Wenn du die Klasse richtig schreibst (case sensitiv) zeigt VS, wenn dein Cursor auf dem Wort ist, unten rechts einen kleinen roten Balken an. Wenn du dort mit der Maus drüber gehst oder die Testenkombination Alt + Shift + F10 drückst bietet dir VS an, erstes ein using einzufügen oder zweites den kompletten Namespace einzufügen.

Finde diese Funktion extrem praktisch. Funktioniert auch um nicht existierende Methoden zu erstellen (Methodenkopf).

Gruß Daniel
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Mi 09.12.09 15:15 
Schau in die SDK-Doku/MSDN/Hilfe. Bei jeder Klasse steht auf der Hauptseite "Informationen zur Xxx-Klasse" ganz oben, zu welchem Namespace (=> using) und DLL (=> Referenz) die Klasse gehört. Jürgen
Jamez Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18



BeitragVerfasst: Mi 09.12.09 15:17 
Ahh vielen dank, jetzt weiß ich auch gleich wo ich schauen muss :-)