Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Printing Argox OS214中的文字换行符-PPLA_Printing_Label - Fatal编程技术网

Printing Argox OS214中的文字换行符-PPLA

Printing Argox OS214中的文字换行符-PPLA,printing,label,Printing,Label,我使用PPLA语言将标签直接打印到Argox OS-214 我如何包装长文本 我是否必须进行计算,或者是否有任何函数可以为我进行计算 如果我必须计算,你有什么建议吗?在中没有自动换行功能,因此在将命令发送到打印机之前,你必须自己计算在何处插入换行符。 如何做到这一点取决于您使用的编程语言;例如,在PHP语言中,有一个可以为您执行此操作的函数(wordwrap函数的C源代码位于第803行)。 有关换行算法的简单说明,请参见: 首先,您必须将文本拆分为文字,但我认为这对您来说不是问题,因此我将不作进

我使用PPLA语言将标签直接打印到Argox OS-214

我如何包装长文本

我是否必须进行计算,或者是否有任何函数可以为我进行计算

如果我必须计算,你有什么建议吗?

在中没有自动换行功能,因此在将命令发送到打印机之前,你必须自己计算在何处插入换行符。
如何做到这一点取决于您使用的编程语言;例如,在PHP语言中,有一个可以为您执行此操作的函数(wordwrap函数的C源代码位于第803行)。
有关换行算法的简单说明,请参见:

首先,您必须将文本拆分为文字,但我认为这对您来说不是问题,因此我将不作进一步阐述。
线宽
应计算为标签宽度减去左右边距宽度。
假设您的文本使用单一固定宽度(非比例)字体,您可以将
线宽
转换为若干字符,只需将其除以字符宽度(或只需打印一长行文本,然后计算打印的字符数);这样,每个单词的长度对应于它的字符数。
否则,如果您使用的是比例字体,则计算每个字的宽度会更加困难,除非您知道每个字符的宽度。
可以使用与标签像素大小相同的图像来模拟打印和计算换行符的插入位置,但这需要有一个函数来计算每个单词的像素宽度(例如在PHP中有),并且在打印机和PC上使用完全相同的字体。
请注意,您可能还必须处理一些超过标签宽度的单词;在这种情况下,只需在
线宽处拆分单词
,然后继续下一行

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)