Kyrillisches Währungszeichen wird beim Export in '?' umgewandelt

In einem unserer Projekte nutzen wir das ListLabelViewerControl aus ListLabel-Version 22 um dem Anwender aus der WPF-Anwendung heraus eine Vorschau des später als PDF exportierten Formulars anzuzeigen.

Das Control haben wir in soweit angepasst, als dass dem Anwender nur noch die Druck(.ShowPrintDialog())- und die Export(.ShowExportDialog())-Funktionalität zur Verfügung stehen.

Beim Export einer Vorschau mit russischem Währungszeichen haben wir jedoch das Problem, dass das Währungssymbol im ViewerControl korrekt dargestellt wird, beim anschließenden Export jedoch durch ein “?” ersetzt wird. Dies tritt übrigens auch beim direkten Export der Datei (also ohne Aufruf des Viewers) auf.

Wir nutzen hierzu in beiden Fällen (Vorschau & direkter Export) den folgenden Aufruf zum Erzeugen des Dokuments:
.Print(LlProject.List, _template, False, LlPrintMode.Export, LlBoxType.None, “”, False, “”)

Vorher fügen wir noch die ExportOption “LlExportOption.PdfFontMode = 6” hinzu. Was jedoch keine Änderung herbeiführt.

Das Zeichen wir nur dann korrekt gedruckt, wenn das Character Set der Eigenschaft Font des jeweiligen Textfelds im Designer auf Kyrillisch umgestellt wird. Das bisher eingestellte Character Set lautet ‘Western’ und der Fontname ist ‘Arial Unicode MS’.

Hat jemand einen Tipp für mich, wie ich das Problem möglichst ohne manuelles Mapping der Character Sets auflösen kann? Das Formular wollen/müssen wir nämlich weltweit nutzen.

Du könntest z.B. eine Variable “Culture” übergeben und bei der Eingenschaft Font eine Formel angeben:
Cond(Culture='ru-Ru",“Kyrillisch”,“Western”) oder so ähnlich.

LG,
Marco

Hallo Marco,

danke für deine schnelle Rückmeldung. Das wäre genau das “manuelle Mapping”, was ich möglichst vermeiden möchte. Dann müsste ich sicherlich auch noch für asiatische und weitere Schriftarten solche Abfragen einbauen…

Ich habe herausgefunden, dass die “richtige” ListLabel.Export()-Methode bei Einbettung der CID-Fonts dieses Problem nicht hat. Wir haben daher eine Callback-Methode für das Speichern der Vorschau eingebaut und verwenden daher diese .Export()-Methode anstelle der .ShowExportDialog()-Funktion.

Dies als Info, falls noch mal wer anders über dieses Problem stolpert.

1 Like