LlSetPrinterInPrinterStream Auswahl der Seiten aus PrinterSettings wird ignoriert

Hallo,

Angaben:
.NET 5
ListLabel 25
Windows 10 Pro

ich habe mich an dieser Anleitung gehalten:

Code:

using (var myReport = new MemoryStream())
{
using (var file = new FileStream(PfadZurReportDatei, FileMode.Open, FileAccess.Read))
{
file.CopyTo(myReport);
}
using (var stream = new MemoryStream())
{
/*
* printerSettings hat PrintRange = PrintRange.SomePages
* FromPage = 1
* ToPage = 2
*/

  	ListLabelInstance.Core.LlSetPrinterInPrinterStream(LlProject.List, printerSettings, stream);
  	ListLabelInstance.AutoShowPrintOptions = false;
  	ListLabelInstance.Print(LlProject.List, myReport, stream);
  }

}

Insofern funktioniert eigentlich alles. Richtiger Drucker wird angewählt, richtiger Report wird gedruckt, Duplex usw. alles richtig.
Es werden aber leider alle Seiten gedruckt. Ich habe in meinen erzeugten PrintSettings allerdings genau angegeben, dass von Seite 1 zu Seite 2 gedruckt werden soll. Dies wird allerdings komplett ignoriert und alle 50+ Seiten gedruckt.
Ich habe auch beim debuggen kontroliert, ob sich die Werte noch ändern bevor ich den MemoryStream setze, dies ist jedoch nicht der Fall. FromPage, ToPage sind auch nicht vertauscht.

Meine Frage ist jetzt also, ob LlSetPrinterInPrinterStream jetzt nur den Printer “setzt”, oder ob die Methode auch alle Einstellung der PrinterSettings berücksichtigt.

Wer sich fragt, warum wir diesen Weg gehen => Wir bieten ein PropertyGrid an, in dem die Nutzer sich die Druckeigenschaften zusammenklicken können.Ich muss also eine selbst definierte PrinterSettings übergeben.

Viele Grüße

Willkommen zurück :o)

Der Seitenbereich in den PrinterSettings wird nicht ausgewertet, die zu druckenden Seiten müssten Sie in Ihrer Anwendung mittels einer Option übergeben.

Im .NET müssten Sie dies direkt im DefinePrintOptions Event setzen, folgend finden Sie mal ein kleines Beispiel.

 private void LL_DefinePrintOptions(object sender, EventArgs e)
    {
        LL.Core.LlPrintSetOption(LlPrintOption.StartPage, 2);
        LL.Core.LlPrintSetOption(LlPrintOption.LastPage, 3);
    }