Hallo zusammen,
ich verwende List&Label30 und will verschiedene Labels drucken. Das Design der Labels habe ich über eine lst
-Datei im L&L Designer erstellt, der ein JSON-Objekt als Datenquelle nutzt. Über ein weiteres JSON-Objekt, das als Parameter für die Druckmethode auf dem Server verwendet wird (die der REST-Service aufruft), werden notwendige Daten wie z. B. Versandnummer und Druckername dynamisch mitgegeben.
Hier ist ein Ausschnitt der C# Logik:
if (dataSource != null)
{
using (var listLabel = new ListLabel())
{
string moduleName = jsonData.GetModuleName();
var template = GetReportTemplateFilePath($"{moduleName}.lst");
listLabel.LicensingInfo = GetAppSettingsStringValue(LicenceKey);
listLabel.DataSource = new JsonDataProvider(JsonSerializer.Serialize(dataSource));
listLabel.Printerless = true;
if (!string.IsNullOrEmpty(jsonData.PrinterName))
{
listLabel.AutoShowPrintOptions = false;
listLabel.AutoShowSelectFile = false;
listLabel.Print(jsonData.PrinterName, LlProject.List, template);
}
}
}
Die Idee dabei war, zwar bei der Print()
-Methode den Drucker dynamisch mitzugeben, die Vorschau aber zu überspringen. die AutoShowPrintOptions
und AutoShowSelectFile
Properties auf false zu setzen, habe ich in anderen Forumeinträgen gefunden. Diese haben aber, soweit ich gesehen habe, nichts bewirkt.
Sobald die Print()
-Methode aufgerufen wird, erscheint ein Preview-Fenster, über dass ich dann für den einzelnen Druckauftrag über Rechtsklick auf das Drucksymbol (siehe Bild unten) entscheide, mit welchem Drucker ich drucken muss, da der Standard-Drucker nicht der richtige ist. Es soll über einen CAB-Drucker gedruckt werden.
Nach Drucken über die Vorschau mit eingestelltem Drucker, druckt er tatsächlich auch (wenn auch versetzt nach unten mitsamt einer Leerseite, aber das ist ein Thema für einen anderen Forumeintrag ), da die Logik aber auf dem Server abgebildet ist, sollte es über den hinterlegten Drucker automatisch im Hintergrund drucken, ohne das der User es noch jedes mal extra bestätigen muss.
Jetzt frage ich mich, ob ich vielleicht nicht ganz verstanden habe, was genau in dem Parameter PrinterName
in der Print()
-Methode eingefügt gehört. Ich verwende hier den DNS-Namen des Druckers, der auf dem Server konfiguriert ist.
Wie muss ich meinen Code umschreiben? Ist das was ich vorhabe überhaupt möglich?
VG Dani