Drucker und Page Size programmseitig setzen

Hallo,

mein C#-Programm soll verschiedene Arten von Etiketten drucken, die auch von unterschiedlichen Größen sein können.
Das Druckmodul soll auf einem Server eingerichtet werden, das Designer-Programm soll aber von einem anderen Rechner aufrufbar sein, auf dem keine oder andere Drucker als auf dem Server present sein können.
Ich habe daher vor Designer in einem Printerless-Modus aufrufen und Printer-File (*.lbp) beim Speichern löschen, auf dem Server das Template nehmen und programmseitig auf einem spezifischen Drucker ausdrucken. Kann das Szenario umgesetzt werden?

Ich kann aktuell leider nicht finden wie ich:

  • lbp Datei nicht speichern bzw beim Laden ignorieren kann? Aktuell setze ich das Pattern IRepository um und ignoriere den Typ “RepositoryItemType.PrinterConfig” einfach beim CreateOrUpdateItem.
  • Bei Erstellung eines neuen Label-Templates (auf dem Virtuellen Device) eine bestimmte Etiketten-Größe festlegen kann ohne Wizard etc im Designer aufzurufen
  • Wenn die Größe von Label (Bandbreite o.ä.) sich ändert, wie kann ich das Template programmseitig anpassen? Ich meine nur die Seitengröße, natürlich, die einzelne Elementen (texte, Barcodes etc) sollen nachher manuell nachjustiert werden.

Viele Grüße,
Alexej

Hi Alexej, du könntest per DOM das Projekt on runtime ändern, schau mal den folgenden Link da siehst du wie man den Drucker ändert, per DOM kannst dann was du willst ändern :wink: Für dich relevant der erste Teil, also im Event DefinePrintOptions() damit du auf das gerade geladene zugreifen kannst, falls Fragen sind gerne fragen.

1 Like

Danke Erdal, das ist ein sehr versprechendes Hinweis!

Leider habe ich dabei ein anderes Problem.
Ich habe die Größenanpassung wie folgt umgesetzt (Printerless-Mode ist an):

ll.ProjectLoaded += (sender, args) =>
{
 var projectLabel = new ProjectLabel((combit.Reporting.ListLabel)sender);
 projectLabel.GetFromParent();
 var regionZero = projectLabel.Regions[0];
 regionZero.Layout.XSize = "30000"; 
};
ll.Design();

Beim Aufruf bekomme ich nun folgende Fehlermeldung:
image

Darf Layout in Runtime geändert werden?
*.lbp Datei schließe ich nun doch nicht aus, weil Layout-Angaben dort gespeichert werden.

Hallo Alexey,

Wir konnten die Fehlermeldung reproduzieren und haben eine mögliche Ursache für Dein Problem gefunden! Wir werden ein aktuelles LatestPrerelease Service Pack für Dich bereitstellen, welches einen entsprechenden Fix für List &Label 29 enthält. Du kannst es ab morgen im Supportcenter unter folgendem Link herunterladen: https://www.combit.net/service-packs/

1 Like

Vielen Dank, das hat funktioniert!
Wann soll diese Version übrigens veröffentlicht werden? Mir fehlt ein bisschen das passende Nuget-Package. Die prerelease-Versions werden nicht veröffentlicht, oder?

Die Prereleases gibt es tatsächlich nicht als Nuget. Solange du nicht auf das Enterprise-Package angewiesen bist sollte das hier aber kein Problem sein, die Änderung betraf den unmanaged Teil, der nicht Bestandteil der “normalen” Nugets ist.

Ein Release von 29.002 ist aktuell für ca. Ende April geplant. Dann gibt es auch aktualisierte Nugets.