+1 800 256 3608 (toll-free in North America) or +49 7531 90 60 10| service@combit.com

Automatische Silbentrennung


(Daniel Doenigus) #1

Hallo,

ich habe eine Frage zu den Umbrüchen in List&Label. Ich habe in meinem Dokument eine Tabelle mit relativ schmalen Spalten. Innerhalb dieser Spalten flattert der Textsatz ziemlich. Die Texte werden statisch, beziehungsweise teildynamisch vorgegeben. Gibt es eine Möglichkeit hier eine automatische Silbentrennung zu aktivieren?

Ich habe bisher nur die Möglichkeit über LL_CHAR_PHANTOMSPACE gefunden. Zum Einen muss ich hier aber alle möglichen Trennungsstellen manuell markieren und zum Anderen wird bei einem Umbruch kein Bindestrich eingefügt.

Vielen Dank im Voraus für die Antworten.

Viele Grüße
Daniel


(combit Support - Christian Rauchfuß) #2

Hallo Daniel,

vielen Dank für Ihren Beitrag.

Ja, eine solche Silbentrennung in List & Label ist realisierbar. Detaillierte Informationen finden Sie in unserer Knowledgebase unter folgenden Link:

List & Label Silbentrennung

Mit freundlichen Grüßen

Christian Rauchfuß
Technischer Support
combit GmbH


(Daniel Doenigus) #3

Hallo,

vielen Dank für die rasche Antwort. Das Beispiel in der Knowledgebase ist mit .NET. Kann ich mit C++ Ähnliches erreichen? D.h. den im Designer vorgegebenen Tabellenzellentext mit Hilfe einer Callback-Funktion programmatisch verändern?

Viele Grüße
Daniel


(Hans Peter Reische) #4

Hallo!
Hunspell gibt es auch für C++ :slight_smile:
Frage ist, welche API du zur Anbindung verwendest. Der Event ist ja nur wegen dem Databinding notwendig, damit man sich überhaupt zwischen Datenquelle und LL setzen kann.

HP


(Daniel Doenigus) #5

Hallo,

ich benutze direkt die API aus einer C++ Anwendung heraus. Die Texte sind als Inhalte von Tabellenzellen im LL-Designer definiert und ich würde über diese Texte dann nachträglich aus C++ eine hyphenation drüber laufen lassen. Ich könnte das natürlich auch direkt in LL machen. Dann werden die Texte jedoch unlesbar und es ist ziemlich viel Arbeit.

Viele Grüße
Daniel


(combit Support - Christian Rauchfuß) #6

Hallo Daniel,

vielen Dank für Ihren Beitrag.

hunspell für C++ können Sie über Github beziehen. Hier der Link:

https://github.com/hunspell

In C++ benötigen Sie an sich keinen Callback für diese Manipulation, Sie können den Inhalt direkt beim LlPrintFields ändern. Wenn Sie das DataProvider-Interface für C++ verwenden, können Sie die Änderungn entsprechend in Ihrem DataProvider vorsehen.

Mit freundlichen Grüßen

Christian Rauchfuß
Technischer Support
combit GmbH


(Daniel Doenigus) #7

Hallo Herr Rauchfuß,

vielen Dank für Ihre Hilfe. Leider ist mir der List&Label-Teil noch nicht klar…

Ich möchte an dieser Stelle noch mal rekapitulieren:
Wir haben in unserem List&Label-Design verschiedene Texte hinterlegt. Bei der Eingabe dieser Texte wurde nicht auf die Silbentrennung und Einfügen von Char(173) geachtet. Wir haben in den Dokumenten sehr viel Text und Teile der Texte sind dynamisch. Das bedeutet, dass wir die Silbentrennungszeichen an sehr vielen/allen Stellen einfügen müssen. Deswegen bin ich auf der Suche nach einer Möglichkeit die Silbentrennungszeichen nachträglich, programmatisch einfügen zu lassen.

Was ich nun erwarten würde ist eine Funktion, die mir (in meinem C+±Code) den im Designer hinterlegten und zu druckenden Text übergibt und ich habe in unserem Code die Möglichkeit diesen Code zu verändern und die Silbentrennungszeichen einzufügen.

Nun habe ich LlPrintFields so verstanden, dass ich List&Label anweise eine weitere Tabellenzeile zu drucken, mit den aktuell hinterlegten Feldinhalten. Im Aufruf LlPrintFields selbst kann ich nichts übergeben. Das Einzige was ich meiner Meinung nach ändern könnte, sind die Inhalte der Felder. Die im Designer hinterlegten Texte kann ich damit nicht ändern.

Das DataProvider-Interface habe ich mir noch nicht im Detail angeschaut, da darauf im Programmierhandbuch nicht eingegangen wird. Aber ist das Interface nicht ähnlich, so dass ich auch dort nur die Daten aus unserer Datenquelle übergeben kann?

Viele Grüße
Daniel


(combit Support - Christian Rauchfuß) #8

Hallo Daniel,

vielen Dank für Ihren Beitrag.

Wenn die Texte schon fest in der Reportdatei enthalten sind, dann bleibt nur noch die Verwendung der DOM-API. Mit dieser API können Sie Projekte dynamisch zur Laufzeit erstellen/manipulieren. Voraussetzung ist mindestens eine List & Label Professional Edition. Das mitgelieferte Sample

…\combit\LL21\Programmierbare Beispiele und Deklarationen\Visual C++\Generate Dynamic Project Files (DOM)

zeigt die Verwendung der DOM-API.

Mit freundlichen Grüßen

Christian Rauchfuß
Technischer Support
combit GmbH