Drucken mit MemoryStream, wie Name in Druckwarteschleife angeben?

Hallo wiedermal zusammen,

ich habe vermutlich keine großartige Frage.
Wir haben uns eine Druckvorschau gebastelt, mit dem EnhancedViewerControl, die ein PropertyGrid enthält, damit User sich die Druckereinstellungen basteln können.
Soweit funktioniert das alles auch sehr gut.

Wir übergeben die Druckereinstellungen wie folgt:

var settings = new PrinterSettings();
/*
    ...
    Zusammenbasteln der Druckereinstellungen
    ...
*/
// path ist der Pfad zum Report
if (settings.IsValid)
{
using var myReport = new MemoryStream();
using (var file = new FileStream(path, FileMode.Open, FileAccess.Read))
{
    file.CopyTo(myReport);
    using var printerStream = new MemoryStream();
    LL.Core.LlSetPrinterInPrinterStream(LlProject.List, settings, printerStream);
    LL.AutoShowPrintOptions = false;
    LL.Print(LlProject.List, myReport, printerStream);
}
}

Das Problem ist, dass wir so folgende Druckaufträge in die Druckwarteschleife bekommen:

_26_llstreamd46dec73cc6

Dies ist allerdings schlecht, da manche Kunden über PDF-Drucker drucken und die Datei dann so abgelegt wird. Bei einer entsprechende Anzahl an Dateien wird das natürlich unzumutbar.

Haben wir hier irgendwelche Optionen?
Unter den PrintSettings den “PrintFileName” anzugeben bringt nichts.

Version ist LL 26.4

Viele Grüße

Könnten Sie einmal versuchen, den DefinePrintOptions-Event der Komponente zu verwenden und darin dann (sender as ListLabel).Core.LlPrintSetOptionString(LlPrintOptionString.PrintJobname, "...") zu setzen?

Hier findet sich die Doku dazu: DefinePrintOptions Ereignis

Ich wusste doch, dass es da etwas gibt.
Gerade gesehen, dass ich die sogar mal an anderer Stelle genutzt habe vor Jahren.
Sollte mehr in die .NET Hilfe gucken…

Danke für die schnelle Antwort.

1 Like