MEHRSEITIG DRUCKEN
-
guten morgen allerseits.
ich habe folgendes problem:
ich zeichne auf mein Dialogfeld eine Grafik und muss diese dann ausdrucken. Das Problem ist, dass die Grafik größer als ein DIN A4 Blatt ist, d.h. es müssten mehrere Blätter gedruckt werden.Das Programm sollte auch andere Drucker(DIN A3) unterstützen.
Kann mir jemand einige Tipps, Links oder Sampels geben?
Habe leider noch nie gedruckt..Danke im Voraus,
woldo
-
nieemand???
-
Zu Drucken (gerade Sonderwünsche) herrscht hier meistens Schweigen.
Arbeite dich erstmal ins einseitige Drucken ein, dann fällt dir vielleicht was ein, wie es gehen könnte.
-
so hab ich mir das fast vorgestellt

-
estartu schrieb:
Zu Drucken (gerade Sonderwünsche) herrscht hier meistens Schweigen.
Besser gesagt wäre wohl Depression. Drucken ist doch etwas vom grausamsten was es gibt. Hab noch nie jemanden gefunden, dem das Spass macht *g*
Ehm und Mehrseitiges Drucken ... tjo ... jo Arbeite dich wie gesagt in zuerst ins einfach rein. Hier ein paar Stichwörter:
- OnPreparePrinting, OnBeginPrinting, OnPrepareDC, OnPrint, OnEndPrinting (Es wird auch in dieser Reihenfolge aufgerufen!)
- allg. CPrintInfo
- CPrintInfo::SetMaxPage; sollte vor DoPreparePrinting(...) in OnPreparePrinting aufgerufen werden, damit der User sagen kann welche Seiten. Kann aber auch danach noch in OnBeginPrinting definiert werden.
- Mit pDC->GetDeviceCaps kann man Seitengrössen, Verhältnis usw. holen.
- Man sollte wenn möglich nicht in MM_TEXT drucken, da man sonst nie zu gleich grossen Ergebnissen kommt im Vergeleich Bildschirm zur Druckseite. Die MapModes neben MM_TEXT haben alle eine negative Y Achse, was beim Drucken auch benötigt wird!
- pDC->IsPrinting zum feststellen ob der DC zum Drucken ist.
- pDC->SetWindowOrg sehr wichtig für mehrseitiges Drucken.void CMyView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo) { CView::OnPrepareDC(pDC, pInfo); if(pDC->IsPrinting()) { int nPages = pInfo->m_nCurPage - 1; // m_nCurPage startet bei 1 int y = nPages * m_nPageHeight; // m_nPageHeight, die Höhe einer Seite pDC->SetWindowOrg(0, y); } }- In OnPrint wird gezeichnet, wie in OnDraw.
- Den Basisklassenaufruf (z.b. CView::OnPrint) ruft die OnDraw Funktion auf.
- OnEndPrinting ist für das abschliessen und aufräumen zuständig.Jo ... hoffe das hilft jetzt schon mal ein Stück weiter. Such vielleicht noch nach Tutorials "Drucken mit MFC" oder so in der Art.
Grüssli
-
Dem stimme ich zu das Drucken keinen Spaß macht.

Ich sitze immo noch am versuch, plain text + bild auf dem druck zu bekommen und zwar variable in der Anordnung. Mal Text + bild nebeneinander und mal untereinander.

-
danke,
hab mich schon ein wenig eingearbeitet..
wisst ihr zufällig ob es möglich ist die gezeichnete skizze zu drehen?
oder das koordinatensystem zu drehen, damit nicht so viele seiten bedruckt werden?
-
Das müsste gehen, allerdings musst du selber drehen.
Eine fertige Funktion weiß ich nicht.