User login

Donate

Donate for server costs [more]

Target:
$ 3000
Achieved:
$ 186.3
Fees:
$ 13.36
6.2 %
Donate
SourceForge.net Logo

Woher kann der Fehler "Active-X-Server not started" kommen ??

5 replies [Last post]
sigiK
Offline
Joined: 03/11/2008

Folgendes Programm führt - MANCHMAL(!) - zum o.a. Fehler:

           ' PDFcreator starten
            If PDFC Is Nothing Then
                PDFC = New PDFCreator.clsPDFCreator
            End If
            PDFC.cStart("/NoProcessingAtStartup", True)
            PDFC.cClearCache()
            PDFC.cPrinterStop = False
            PDFC.cOption("UseAutosave") = 1
            PDFC.cOption("AutosaveFilename") = SelectedMail.EntryID & ".pdf"
            PDFC.cOption("UseAutosaveDirectory") = 1
            PDFC.cOption("AutosaveDirectory") = gUserApplPath & "\temp"
            PDFready = False
            PDFdone = False
            PDFC.cIsConverted = False

Woran kann das liegen?

Wie kann ich das absichern?

VIELEN DANK FÜR TIPS !!!

Sigi

Frank
Frank's picture
Offline
DeveloperTranslator
Joined: 03/22/2009

In welcher Zeile erfolgt der Fehler? Und kann man etwas mehr Code bekommen? Insbesondere was davor noch passiert. Ich hatte diesen Fehler noch nie.

__________________

Frank
Team pdfforge

sigiK
Offline
Joined: 03/11/2008

Leider weiss ich die Zeile auch nicht :-( -der Fehler tritt wohl nur bei einem sehr langsamen PC auf(?); ich habe daher bereits Code eingefügt, weil es gelegentlich vorkam, daß die Änderung des Standarddruckers nicht erfolgt war und Outlook dann auf den physischen Drucker anstelle von PDFcreator gedruckt hat...

Danke !

Sigi

 

Hier nun die ganze Klasse (damit wird ein markiertes Mail aus Outlook in PDF konvertiert): (ich habe nur einige wenige Control-Strukturen weggelassen; z.B. das warten auf PDFready etc.)

 

Public Class Mail2pdf

    Private WithEvents PDFC As PDFCreator.clsPDFCreator
    Public SavedAttFile As String
    Private PDFready As Boolean
    Private lDefaultPrinter As String
    Public Sub New(ByVal SelectedMail As Object)

        Trace.WriteLine("Start PDF-Konvertierung")
        Try
            ' PDFcreator starten
            PDFC = New PDFCreator.clsPDFCreator
            PDFC.cStart("/NoProcessingAtStartup", True)
            PDFC.cClearCache()
            PDFC.cPrinterStop = False
            PDFC.cOption("UseAutosave") = 1
            PDFC.cOption("AutosaveFilename") = SelectedMail.EntryID & ".pdf"
            PDFC.cOption("UseAutosaveDirectory") = 1
            PDFC.cOption("AutosaveDirectory") = gUserApplPath & "\temp"
            PDFready = False
            PDFC.cIsConverted = False

            ' Standarddrucker ändern
            Dim Printer As New System.Drawing.Printing.PrinterSettings
            If Printer.IsDefaultPrinter Then lDefaultPrinter = Printer.PrinterName
            Dim wshnetwork As Object = CreateObject("WScript.Network")
retry:      wshnetwork.SetDefaultPrinter("PDFCreator")
            ' prüfen, ob Änderung erfolgreich war
            Trace.WriteLine("Defaultprinter=" & lDefaultPrinter)
            System.Windows.Forms.Application.DoEvents()
            System.Threading.Thread.Sleep(300)
            Dim PrinterTest As New System.Drawing.Printing.PrinterSettings
            Trace.WriteLine(PrinterTest.PrinterName & ", isDefault=" & PrinterTest.IsDefaultPrinter)
            If PrinterTest.PrinterName <> "PDFCreator" Then
                If MsgBox("Standarddrucker konnte nicht gesetzt werden", MsgBoxStyle.RetryCancel, "Mail2Pdf") = MsgBoxResult.Retry Then GoTo retry
                GoTo exitsub
            End If

            ' Mail drucken
            SelectedMail.PrintOut()
            ' Fertig oder abgebrochen ?
            If PDFC.cOutputFilename <> "" And PDFC.cIsConverted = True Then
                PDFready = True
            End If

     ' Dateinamen zurückgeben
            If PDFready Then
               SavedAttFile = gUserApplPath & "\temp\" & SelectedMail.EntryID & ".pdf"
            End If
            ' Standarddrucker zurückändern
            wshnetwork.SetDefaultPrinter(lDefaultPrinter)

        Catch ex As Exception
            MsgBox(ex.ToString, MsgBoxStyle.Exclamation Or MsgBoxStyle.OKOnly, "Error: Save as ...")
            GoTo exitsub

        End Try
exitsub:
        Try
     ' PDFcreator beenden
            PDFC.cClose()
            System.Runtime.InteropServices.Marshal.ReleaseComObject(PDFC)
            GC.Collect()
        Catch ex As Exception
        End Try

    End Sub
    Public Sub PDFC_eReady() Handles PDFC.eReady
        ' PDF erfolgreich erstellt
        PDFready = True
    End Sub


    Private Sub pdfc_eError() Handles PDFC.eError
        ' Fehler in PDFcreator
        MsgBox(PDFC.cError.Number & " " & PDFC.cError.Description, MsgBoxStyle.Critical, "Fehler in PDFCreator")
    End Sub
End Class
sigiK
Offline
Joined: 03/11/2008

Gibt es keinen Tip, wo und wie ich etwas absichern müsste oder könnte ?

sigiK
Offline
Joined: 03/11/2008

Problem hat sich erledigt - habe für das Projekt einen anderen Konverter gefunden (www.bioPDF.com), der wesentlich stabiler läuft und meine Probleme löst.

Frank
Frank's picture
Offline
DeveloperTranslator
Joined: 03/22/2009

Auch wenn Du Dich schon für ein anderes Produkt entschieden hast, möchte ich trotzdem antworten. Das Problem liegt höchstwahrscheinlich daran, dass der PDFCreator auf einem sehr langsamen Rechner läuft. PDFCreator ist ein ActiveX-Exe-Server und wird über die Com-Funktion cStart() gestartet. Dieses Starten erfolgt asynchron. Wenn jetzt der Server noch nicht vollständig geladen ist und vorher schon der nächste Befehl erfolgt, kann es zu dieser Fehlermeldung kommen. Möglicherweise hilft in diesem Fall ein Wait\Sleep nach dem cStart().

__________________

Frank
Team pdfforge

© pdfforge.org :: Contact us :: Sitemap