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

TX Text Control: Alternatives Rendering von RTF-Texten in List & Label

net
(combit Team) #1
Gilt ab List & Label 21
Das in List & Label fest integrierte RTF-Objekt basiert auf dem jeweils im Windows System installierten RTF-Control von Microsoft, welches auch z.B. von Microsoft WordPad verwendet wird. Dabei können mehrere unterschiedliche Versionen des Controls auf dem gleichen Windows System installiert sein. List & Label erlaubt es, mit Hilfe der Option LL_OPTION_MAXRTFVERSION (oder der Eigenschaft .MaxRTFVersion der Komponente) die zu verwendende Version des RTF-Controls zu forcieren. Die unterschiedlichen RTF-Versionen verhalten sich allerdings unterschiedlich, was auch Auswirkungen auf etwaige List & Label Reports haben kann. Zudem ist auch das Feature-Set des Microsoft RTF-Controls insbesondere im Bereich der Tabellendarstellung stark eingeschränkt.
 
Als Alternative ist es in List & Label möglich, das RTF-Control TX Text Control .NET for Windows Forms der Firma Text Control GmbH als eigenständiges Designer-Objekt zu verwenden, wenn Sie über eine Lizenz des Controls verfügen. Damit ist es in der eigenen .NET Anwendung möglich direkt RTF-Texte, die mit Hilfe des TX Text Controls gerendert werden, in List & Label Reports zu verwenden. Die Vorgehensweise kann in beiliegendem Programmierbeispiel (siehe auch Klasse 'TXDesignerControl') im Detail eingesehen werden.
 
Voraussetzungen und Benutzung
  • Das beigefügte Programmierbeispiel verwendet C# / Visual Studio Version 2015
  • Installiertes TX Text Control .NET for Windows Forms - mind. in der Version 22.0 Professional/Enterprise
  • Installiertes List & Label - mind. in der Version 21 inkl. Service Pack 21.002
  • Bitte entpacken Sie die beigefügte ZIP-Datei in den List & Label Installationsordner unter "\Programmierbare Beispiele und Deklarationen\Microsoft .NET\". Möglicherweise müssen die Referenzen in der Solution entsprechend angepasst werden.
Allemeine Hinweise
  • Das List & Label Designer-Objekt 'TXDesignerControl' kann aktuell nur in .NET verwendet werden - nicht aber in unmanaged Umgebungen wie bspw. C++. Hintergrund ist hier, dass das TX Text Control selbst nur als .NET Komponente verfügbar ist.
  • Etwaige Header und Footer im RTF-Text eines TX Text Control werden nicht unterstützt bzw. ignoriert.
  • Bei Verwendung von RTF-Tabellen wird im Standard-Fall versucht das Layout 1:1 darzustellen. Wenn allerdings das Objekt kleiner/schmaler als die ursprüngliche Tabelle bzw. das RTF-Dokument ist, können Clipping-Effekte auftreten. Hierfür gibt es die Eigenschaft 'RecalcTableLayout' des Designer-Objektes, um zu forcieren, dass die Tabelle im RTF-Dokument versucht wird auf den kleineren Platz anzugleichen. Ist diese Option aktiv, hat das jedoch Auswirkungen auf die Performance, da das Neuberechnen des gegebenen Layouts rechenintensiv ist und kann das Layout der Tabelle modifizieren.
  • Im mitgelieferten Beispiel-Dokument 'Great-Team.rtf' werden auch List & Label Formeln/Felder verwendet und entsprechend unterstützt. Während des Drucks werden diese evaluiert, was kleine Auswirkungen auf die Performance haben kann. Das Beispiel-Dokument 'debwin.rtf' verwendet keine List & Label Formeln/Felder.
Der Code wird im Rahmen dieses Artikels "as is" zur Verfügung gestellt und kann jederzeit auf weitere und eigene Bedürfnisse angepasst werden. Sollten Sie etwaige Verbesserungen, Anregungen oder gar Fehler ausmachen, so können Sie uns diese gerne auch im Rahmen des Supports zur Verfügung stellen, wir freuen uns über Ihre Ideen.

Links:

https://www.combit.net/de/support/files/cmbtkb/CSharpTXTextDesignerObject.zip
https://www.combit.net/blog/entwicklung/08-2017/eigene-net-designer-objekte-in-unmanaged-code-ver/
IDKBAD001308 KBAD001308