In der PPLA language manual gibt es keine Funktionen zum Zeilenumbruch langer Textzeilen. Sie müssen also selbst berechnen, wo die Zeilenumbrüche eingefügt werden sollen, bevor Sie die Befehle an den Drucker senden.
Wie Sie es tun, hängt von der Programmiersprache ab, die Sie verwenden; Zum Beispiel in der PHP-Sprache gibt es eine wordwrap function, die es für Sie tun kann (der C-Quellcode der Wordwrap-Funktion ist here, in Zeile 803).
Eine einfache Beschreibung eines Zeilenumbruch-Algorithmus auf dem wikipedia gefunden werden kann:
SpaceLeft := LineWidth
for each Word in Text
if (Width(Word) + SpaceWidth) > SpaceLeft
insert line break before Word in Text
SpaceLeft := LineWidth - Width(Word)
else
SpaceLeft := SpaceLeft - (Width(Word) + SpaceWidth)
Zunächst einmal müssen Sie den Text in Worte geteilt, aber ich nehme an, dass dies für Sie kein Problem ist, so Ich werde nicht weiter ausführen.
LineWidth
sollte als die Etikettenbreite minus der linken und rechten Randbreite berechnet werden.
Angenommen, Sie verwenden für Ihren Text eine einzelne Schriftart mit fester Breite (nicht proportional), können Sie die LineWidth
in eine Anzahl von Zeichen konvertieren, indem Sie sie einfach durch die Zeichenbreite teilen (oder einfach eine lange Textzeile drucken) und dann die Anzahl der Zeichen zählen, die gedruckt werden); Auf diese Weise entspricht jede Wortlänge der Anzahl ihrer Zeichen.
Andernfalls, wenn Sie eine proportionale Schriftart verwenden, ist die Berechnung jeder Wortbreite schwieriger, es sei denn, Sie kennen die Breite jedes Zeichens.
Eine Idee könnte ein Bild mit der gleichen Pixelgröße des Etiketts sein, nur um das Drucken zu simulieren und um zu berechnen, wo die Zeilenumbrüche einzufügen sind, aber dies erfordert eine Funktion zur Berechnung der Pixelbreite jedes Wortes (z Beispiel in PHP gibt es die imagettfbbox function), und auch genau die gleiche Schriftart auf dem Drucker und dem PC zu verwenden.
Beachten Sie, dass Sie auch einige Wörter verarbeiten müssen, die länger als die Etikettenbreite sind. In diesem Fall müssen Sie das Wort einfach unter LineWidth
teilen und in der nächsten Zeile fortfahren.