Locale für Druck setzen liefert Parameterfehler

Hallo!

Ich versuche vor dem Druck (genau genommen wird ein PDF generiert) eine Locale zu setzen damit Datum und Zahlen richtig formatiert werden.

Aktuell scheitert es daran, dass eine Exception mit der Message “Parameterfehler” geworfen wird. Leider finde ich keine passenden Beispiele an denen ich mich orientieren kann. Folender Code wird verwendet:

        private static void LL_DefinePrintOptions(object sender, EventArgs e, BaseDocumentFreigabeType freigabeType, string language)
        {
            if (freigabeType == null)
            {
                return;
            }

            // Get the calling List & Label object
            ListLabel senderLL = sender as ListLabel;

            if (freigabeType.LLShowEmptyTables.HasValue && freigabeType.LLShowEmptyTables.Value)
            {
                senderLL.Core.LlSetOption(LlOption.DelayTableHeader, 0);
            }
            else
            {
                senderLL.Core.LlSetOption(LlOption.DelayTableHeader, 1);
            }

            if (!string.IsNullOrEmpty(language))
            {
                if (language.Equals("en", StringComparison.OrdinalIgnoreCase))
                {
                    senderLL.Core.LlSetOption(LlOption.LCID, 1033);
                }
                else
                {
                    senderLL.Core.LlSetOption(LlOption.LCID, 1031);
                }
            }

            if (freigabeType.LLMaxNumberOfIterations.HasValue && freigabeType.LLMaxNumberOfIterations.Value > 0)
            {
                senderLL.Core.LlSetOption(338, freigabeType.LLMaxNumberOfIterations.Value);
            }
        }

Alle anderen Optionen funktionieren einwandfrei, nur diese hier führt zu erwähntem Fehler:

senderLL.Core.LlSetOption(LlOption.LCID, 1033);

Die Option selbst und der Code sind korrekt. Was könnte hier noch fehlerhaft sein?

Hinweis: Ich benutze List & Label 28.

Vielen Dank im Voraus für eventuelle sachdienliche Hinweise!

Ich fürchte, dass der Zeitpunkt für das Setzen der LCID zu spät ist, da im Event DefinePrintOptions das Projekt bereits geladen ist.

Hi, ich denke der Zeitpunkt hier ist nicht korrekt, du bist schon im Druck und ich bin mir nicht sicher ob man im laufenden Druck so einfach die LCID ändern kann , versuch das mal vor dem LL.Print zu setzen, also beim init. von der LL Instanz. Versuch mal das.

Vielen Dank für den Hinweis.

Ich war ehrlich gesagt der Meinung, man muss bzw kann diese Options überhaupt nur innerhalb des Events DefinePrintOptions setzen.

Wie setzten ich denn die Options ausserhalb dieses Events genau?

Eine vergleichbare Methode konnte ich nicht finden.

Einfach direkt for dem Druck/Export würde ich das machen:

...
LL.Core.LlSetOption(LlOption.LCID, 1031);
LL.Print(); // oder eben LL.Export();
...

Hallo!

Vielen Dank, das hat jetzt geklappt so wie es sollte.

Eine Frage noch an dieser Stelle: Braucht man das Event “DefinePrintOptions” eigentlich um die anderen Options zu setzen? Oder kann man alle Optionen einfach direkt vor dem Export setzen?

Hi, also die LlSetOptions kannst du (solltest du) vor dem Export setzen, LlPrintSetOption müssen im DefinePrintOptions gesetzte werden, da diese Optionen einen aktiven Printjob benötigen, das Event ist auch ganz gut um noch Änderungen (temporär) per DOM an der Vorlage vorzunehmen. Viel Erfolg