Mehrere Seiten auf einen Drucker ausgeben
-
Hallo,
ich möchte in meiner Anwendung mehrere Seiten ausgeben.
Dazu habe ich ein Beispiel gefunden welches aber nur eine Zeile ausgibt.// Drucken_02.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung. // Visual Studio 2015 C++ // Beispiel von: // https://www.c-plusplus.net/forum/299274-full // https://www.c-plusplus.net/forum/143792-full (textdrucken()) // UNICODE ausschalten (Projektmappen-Explorer-Eigenschaften) #include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <Windows.h> #include <iostream> #include <string> using namespace std; using std::string; #pragma comment(lib, "Winspool.lib") int textdrucken(); int main() { textdrucken(); cout << "Programm Ende"; cin.get(); return 0; } int textdrucken() { // Standard-Drucker ermitteln --> szPrinter char szPrinter[MAX_PATH] = { '\0' }; DWORD zeichen = MAX_PATH; GetDefaultPrinter(szPrinter, &zeichen); cout << "Drucker-Name " << szPrinter << endl; HDC drucker = CreateDC(NULL, szPrinter, NULL, NULL); DOCINFO dokument_info; memset(&dokument_info, 0, sizeof(DOCINFO)); dokument_info.cbSize = sizeof(DOCINFO); dokument_info.lpszDocName = "testdruck"; char *String = "Testdruck Juergen"; // drucken StartDoc(drucker, &dokument_info); StartPage(drucker); int x = 0, y = 0; // Inhalt ausgeben TextOut(drucker, x, y, String, strlen(String)); EndPage(drucker); // Neue Seite EndDoc(drucker); // Dokument wird geschlossen DeleteDC(drucker); return 0; }
Wie muss ich meinen Code erweitern um mehrere Zeilen bzw. Seiten ausgeben zu können ?
MfG
Juergen B.
-
Das sollte doch anhand der Namen StartPage, TextOut und EndPage ersichtlich sein - packe diese in entsprechende Schleifen.
-
Hallo,
mit diesem Code kann ich schon mehrere Zeilen drucken:
// Drucken_02.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung. // Visual Studio 2015 C++ // Beispiel von: // https://www.c-plusplus.net/forum/299274-full // https://www.c-plusplus.net/forum/143792-full (textdrucken()) // UNICODE ausschalten (Projektmappen-Explorer-Eigenschaften) #include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <Windows.h> #include <iostream> #include <string> using namespace std; using std::string; #pragma comment(lib, "Winspool.lib") int textdrucken(); int main() { textdrucken(); cout << "Programm Ende"; cin.get(); return 0; } int textdrucken() { // Standard-Drucker ermitteln --> szPrinter char szPrinter[MAX_PATH] = { '\0' }; DWORD zeichen = MAX_PATH; GetDefaultPrinter(szPrinter, &zeichen); cout << "Drucker-Name " << szPrinter << endl; HDC drucker = CreateDC(NULL, szPrinter, NULL, NULL); DOCINFO dokument_info; memset(&dokument_info, 0, sizeof(DOCINFO)); dokument_info.cbSize = sizeof(DOCINFO); dokument_info.lpszDocName = "testdruck"; char *String = "Testdruck Juergen"; // drucken StartDoc(drucker, &dokument_info); StartPage(drucker); int i = 0, x = 50, y = 200; // Inhalt ausgeben for (i = 1; i < 4; i++) { TextOut(drucker, x, i*y, String, strlen(String)); } EndPage(drucker); // Neue Seite EndDoc(drucker); // Dokument wird geschlossen DeleteDC(drucker); return 0; }
MfG
Juergen B.