Erstellung eines virtuellen Druckers mit C#
Beispiele
◊ Sample Client application wird zu Test- und Entwicklungszwecken genutzt. Diese Anwendung zeigt an, wie man eine INI-Datei nutzt, um die Druckerauftrags-Informationen und -pfade in die generierten Dateien zu schreiben.
Sample Client Application downloaden:
Virtual Printer für C#
◊ Print Previewer - Beispielsanwendung, die die Features des virtuellen Druckers demonstriert. Print Previewer, der in benutzerdefinierten Client-Anwendungen benutzt wird, bietet detaillierte Informationen über gedruckte Dateien und zeigt die EMF-Dateien innerhalb des Formulars. Das Beispiel enthält den Code, der die Metadatei auf den Bildschirm ausgibt.
Print Previewer downloaden:
Virtual Printer für C#
◊ Collecting Multiple Documents - In diesem Beispiel werden wir einen leistungsstarken Client erstellen, der Dateien aus mehreren gedruckten Dokumenten zusammen sammeln wird und diese in einem ZIP-Archiv an das Remote-Gerät überträgt, indem FTP- oder HTTP-Protokolle genutzt werden.
Collecting Multiple Documents downloaden:
Virtual Printer für C#/C++, VB6/VB.NET
◊ Wie druckt man die Dateien programmatisch mithilfe der ShellExecute - Funktion
Wie druckt man die Dateien programmatisch mithilfe der ShellExecute - Funktion
Das Code-Beispiel unten zeigt an, wie man die Dateien programmatisch entweder mit dem physikalischen oder virtuellen Drucker druckt, indem man die ShellExecute - Funktion benutzt. Es demonstriert auch, wie man den standardmäßigen Systemdrucker verändert.
[DllImport("winspool.drv", CharSet = CharSet.Auto, SetLastError = true)]
public static extern bool GetDefaultPrinter(StringBuilder szPrinter, ref int bufferSize);
[DllImport("winspool.drv", CharSet = CharSet.Auto, SetLastError = true)]
public static extern bool SetDefaultPrinter(string szPrinter);
void PrintDocumentUsingShellExecute (string szPrinter, string DocumentPath)
{
StringBuilder szDefaultPrinter = new StringBuilder(256);
int bufferSize = szDefaultPrinter.Capacity;
//get the default printer
GetDefaultPrinter(szDefaultPrinter, ref bufferSize);
// change the default printer
if (String.Compare(szPrinter, szDefaultPrinter.ToString(), true) != 0)
{
SetDefaultPrinter(szPrinter);
}
// send the document to the print
Process printProcess = new Process();
printProcess.StartInfo.FileName = myDocument;
printProcess.StartInfo.Verb = "Print";
printProcess.StartInfo.CreateNoWindow = true;
printProcess.Start();
// set default printer back to original
if (String.Compare(szPrinter, szDefaultPrinter, true) != 0)
{
SetDefaultPrinter(szDefaultPrinter);
}
}
Es ist dann notwendig, diese Funktionen mit erforderlichen Parametern aufzurufen. Sie können, z.B., die MS Word- und PDF - Dokumente so drucken:
PrintDocumentUsingShellExecute("Your Virtual Printer", "c:\Documents\AnyDocument.doc")
PrintDocumentUsingShellExecute("Your Virtual Printer", "c:\ Documents \AnyDocument.pdf")