Probleme mit COM Schnittstelle aus VB.net

Hallo Forum,

bin ganz neu hier und schreibe für mich selbst ein Programm zur archivierung meiner prv. Dokumente.. Als Programmiesprache verwende ich VB.net (Visual Basic 2010 Express).

PDF Creator verwende ich als Desktoplösung bereits und nun habe ich es in meinem selbstgeschriebenen Programm über die COM Schnittstelle angesprochen.

 

Hierbei ergab sich folgendes Problem:

Wenn ich eine Datei z.B. eine Word-Datei übergebe wird diese ohne Probleme gedruckt... Jedoch passiert es immer wieder einmal, daß der PDFCreator Dialog mit Dateiname und Speicherort erscheint, obwohl dies bereits im VB Programm vorgegeben ist... Das passiert jedoch nur sporadisch...

Ein weiteres Problem ist, wenn z.B. Word vorher geöffnet ist, werden meine Optionen wie Autosave, Dateiformat völlig übergangen... und der Druckanstoß über Word wird auf den "alten" Std.-Drucker ausgeführt, so daß es zu keinem Drucken auf PDFCreator kommt.

Verwenden tu ich Office 2010 Prof., gleich ist aber auch bei Office 2003 + 2007...

Hier mal der Code mit dem ich die Datei an PDFCreator übergebe:

 

AltStdDrucker As String ' der Standartdrucker  Dim OutputPath As String = Archiv_Pfad & "\\FILES_" & Archiv_Name & "\\Thumbnails\\" ' Wohin PDFCreator es speichern soll

 

Dim OutputFilename As String = Virtuelle_DocID & ".jpg" ' Wie PDFCreator die Ausgabe benennen soll

 

Dim OriginalDatei As String = Archiv_Pfad & "\\FILES_" & Archiv_Name & "\\FILES\\" & Virtueller_DocFullName ' Die Datei die gedruckt werden soll

 

'Drucker merken

 

 

 

Dim pd As New PrintDocument()For Each s As String In PrinterSettings.InstalledPrinters'Standarddrucker ?

 

If pd.PrinterSettings.PrinterName = s Then

AltStdDrucker = s

 

End If

 

 

Next s'Drucker auswählen für PDFCreator

SetDefaultPrinter(

 

DirectCast("PDFCreator", String))Dim pdfjob As PDFCreator.clsPDFCreator

pdfjob =

New PDFCreator.clsPDFCreator

 

Try

pdfjob.cStart(,

 

True)Catch ex As Exception

 

'gemerkten Drucker wieder als Standard einsetzen

SetDefaultPrinter(

 

DirectCast(AltStdDrucker, String))' und Fehlermeldung

Fehlermeldung = ex.Message &

" - Fehler: Dateivorschau_erstellen, Fehler beim Drucken . . . "

Fehler_Instance.Ausgabe(Fehlermeldung)

 

Finally

 

' nochmal bisserl abwarten und dann gemerkten Drucker wieder als Standard einsetzen

System.Threading.

SetDefaultPrinter(

 

Thread.Sleep(2000)DirectCast(AltStdDrucker, String))End Try

 

'PDFCreater vorbereiten und Dokument drucken

 

.cOption(

.cOption(

.cOption(

.cOption(

With pdfjob"UseAutosave") = 1"UseAutosaveDirectory") = 1"UseAutosaveDirectory") = 1"AutosaveFormat") = 2 ' 0 = PDF, 1 = PNG, 2 = JPEG

.cOption(

.cOption(

.cClearCache()

.cPrintFile(OriginalDatei)

 

"AutosaveDirectory") = OutputPath"AutosaveFilename") = OutputFilenameEnd With

pdfjob.cPrinterStop =

False

 

'Wir warten bis der Druckjob gedruckt wurde

 

 

 

Do Until pdfjob.cCountOfPrintjobs = 0Application.DoEvents()Loop

pdfjob.cClose()

pdfjob =

Nothing

 

Könntet Ihr mir da vielleicht unter die Arme greiffen?

Hintergrund von diesem Programm... mit PDFCreator versuche ich mir Vorschaubilder des Dokumentes zu machen, daß mir in meinem Programm dann angezeigt wird.

 

Würde mich sehr über eine Nachricht freuen..

Danke und viele Grüße

Alex

 

 

Dim