©
本文档使用 PHP中文网手册 发布
(PECL ps >= 1.1.0)
ps_show_boxed — Output text in a box
$psdoc
, string $text
, float $left
, float $bottom
, float $width
, float $height
, string $hmode
[, string $feature
] )
Outputs a text in a given box. The lower left corner of the box is at
(left
, bottom
). Line breaks
will be inserted where needed. Multiple spaces are treated as one.
Tabulators are treated as spaces.
The text will be hyphenated if the parameter
hyphenation
is set to TRUE
and the parameter hyphendict
contains a valid
filename for a hyphenation
file. The line spacing is taken from the value leading.
Paragraphs can be
separated by an empty line just like in TeX. If the value
parindent is
set to value > 0.0 then the first n lines will be indented. The number n
of lines is set by the parameter numindentlines.
In order to prevent
indenting of the first m paragraphs set the value
parindentskip to a
positive number.
psdoc
Resource identifier of the postscript file as returned by ps_new() .
text
The text to be output into the given box.
left
x-coordinate of the lower left corner of the box.
bottom
y-coordinate of the lower left corner of the box.
width
Width of the box.
height
Height of the box.
hmode
The parameter hmode
can be "justify",
"fulljustify", "right", "left", or "center". The difference of
"justify" and "fulljustify" just affects the last line of the box. In
fulljustify mode the last line will be left and right justified unless
this is also the last line of paragraph. In justify mode it will always
be left justified.
feature
The output of ps_show_boxed() can be configured with several parameters and values which must be set with either ps_set_parameter() or ps_set_value() . Beside the parameters and values which affect text output, the following parameters and values are evaluated.
Distance between baselines of two consecutive lines.
Set to "true" if you want a carriage return to start a new line instead of treating it as a space. Defaults to "false".
Set to "true" if you want a carriage return on a single line to start a new paragraph instead of treating it as a space. Defaults to "true".
Set to "true" in order to turn hyphenation on. This requires a dictionary to be set with the parameter "hyphendict". Defaults to "false".
Filename of the dictionary used for hyphenation pattern (see below).
The number of chars which must at least be left over before or after the hyphen. This implies that only words of at least two times this value will be hyphenated. The default value is three. Setting a value of zero will result in the default value.
Set the amount of space in pixel for indenting the first m lines of a paragraph. m can be set with the value "numindentlines".
Set the amount of extra space in pixel between paragraphs. Defaults to 0 which will result in a normal line distance.
Number of lines from the start of the paragraph which will be indented. Defaults to 1.
Number of paragraphs in the box whose first lines will not be indented. This defaults to 0. This is useful for paragraphs right after a section heading or text being continued in a second box. In both case one would set this to 1.
Set how lines are to be numbered. Possible values are "box" for numbering lines in the whole box or "paragraph" to number lines within each paragraph.
The space for the column left of the numbered line containing the line number. The line number will be right justified into this column. Defaults to 20.
The space between the column with line numbers and the line itself. Defaults to 5.
Text is hyphenated if the parameter hyphenation is set to true and a valid hyphenation dictionary is set. pslib does not ship its own hyphenation dictionary but uses one from openoffice, scribus or koffice. You can find their dictionaries for different languages in one of the following directories if the software is installed:
Number of characters that could not be written.
[#1] php at catchall dot toao dot net [2009-06-13 15:45:34]
In order to justify text in the way a word processor would, one must set 'linebreak' to 'false' and 'parbreak' to 'true'. For every new line, you must use "\n\n" (two newlines, NOT carriage returns as stated in the docs). If you wish to make two new lines in your finished document, "\n\n\n\n" will not work. Instead, you must use "\n\n \n\n".
For every line to be justified, you should append "\n " (new line and a space) to the end of the text. For this to work, 'linebreak' must be 'true'.
[#2] tilman dot schroeder at gmx dot de [2007-01-01 07:52:49]
Note that there will no box be drawn around the text even if the function name suggests this.
After the box has been drawn you can get the new x and y position with
<?php
$x=ps_get_value($ps,'textx',NULL);
$y=ps_get_value($ps,'texty',NULL);
?>
textx points to the end of the last character written by ps_show_boxed and texty points to the baseline of the last line written (which means, if there is e.g. a 'g' in the last line then the lower part's y-coordinates of the g will be lower than the value of texty. I hope you understand what I meant)