| |

Allgemeine DiskussionenRe: RTF-Druckvorschau | |  | Autor: Dirk | Datum: 08.05.02 12:24 |
| Danke Norbert,
aber der Tip hilft mir nicht wirklich weiter.
Folgende Situation habe ich:
1) die RTF-Box dem Druckbild anpassen mit
uLineWidth = .pic_Container.ScaleX(oSeitenBreite, vbMillimeters, vbTwips) - _
.pic_Container.ScaleX(oRandLinks, vbMillimeters, vbTwips) - _
.pic_Container.ScaleX(oRandRechts, vbMillimeters, vbTwips)
' Einen hDC vom Drucker erstellen für die RTB in WYSIWYG
uDC = CreateDC(Printer.DriverName, Printer.DeviceName, 0, 0)
' Der RTF sagen das sie sich dem Druckbild anpassen soll (WYSIWYG)
u = SendMessage(RTF.hwnd, EM_SETTARGETDEVICE, uDC, ByVal uLineWidth)
Hiermit Stimmt die Darstellung der RTF-Box mit dem Druckbild überein, d.h Zeilenumbrüche werden automatisch gesetzt, wenn ein Zeile von ihrer Länge die zugewiesenden Breite, abhängig von der eingestellten Schriftart, überschreitet.
2) Drucken auf Drucker
Es funktioniert, wenn ich mit folgender Vorgehensweise Drucke
Call SichtbereichePlot 'Druckbaren Bereich mit Rändern einstellen, incl der physikalischen Ränder des Druckers
Printer.Print ""
fr.hdc = Printer.hdc
fr.hdcTarget = Printer.hdc
fr.chrg.cpMin = uStartPosition(n) 'Beginnzeichen für den Druck bestimmen
fr.chrg.cpMax = -1&
uNextCharPosition = SendMessage(RTF.hwnd, EM_FORMATRANGE, 1&, fr)
'uNextCharPosition => ZeichenPosition, welches auf der nächsten Seite gedruckt würde
Printer.EndDoc
3) Drucken auf dem Picture Steuerelement
.pic_Plot.Cls
Sichtbereiche 'Druckbaren Bereich mit Rändern einstellen
'Druckinstruktionen festlegen
fr.hdc = .pic_Plot.hdc
fr.hdcTarget = .pic_Plot.hdc
fr.chrg.cpMin = uStartPosition(ShowPage)
fr.chrg.cpMax = -1
' ' Einen hDC vom Drucker erstellen für die PictureBox in WYSIWYG
' uDC = CreateDC(Printer.DriverName, Printer.DeviceName, 0, 0)
'
' ' Der PictureBox sagen das sie sich dem Druckbild anpassen soll (WYSIWYG)
'
' u = SendMessage(.pic_Plot.hwnd, EM_SETTARGETDEVICE, uDC, _
' 0&)
________________________________
und genau dieser Part funktioniert nicht, die PictureBox passt sich nicht dem Druckbild an
--------------------------------------------------------
'***Text mit EM_FORMATRANGE ausdrucken Hauptteil***
'---------------------------------
uNextCharPosition = SendMessage(RTF.hwnd, EM_FORMATRANGE, 1, fr)
Nachfolgend ein Beispiel was im Ausdruck auf dem Drucker (konform mit der Darstellung in der RTF-Box am Bildschirm) und der PictureBox passiert.
Druckbereiche / Ränder sind identisch eingestellt incl. der Berücksichtigung der physikalischen Ränder des Druckers.
EInstellungen:
SeitenBreite=210mm
SeitenHöhe=297mm
RandLinks=25mm
RandRechts=25mm
RandOben=25mm
RandUnten=25mm
Schriftart=Times New Roman
Schriftgröße = 12
Text im RTF und im Druck:
Zeile1:
Für die mein Beispiel- Projekt würde ich gerne einen Texteditor programmieren, in dem ich
Zeile2:
vergleichbare Funktionalitäten wie WordPad habe. Diesen Texteditor werde ich als
Zeile3:
Steuerelement aufbauen.
Darstellung in der PictureBox:
Zeile1:
Für die mein Beispiel- Projekt würde ich gerne einen Texteditor programmieren, in dem ich
Zeile2:
vergleichbare Funktionalitäten wie WordPad habe. Diesen Texteditor werde ich als Steuerelement
Zeile3:
aufbauen.
Die Darstellung des Textes unterscheidet sich in Zeile 2 und 3, hier findet der Zeilenumbruch an einer anderen Stelle statt.
So weit wie ich feststellen konnte, unterscheidet sich die Ausgabe des Textes im Druck und in der PictureBox vom Schriftschnitt, d.h in der PictureBox wird z.B "Times New Roman" etwas kleiner dargestellt wie im Druck.
Der RTF-Box konnte ich diesen Zustand ja noch erklären (s.oben), aber wie erkläre ich der PictureBox, das Sie sich dem Druckbild des Druckes anpassen soll ????
Ich hoffe mir kann einer helfen, Ich sitze schon fast 1 Woche an diesem Problem und werde langsam ziemlich frustig
Vielen Dank an alle die mir helfen können |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
sevWizard für VB5/6 
Professionelle Assistenten im Handumdrehen
Erstellen Sie eigene Assistenten (Wizards) im Look & Feel von Windows 2000/XP - mit allem Komfort und zwar in Windeseile :-) Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) TOP Entwickler-Paket 
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1866.50 EUR...
Jetzt nur 979,00 EURWeitere Infos
|