Buell Geschrieben 20. August 2002 Teilen Geschrieben 20. August 2002 Hi, ich habe hier ein MSChartControl, das einfach nur eine Jahresübersicht von Zahlen hat (12 Reihen, eine Spalte) wenn ich wie im VB6 Buch von Michael Kofler beschrieben das Ding drucken will, dann fehlt links und recht ein wenig, so das die Y-Achsenbeschriftung (also 100,200,300,400..) sowohl links auch rechts nicht komplett sind. Das MSChart-Control selbst unterstützt das drucken ja nicht, so dass der Umweg über das Clipboard und das Printer-Objekt gegangen werden muss: Clipboard.clear Dim border Me.MSChart2.EditCopy Set Picture.Picture = Clipboard.GetData(vbCFMetafile) Printer.ColorMode = 1 Printer.Orientation = vbPRORLandscape border = Printer.ScaleWidth / 20 Printer.PaintPicture Me.Picture1.Picture, border, _ border,Printer.ScaleWidth - 2 * border, _ Printer.ScaleHeight - 2 * border Printer.EndDoc Testweise habe ich mit den Border-Werten rumgespielt und auch ein anderes Picture-Control (von Protoview) verwendet. Dort war das gleiche Problem. Nun, mein Leben hängt vom Feature "Chart Drucken" nicht ab, doch ich hätts halt gerne eingebaut. Any Hints? thanx Buell Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Buell Geschrieben 20. August 2002 Autor Teilen Geschrieben 20. August 2002 Lösung gefunden mit dem Imagecontrol und andere Width-Werte gehts nun optimal: Me.MSChart2.EditCopy Me.Image1.Picture = Clipboard.GetData(vbCFMetafile) If Me.Option1.Value = True Then Printer.Orientation = vbPRORLandscape Else Printer.Orientation = vbPRORPortrait End If Printer.ScaleMode = vbTwips co = Printer.ScaleWidth / Me.Image1.Width y = Printer.CurrentY Printer.PaintPicture Me.Image1.Picture, 0, y, Me.Image1.Width * co, Me.Image1.Height * co Printer.EndDoc ciao Buell Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.