Drucken und DLL suchen ?

Hallo Leute,

ich VERSUCHE gerade von VB 6 auf VB.NET 2005 Express umzusteigen.
Klappt ansich gar nicht so schlecht, habe nun aber folgende Fragen;

1.) Druckbeispiele sind rar, was ich gefunden habe, erscheint mir kompliziert.

WIE wird ein einfacher Text mit einer bestimmten Grösse, einer bestimmten Schriftart, an einer bestimmten X und Y Position (in mm ?) auf dem DIN A 4 Blatt gedruckt ??? Wer hat hier ein EINFACHES ! Beispiel ? Danke :smile:

WIE kann gleiches mit einer Bild Datei gemacht werden ? EINFACHES Beispiel vorhanden ? Danke :smile:

WELCHE Möglichkeiten gibt es überhaupt unter VB.NET 2005 Express zu drucken ? Unter VB 6 gibt es meines Wissens ja „nur“ das Printer Object.


2.) Ich habe eine Klassenbliothek DLL erstellt. Diese binde ich in ein EXE Project ein (alles in VB.NET). Das klappt soweit auch alles, nur;

WENN diese DLL Datei nicht vorhanden ist (warum auch immer…) und die EXE gestartet wird, erscheint diese brutale Windows Meldung, das das Programm einen Fehler gemeldet hat, und beendert werden muss.

WIE kann ich dies von der EXE abfangen, z.B. so das ich prüfe, ob die DLL vorhanden ist, wenn nicht, Meldung, DLL nicht da, Programm Ende. Ich habe alles probiert (Try Catch… und auch Fileexist(Dateiname), nichts hilf.

Wer hat die Lösung ? Danke :smile:

Jürgen

Hi!

Das Drucken ist gar nicht so wild - lies’ Dir mal die Dokumentation zur Klasse PrintDocument durch. Da ist auch ein einfaches Beispiel dabei.
Idee dahinter: Du baust Dir ein PrintDocument Objekt, stellst die gewünschten Parameter (z.B. den zu verwendenden Drucker) ein und rufst dann die Print() Methode auf.
Für jede zu druckende Seite wird ein Ereignis ausgelöst, in dem Du dann über das mitgegebene Graphics -Objekt zeichnen kannst.

Für die zweite Frage gibt es keine so einfache Antwort. Um überhaupt eine Chance zu haben, das mitzubekommen, müsstest Du ganz am Anfang einen Eventhandler für das AssemblyResolve Ereignis der aktuellen AppDomain (AppDomain.CurrentDomain) einhängen.
Dieser wird dann aufgerufen, wenn das Laden einer Assembly schief geht.
Das ganze Thema ist aber nicht so einfach und lässt sich nicht auf ein „die DLL-Datei ist nicht da“ reduzieren, weil es u.a. auch verschiedene Versionen der selben DLL (Assembly) geben kann, die dann vom Framework automatisch geladen werden.

Also der einfache Tip: Sorge dafür, dass alle nötigen Assemblies, die Du nicht dynamisch zur Laufzeit lädst, mitinstalliert werden und gut.

Gruß,
Martin

Hi Martin,

o.k. danke dir so weit…

Jürgen