Forum: VB.NET |
Thema:
DRUCKEN IN .NET - HILFEEE!!! |
Von:
G. Guest (
27.05.2002 12:24) |
Hi!
Ich beschäftige mich zur Zeit mit dem Drucken in .NET.
Dabei habe ich erkannt, dass das in .NET völlig anders funktioniert, als in
VB 6.0.
Nur beim Seitenumbruch habe ich Probleme ...
Annahme:
Ich habe ein Dokument mit Grafiken und Text und der Text ist in jeder Zeile
anders formatiert.
Dieser Umstand verhindert, dass ich (wie bei einer reinen Textdatei) einen
String-Array anlegen kann, welchen ich Element für Element durchlaufe und
mir den Index des letzten Elements (dh die Textzeile) "merke", damit ich
dort bei einem erneuten Durchlauf meines PrintDocument-Handlers weitermachen
kann.
(siehe Bespiel in der Doku unter 'PrintDocument.Print Method')
DENN - setzt man die Eigenschaft 'HasMorePages' (von
'PrintPageEventArgs'-Objekt) auf True, bewirkt das ja nur, dass, sobald die
Handler-Methode durchlaufen ist, die Methode wieder aufgerufen wird - so
lange, bis HasMorePages False ist.
Doch ich kann mir die Stelle, wo weitergedruckt werden soll, nicht "merken",
da entweder irgendeine Grafik oder ein Text mit irgendeinem Format gedruckt
wird, was ja heißt, dass die Zeilenhöhe immer verschieden ist.
Daher müsste ich vor jeder Zeile oder Grafik prüfen, ob sie noch auf die
Seite passt, und wenn nicht, eine neue Seite beginnen und die Zeile oder die
Grafik dann dort erst drucken.
Ich denke, ich sehe da wahrscheinlich irgendwas falsch ... oder?
Nur eine Sache: das 'PrintPageEventArgs'-Objekt hat ein 'Graphics'-Objekt
auf dem im Prinzip gezeichnet wird.
Jetzt hatte ich die Idee, bevor ich überhaupt die 'Print'-Methode vom
'PrintDocument'-Objekt aufrufe, zuerst folgendes zu machen:
Ich definiere einen Array vom Typ Graphics.
Dann zeichne ich mein Dokument auf mehrere Graphics-Objekte, dh, habe ich
auf einer Seite (einem Graphics-Objekt) nicht genug Platz, erstelle ich ein
neues Graphics-Objekt, auf dem ich weiterzeichne.
Die ganzen Graphics-Objekte füge ich jeweils dem Graphics-Array hinzu.
Erst am Ende meines Dokuments, rufe ich die Print-Methode auf.
Im Handler durchlaufe ich dann den Array und weise bei jedem Durchlauf der
Handler-Methode das nächste Graphics-Objekt meines Arrays dem
Graphics-Objekt in der Schnittstelle der Handler-Methode zu während
'HasMorePages' immer True ist.
Habe ich das letzte Element des Arrays erreicht, setze ich 'HasMorePages'
auf False.
Dieses Prinzip ermöglicht mir (denke ich ) auch auf ganz einfache Weise, nur
zB Seite 4 bis 6 zu drucken, indem ich nur die jeweiligen Elemente des
Arrays verwende.
Liege ich mit meiner Idee völlig daneben, gibt es vielleicht ein viel
einfacheres Prizip, oder geht das Drucken eh nur so?
Ich freue mich über eure Hilfe, das Prinzip des mehrseitigen Druckens unter
.NET zu verstehen!
Danke schon mal.
Grüße aus Österreich
Gerald
Betreff |
Von |
Datum |
|
  |
RE:DRUCKEN IN .NET - HILFEEE!!!
Hi!<br><br>Soeben habe ich entdeckt, dass 'PrintPageEventArgs.Graphics' ReadOnly ist.<br><br>Somit ist meine ganze Idee beim Teufel ...<br><br>Bitte helft mir weiter!<br><br>Danke<br><br>Gerald |
 |
 |
 |
|
|
G.
Guest
|
27.05.2002 12:25 |
|
  |
RE:DRUCKEN IN .NET - HILFEEE!!!
Würde mich auch sehr über eine mail freuen:<br><br>gerald.bader@edv-XXXsos.at<br><br>Danke<br><br><br>Gerald<br>(email ohne XXX) |
 |
 |
 |
|
|
G.
Guest
|
27.05.2002 12:30 |
|
|
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!