Print (Export) als PDF ohne Dialog

Guten Tag,

Wir müssen eines unserer alten Projekte, das mit L&L 16 arbeitet, um eine Funktion erweitern. Die Funktion soll nun einen bestehenden Report, ohne Benutzereinagbe, als PDF-Datei speichern.

Leider bin ich bei der Umsetzung auf ein Problem beim Speichern gestoßen.
Sobald ich die LlExportOption.ExportQuiet wird mein Report nicht mehr gespeichert.
Ohne diese Option fragt der L&L mittels Dialog nach dem Speicherort. Wenn ich diesen Angebe wird der Report korrekt als PDF gespeichert. Was mich etwas wundert, der Dialog zum Speichern der PDF Datei enthält nicht den Pfad der mittels LlExportOption.ExportPath angegeben wurde.

Wenn die Option LlExportOption.ExportQuiet auf ‘1’ gesetzt wird, passiert einfach nichts, es kommt keine Fehlermeldung und die Datei wird nicht gespeichert.

Anbei der Code:

LL.ConvertCRLF = True
LL.AutoProjectFile = MyReportfilename


LL.AutoShowSelectFile = False
LL.AutoShowPrintOptions = False
LL.AutoDestination = LlPrintMode.Export


LL.ExportOptions.Add(LlExportOption.ExportTarget, "PDF")


' Der Name entspricht 'pdfName.pdf'
LL.ExportOptions.Add(LlExportOption.ExportFile, PDFName)

' Der Pfad entspricht zum Beispiel : "C:/tmp/Test"
LL.ExportOptions.Add(LlExportOption.ExportPath, pdfFilePath)

LL.ExportOptions.Add(LlExportOption.ExportQuiet, "1")


Try
    LL.Print()

Catch ex As Exception
    Showerror(ex)
End Try

LL.Dispose()

Ich bin Dankbar über jede Hilfe !

Hallo Gerd und herzlich willkommen hier im Forum :slight_smile:!

Ich würde mal einen Blick in die Logdatei werfen, da solltest du schon klarer sehen, was schief läuft. Der Pfad müsste in jedem Falle Backslashes verwenden, keine Forward-Slashes. Also “c:\tmp\Test”.

Hallo Herr Bartlau,

Vielen Dank für die schnelle Antwort, der Pfad enthält nur Backslashes.
Ich hab den Debug Modus nun folgend eingeschlatet aber leider wird auch diese Datei nicht erstellt:

 LL.Debug = LlDebug.LogToFile

' Beides versucht 
LL.DebugLogFilePath = "C:\tmp\llLog.log"
oder
 LL.DebugLogFilePath = "C:\tmp\llLog.txt"

Die Logdatei COMBIT.LOG unter ‘AppData/Roaming’ ist ebenfalls leer.

Vielleicht einfach mal Debwin4 starten, das Logging aktivieren und erst dann die Anwendung starten? Dann sollten Änderungen im Code gar nicht nötig sein. Eventuell fehlt auch nur ein LlDebug.Enabled | LlDebug.LogToFile bei der ersten Zeile.

Hallo Gerd, schau mal hier:

Guten Morgen,

Durch das setzen von

LL.Debug = LlDebug.Enabled | LlDebug.LogToFile

wird das schreiben des Logs aktiviert. Leider wird beim nutzen von Debwin4 nichts geloggt, nutze ich aber Debwin3 wird eine Logdatei (llLog.log) geschrieben.

In der Logdatei ist aber nichts als ‘Error’ markiert und es gibt nur einige Einträge mit ‘Unsupportet Option’.

Um eine Vergleich zu einem korrekt ausgeführten Druck zu bekommen, habe ich noch ein Log geschrieben das jedoch mittels Userdialog fragt wo die Datei gespeichert werden soll. Da das ohne Probleme funktioniert habe ich die beiden Dateien verglichen und bei beiden steht quasi exakt das gleiche, beide haben auf Zeile 2787:

<EXPORT(0X0DD7D8C8):End → Der Vorgang wurde erfolgreich beendet. (00000000)

Mit Dialog:
=> LL.ExportOptions.Add(LlExportOption.ExportQuiet, “0”)
llLog_MitDialog.log (423.4 KB)

Ohne Dialog
LL.ExportOptions.Add(LlExportOption.ExportQuiet, “1”)
llLog.log (423.3 KB)

Das Problem wieso der Export nicht funktioniert liegt aber bei Zeile 587. Denn bei dem Log mit Userdialog wird beim Speichertort folgendes angezeigt:
07:56:11.685 00005018/04 7 »[cmLL16EX] file=C:\PDF\Exports\240506_240507\exportReportEinnahmen.pdf

und bei der Datei ohne Dialog:
file=c:\PDF\Exports\240506_240507\exportReportEinnahmen.pdf

Das einzige Problem ist das der Laufwerkbuchstabe nicht in Großbuchstaben ist, das ‘c’ in ‘C’ geändert und der Export läuft ohne Probleme.