phpday 2025 - Call For Papers

ps_show_boxed

(PECL ps >= 1.1.0)

ps_show_boxedImprimir texto en una caja

Descripción

ps_show_boxed(
    resource $psdoc,
    string $text,
    float $left,
    float $bottom,
    float $width,
    float $height,
    string $hmode,
    string $feature = ?
): int

Imprime un texto en la caja dada. La esquina inferior izquierda de la caja está en (left, bottom). Los saltos de línea se insertarán según sean necesarios. Los espacios múltiples se tratan como uno sólo. Las tabulaciones son tratadas como espacios.

El texto será particionado silábicamente si el parámetro hyphenation es establecido a true y el parámetro hyphendict contiene un nombre de fichero válido para un fichero de patrones de partición silábica. La interlínea se toma del valor leading. Los párrafos pueden ser separados por una línea vacía como en TeX. Si el valor parindent es establecido a un valor > 0.0, las primeras n líneas serán sangradas. El número de líneas n se establece mediante el parámetro numindentlines. Para prevenir el sangrado de los primeros m párrafos se ha de establecer el valor parindentskip a un número positivo.

Parámetros

psdoc

El identificador de recursos del fichero postscript, como el devuelto por la función ps_new().

text

El texto a imprimir en la caja dada.

left

La coordenada x de la esquina inferior izquierda de la caja.

bottom

La coordenada y de la esquina inferior izquierda de la caja.

width

El ancho de la caja.

height

El alto de la caja.

hmode

El parámetro hmode puede ser "justify" (justificado), "fulljustify" (justificado completamete), "right" (a la derecha), "left" (a la izquierda), o "center" (centrado). La diferencia entre "justify" y "fulljustify" afecta a la última línea de la caja. En el modo "fulljustify" la última línea será justificada a izquierda y derecha a menos que sea también la última línea del párrafo. En el modo "justify" siempre será justificada a la izquierda.

feature

Parámetros utilizados

La salida de la función ps_show_boxed() se puede configurar con varios parámetros y valores que deben ser establecidos con las funciones ps_set_parameter() o ps_set_value(). Junto a los parámetros y valores que afectan a la impresión del texto, son evaluados los siguientes parámetros y valores:

leading (valor)

La distancia entre la línea base de dos líneas consecutivas.

linebreak (parámetro)

Establecer a "true" si se necesita un retorno de carro al inicio de una nueva línea en lugar de tratarlo como un espacio. Por defecto es "false".

parbreak (parámetro)

Establecer a "true" si se necesita un retorno de carro en una sola línea para iniciar un nuevo párrafo en lugar de tratarlo como un espacio. Por defecto es "true".

hyphenation (parámetro)

Establecer a "true" para activar la partición silábica. Se requiere establecer un diccionario con el parámetro "hyphendict". Por defecto es "false".

hyphendict (parámetro)

El nombre de fichero del diccionario usado para los patrones de partición silábica (véase más abajo).

hyphenminchar (valor)

El número de caracteres que debe haber al menos antes o después del guión. Esto implica que sólo las palabras de al menos dos veces este valor serán particionadas silábicamente. El valor predeterminado es tres. Establecer un valor de cero resultará en el valor predeterminado.

parindent (valor)

Establece la cantidad de espacio en píxeles para la sangría de las m primeras líneas de un párrafo. m puede establecerse con el valor "numindentlines".

parskip (valor)

Establece el valor de espacio extra entre párrafos. Por defecto es 0, lo que resultará en una distancia de líneas normal.

numindentlines (valor)

El número de líneas desde el inicio del párrafo que serán sangradas. Por defecto es 1.

parindentskip (valor)

El número de párrafos de la caja cuyas primeras líneas no serán sangradas. Por defecto es 0. Esto es útil para párrafos situados justo antes de una sección de cabecera o para texto continuado en una segunda caja. En ambdos casos se debería establecer a 1.

linenumbermode (parámetro)

Establece la manera en que las líneas son numeradas. Los posibles valores son "box" para la numeración de líneas en la caja completa o "paragraph" para la numeración de líneas dentro de cada párrafo.

linenumberspace (valor)

El espacio para la columna a la izquierda de la línea numerada que contiene el número de línea. El número de línea será justificado a la derecha dentro de esta columna. Por defecto es 20.

linenumbersep (valor)

El espacio entre la columna con los números de línea y la línea misma. Por defecto es 5.

Partición silábica

El texto se particiona silábicamente si el parámetro hyphenation es "true" y está establecido un diccionario de partición silábica válido. pslib no trae su propio diccionario de partición silábica, pero utiliza uno de openoffice, scribus o koffice. Se pueden encontrar estos diccionarios para diferentes lenguajes en uno de los siguientes directios si el software está instalado:

  • /usr/share/apps/koffice/hyphdicts/
  • /usr/lib/scribus/dicts/
  • /usr/lib/openoffice/share/dict/ooo/
Actualmente, scribus parece tener los diccionarios de partición silábica más completos.

Valores devueltos

El número de caracteres que no podrán ser escritos.

Ver también

add a note

User Contributed Notes 2 notes

up
0
php at catchall dot toao dot net
15 years ago
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'.
up
0
tilman dot schroeder at gmx dot de
17 years ago
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)
To Top