Erstellung eines virtuellen Druckers mit C/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++/MFC
◊ 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++/MFC
◊ Printer Configuration - Beispiels-Dienstprogramm zur Konfiguration des virtuellen Druckers. Dieses Dienstprogramm ermöglicht das Festlegen solcher Parameter, wie Pfad der Client-Anwendung, Transfermodus des INI-Datei-Pfades und Ordner zum Speichern der generierten Dateien. (Der Drucker kann im EMF-, PDF-, TXT-, JPEG-, TIFF- oder BMP-Dateiformat drucken.)
Printer Configuration downloaden:
Virtual Printer für C++/MFC
◊ 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.
void PrintDocumentUsingShellExecute (char *szPrinter, char * szDocumentPath)
{
char szDefaultPrinter[MAX_PATH];
DWORD bufferSize = MAX_PATH;
// get the default printer
GetDefaultPrinter(szDefaultPrinter, &dwBufSize);
//change the default printer
if(strcmp(szPrinter, szDefaultPrinter) != 0)
{
SetDefaultPrinter(szPrinter);
}
// send the document to the print
ShellExecute(NULL, "print", szDocumentPath, NULL, NULL, SW_HIDE);
// set default printer back to original
if(strcmp(szPrinter, szDefaultPrinter) != 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")