ps_show_boxed

(PECL ps >= 1.1.0)

ps_show_boxed在框中输出文本

描述

ps_show_boxed(
    资源 $psdoc,
    字符串 $text,
    浮点数 $left,
    浮点数 $bottom,
    浮点数 $width,
    浮点数 $height,
    字符串 $hmode,
    字符串 $feature = ?
): 整数

在给定框中输出文本。框的左下角位于 (left, bottom)。将在需要的地方插入换行符。多个空格将被视为一个空格。制表符将被视为空格。

如果参数 hyphenation 设置为 true 且参数 hyphendict 包含有效的连字符文件名称,则文本将被连字符化。行间距取自值 leading。段落可以通过空行分隔,就像在 TeX 中一样。如果值 parindent 设置为大于 0.0 的值,则前 n 行将缩进。n 行数由参数 numindentlines 设置。为了防止前 m 段落缩进,将值 parindentskip 设置为正数。

参数

psdoc

PostScript 文件的资源标识符,由 ps_new() 返回。

text

要输出到给定框的文本。

left

框左下角的 x 坐标。

bottom

框左下角的 y 坐标。

width

框的宽度。

height

框的高度。

hmode

参数 hmode 可以是 justifyfulljustifyrightleftcenterjustifyfulljustify 的区别仅影响框的最后一行。在 fulljustify 模式下,最后一行将左对齐和右对齐,除非这也是段落的最后一行。在 justify 模式下,它将始终左对齐。

feature

使用的参数

ps_show_boxed() 的输出可以通过几个参数和值来配置,这些参数和值必须使用 ps_set_parameter()ps_set_value() 设置。除了影响文本输出的参数和值外,还会评估以下参数和值。

leading (value)

两条连续行基线之间的距离。

linebreak (parameter)

如果希望回车符开始新行而不是将其视为空格,则将其设置为 true。默认为 false

parbreak (parameter)

如果希望单行上的回车符开始新段落而不是将其视为空格,则将其设置为 true。默认为 true

hyphenation (parameter)

为了开启连字符化,将其设置为 true。这需要使用参数 hyphendict 设置一个字典。默认为 false

hyphendict (parameter)

用于连字符化模式的字典的文件名(见下文)。

hyphenminchar (value)

连字符前后至少必须剩余的字符数。这意味着只有至少两倍此值的词语才会被连字符化。默认值为 3。设置值为 0 将导致默认值。

parindent (value)

以像素为单位设置缩进段落前 m 行的空间量。m 可以使用值 numindentlines 设置。

parskip (value)

以像素为单位设置段落之间的额外空间量。默认为 0,这将导致正常的行距。

numindentlines (value)

从段落开头开始将缩进的行数。默认为 1

parindentskip (value)

框中第一行不会缩进的段落数。这默认为 0。这对于紧随节标题之后的段落或在第二个框中继续的文本很有用。在这两种情况下,您都将其设置为 1

linenumbermode (parameter)

设置行编号的方式。可能的值是 box,用于在整个框中对行进行编号,或者 paragraph,用于在每个段落内对行进行编号。

linenumberspace (value)

包含行号的编号行左侧列的空间。行号将右对齐到此列中。默认为 20

linenumbersep (value)

包含行号的列与行本身之间的空间。默认为 5

连字符化

如果参数 hyphenation 设置为 true 且设置了有效的连字符化字典,则文本将被连字符化。pslib 不会附带自己的连字符化字典,而是使用来自 OpenOffice、Scribus 或 KOffice 的字典。如果您安装了这些软件,可以在以下目录之一中找到它们针对不同语言的字典

  • /usr/share/apps/koffice/hyphdicts/
  • /usr/lib/scribus/dicts/
  • /usr/lib/openoffice/share/dict/ooo/
目前,Scribus 似乎拥有最完整的连字符化字典。

返回值

无法写入的字符数。

参见

添加备注

用户贡献的备注 2 个备注

0
php at catchall dot toao dot net
15 年前
为了像字处理器一样对齐文本,必须将 'linebreak' 设置为 'false',将 'parbreak' 设置为 'true'。对于每条新行,您必须使用 "\n\n"(两个换行符,而不是文档中提到的回车符)。如果您希望在完成的文档中创建两条新行,"\n\n\n\n" 将不起作用。相反,您必须使用 "\n\n \n\n"。

对于要对齐的每一行,您应该将 "\n "(换行符和一个空格)追加到文本的末尾。为此,'linebreak' 必须为 'true'。
0
tilman dot schroeder at gmx dot de
17 年前
请注意,即使函数名称暗示了这一点,也不会在文本周围绘制任何框。

在绘制框后,您可以使用以下代码获取新的 x 和 y 位置

<?php
$x
=ps_get_value($ps,'textx',NULL);
$y=ps_get_value($ps,'texty',NULL);
?>

textx 指向 ps_show_boxed 所写入的最后一个字符的末尾,texty 指向最后一行写入的基线(这意味着,如果最后一行有“g”,则“g”的下半部分的 y 坐标将低于 texty 的值。我希望您理解我的意思。)
To Top