Feedback

# Configuración Avanzada del PDF

## Interfaz

Con esta interfaz puede definir el diseño de visualización de las celdas que contienen los valores de los campos en el cuerpo del informe.

#### Atributos

- Seq: Número secuencial de celdas (orden ascendente).
- Celda: Nombre de la celda.
- Pos X: Establece la abscisa de la celda.
- Pos Y: Establece la ordenada de la celda.
- Ancho: Establece el ancho de la celda.
- Alineación: Establece la alineación de la celda.
- Campos: Aquí tiene que seleccionar el campo que se mostrará dentro de la celda, de acuerdo con la aplicación SQL.

## Código

Scriptcase crea los códigos automáticamente, por lo que al cambiar eso dentro de la opción “código” asumirá el código PHP de creación de PDF.

La aplicación “Informe PDF” se desarrolló en base a una biblioteca llamada TCPDF, de modo que puede utilizar los métodos de biblioteca disponibles o una macro correspondiente de la tabla a continuación. Para utilizar algún método, debe usar el objeto $pdf, por ejemplo: $pdf-> AcceptPageBreak (parámetros).

Para acceder a la documentación de TCPDF haga clic aquí

## Macros ReportPDF

Scriptcase Macro | Descripción
--- | ---
sc_pdf_text | Este método le permite colocar una cadena.
sc_pdf_write | Este método imprime el texto de la posición actual.
sc_pdf_set_y | Establece la posición actual del eje y.
sc_pdf_set_xy | Establece la posición actual del eje x y el eje y.
sc_pdf_set_top_margin | Define la parte superior del margen.
sc_pdf_set_right_margin | Establece el margen derecho.
sc_pdf_set_left_margin | Establece el margen izquierdo.
sc_pdf_set_margins | Establece el margen izquierdo, superior y derecho.
sc_pdf_set_title | Define el título del documento.
sc_pdf_set_text_color | Establece el color que se utilizará para el texto.
sc_pdf_set_subject | Define el tema del documento.
sc_pdf_set_line_width | Establece la longitud de la línea del pdf.
sc_pdf_line | Dibuja una línea entre dos puntos.
sc_pdf_set_keywords | Asocia palabras clave con el documento.
sc_pdf_set_font | Establece el tamaño de fuente actual.
sc_pdf_add_font | Define qué fuente se utilizará en el texto.
sc_pdf_close | Define el cierre del documento pdf.
sc_pdf_error | Este método se llama automáticamente en caso de un error fatal.
sc_pdf_add_page | Agrega una nueva página al documento pdf.
sc_pdf_footer | Este método es responsable de representar el pie de página del documento pdf.
sc_pdf_header | Este método es responsable de representar el encabezado del documento pdf.
sc_pdf_get_string_length | Devuelve la longitud de una cadena.
sc_pdf_get_y | Devuelve la posición actual del eje y.
sc_pdf_get_x | Devuelve la posición actual del eje x.
sc_pdf_link | Incrustar una imagen en el documento.
sc_pdf_set_author | Define el autor del documento.
sc_pdf_set_auto_page_break | Habilita o deshabilita el modo de salto de página automático.
sc_pdf_set_compression | Activa o desactiva la compresión de páginas.
sc_pdf_output | Enviar el documento a un destino determinado.
sc_pdf_set_creator | Define el creador del documento.
sc_pdf_set_display_mode | Define la forma en que el espectador debe mostrar el documento.
sc_pdf_accept_page_break | Cada vez que se cumple una condición de salto de página, se llama al método.
sc_pdf_ln | Realiza un salto de línea.
sc_pdf_rect | Produce un rectángulo. Se puede dibujar (solo borde), rellenar (sin borde) o ambos.
sc_pdf_set_draw_color | Define el color utilizado para todas las operaciones de dibujo (líneas, rectángulos y bordes de celda)
sc_pdf_set_fill_color | Define el color utilizado para todas las operaciones de llenado.
sc_pdf_multi_cell | Este método permite imprimir texto con saltos de línea.
sc_pdf_add_link | Crea un nuevo enlace interno y devuelve su identificador.
sc_pdf_alias_nb_pages | Define un alias para el número total de páginas.
sc_pdf_set_link | Define la página y la posición a la que apunta un enlace.

#### sc_pdf_text

Descripción:

Este método permite colocar una cadena con precisión en la página.

Parámetros:

y: y-axis
txt: string
link: URL

Ejemplo:

    sc_pdf_text("1","1","Tu texto aqui");

Alcance:

Layout PDf > Código > Layout e Corpo

#### sc_pdf_write

Descripción:

Este método imprime texto desde la posición actual. Cuando se alcanza el margen derecho (o el carácter \n) se produce un salto de línea y el texto continúa desde el margen izquierdo. Al salir del método, la posición actual se deja justo al final del texto. Es posible poner un enlace en el texto.

Parámetros:

h: height
txt: string
link: URL

ejemplo:

    sc_pdf_write(150,'Su texto aquí','https://www.scriptcase.net');

Alcance: PDf Layout > Code > Layout & body

#### sc_pdf_set_y

Descripción:

Establece la posición actual del eje y.

Parámetros:

y: y-axis

Ejemplo:

    sc_pdf_set_y(180,true);

Alcance: PDf Layout > Code > Layout & body

#### sc_pdf_set_x

Descripción:

Establece la posición actual del eje x.

Parámetros:

x: x-axis

Ejemplo:

    sc_pdf_set_x(180);

Alcance: PDf Layout > Code > Layout & body

#### sc_pdf_set_xy

Descripción:

Establece la posición actual del eje x y el eje y.

Parámetros:

x: y-axis
y: x-axis

Ejemplo:

    sc_pdf_set_x(180,180);

Alcance: PDf Layout > Code > Layout & body

#### sc_pdf_set_top_margin

Descripción:

Define el margen superior. Se puede llamar al método antes de crear la primera página.

Parameters:

margin: el margen

Ejemplo:

    sc_pdf_set_top_margin(1000);

Alcance:

PDf Layout > Code > Layout & body

#### sc_pdf_set_right_margin

Descripción:

Define el margen derecho. Se puede llamar al método antes de crear la primera página.

Ejemplo:

    sc_pdf_set_right_margin(1000);

Alcance:

PDf Layout > Code > Layout & body

#### sc_pdf_set_left_margin

Descrición:

Define el margen izquierdo. Se puede llamar al método antes de crear la primera página.

Ejemplo:

    sc_pdf_set_left_margin(1000);

Alcance:

PDf Layout > Code > Layout & body

#### sc_pdf_set_margins

Descrición:

Define los márgenes izquierdo, superior y derecho. Por defecto, son iguales a 1 cm. Llame a este método para cambiarlos.

Parámetros:

left: margin left
top: margin top
right: margin right

Example:

    sc_pdf_set_margins(200, 200, 200);

Alcance:

PDf Layout > Code > Layout & body

#### sc_pdf_set_title

Descrición:

Define el título del documento.

Parámetros:

`título: título del documento`

Ejemplo:

    sc_pdf_set_title("Your Title Here");

Alcance:

PDf Layout > Code > Layout & body

#### sc_pdf_set_text_color

Descrición:

Define el color utilizado para el texto. Puede expresarse en componentes RGB o en escala de grises. El método puede invocarse antes de crear la primera página y el valor se conserva de una página a otra.

Ejemplo:

    sc_pdf_set_text_color(106,13,173);
    sc_pdf_write(150,'Tu texto aqui','https://www.scriptcase.net');

Alcance:

PDf Layout > Code > Layout & body

#### sc_pdf_set_subject

Descrición:

Define el tema del documento..

Ejemplo:

    sc_pdf_set_subject("Tu Asunto aquí");

Alcance:

PDf Layout > Code > Layout & body

#### sc_pdf_set_line_width

Descrición:

Define el ancho de línea.

Parámetros:

width: margen width

Ejemplo:

    sc_pdf_set_line_width(1500);
    sc_pdf_line(50,25,70,35);

Alcance:

PDf Layout > Code > Layout & body

#### sc_pdf_line

Descrición:

Dibuja una línea entre dos puntos.

Ejemplo:

    sc_pdf_line(50,25,70,35);

Alcance:

PDf Layout > Code > Layout & body

#### sc_pdf_set_keywords

Descrición:

Asocia palabras clave al documento, generalmente en la forma ‘palabra clave1 palabra clave2 …’.

Parámetros:

keywords: lista de palabras clave

Ejemplo:

    sc_pdf_set_keywords(test test2, true);

Alcance:

PDf Layout > Code > Layout & body

#### sc_pdf_set_font

Descrición:

Establece la fuente utilizada para imprimir cadenas de caracteres. Es obligatorio llamar a este método al menos una vez antes de imprimir texto o el documento resultante no sería válido.

Parámetros:

familia

Fuente por definir.

- Courier (fixed-width)
- Helvetica or Arial (synonymous; sans serif)
- Times (serif)
- Symbol (symbolic)
- ZapfDingbats (symbolic)

Estilo

Estilo de fuente que debe establecerse.

- empty string: regular
- B: bold
- I: italic
- U: underline

tamaño

Tamaño de fuente que debe ajustarse.

Ejemplo:

    sc_pdf_set_font('Arial', 'B', 14)

Alcance: PDf Layout > Code > Layout & body

#### sc_pdf_add_font

Descrición:

Define la fuente que se utilizará en el texto. Puede pasar parámetros para font-family, font-style y font-size.

Parámetros:

Familia

Fuente que debe definirse.

- Courier (fixed-width)
- Helvetica or Arial (synonymous; sans serif)
- Times (serif)
- Symbol (symbolic)
- ZapfDingbats (symbolic)

Estilo

Estilo de fuente que debe establecerse.

- empty string: regular
- B: bold
- I: italic
- U: underline

Tamaño

Tamaño de fuente que debe ajustarse.

archivo

El archivo de fuentes

Por defecto, el nombre se construye a partir de la familia y el estilo, en minúsculas y sin espacios.

Ejemplo:

    sc_pdf_add_font('Comic', 'I', 'comici.php');

Alcance:

Layout PDf > Code > Layout & body

#### sc_pdf_close

Descricíon:

Finaliza el documento PDF. No es necesario llamar a este método explícitamente porque Output() lo hace automáticamente.

Ejemplo:

    sc_pdf_close();

Alcance:

PDf Layout > Code > Layout & body

#### sc_pdf_error

Descricíon:

Este método se llama automáticamente en caso de error fatal; simplemente lanza una excepción con el mensaje proporcionado.

Ejemplo:

    sc_pdf_error(“Your Text Here”);

Alcance: PDf Layout > Code > Layout & body

#### sc_pdf_add_page

Descricíon:

Añade una nueva página al documento.

Ejemplo:

    sc_pdf_add_page('Portrait','A4',0);

Alcance:

PDf Layout > Code > Layout & body

#### sc_pdf_footer

Descricíon:

Este método se utiliza para mostrar el pie de página. Es llamado automáticamente por sc_pdf_add_page() y sc_pdf_close() y no debe ser llamado directamente por la aplicación.

Ejemplo:

    sc_pdf_footer();

Alcance:

PDf Layout > Code > Layout & body

#### sc_pdf_header

Descricíon:

Este método se utiliza para mostrar la cabecera de la página. Es llamado automáticamente por sc_pdf_add_page() y no debe ser llamado directamente por la aplicación.

Ejemplo:

    sc_pdf_header();

Alcance: PDf Layout > Code > Layout & body

#### sc_pdf_get_string_length

Descricíon:

Devuelve la longitud de una cadena en unidad de usuario. Debe seleccionarse una fuente.

Ejemplo:

    sc_pdf_get_string_length("Texto para medir");

Alcance:

PDf Layout > Code > Layout & body

#### sc_pdf_get_y

Descricíon:

Devuelve la posición actual del eje y.

Ejemplo:

    sc_pdf_get_y();

Alcance:

PDf Layout > Code > Layout & body

#### sc_pdf_get_x

Descricíon:

Devuelve la posición actual del eje x.

Ejemplo:

    sc_pdf_get_x();

Alcance:

PDf Layout > Code > Layout & body

#### sc_pdf_link

Descricíon:

Pone un enlace en un área rectangular de la página. Los enlaces de texto o imagen se ponen generalmente mediante Cell(), Write() o Image(), pero este método puede ser útil, por ejemplo, para definir un área clicable dentro de una imagen.

Parámetros:

x : x-axis
y : y-axis
w : width
h : height
link : url

Ejemplo:

    sc_pdf_link(100,100,10,10,'https://scriptcase.net');

Alcance:

PDf Layout > Code > Layout & body

#### sc_pdf_image

Descricíon:

Incrusta una imagen en el documento. El tamaño de la imagen puede ajustarse de varias maneras. Formatos admitidos: JPEG, PNG y GIF, la extensión GD debe estar activada para utilizar GIF.

Parámetros:

link : url path
x : x-axis
y : y-axis
w : width
h : height
type : image format

Ejemplo:

    sc_pdf_image('http://chart.googleapis.com/chart?cht=p3&chd=t:60,40&chs=250x100&chl=HelloWorld', 60, 30, 90, 0,'PNG');

Alcance:

PDf Layout > Code > Layout & body

#### sc_pdf_set_author

Descricíon:

Define el autor del documento.

Ejemplo:

    sc_pdf_set_author("Scriptcase");

Alcance:

PDf Layout > Code > Layout & body

#### sc_pdf_set_auto_page_break

Descricíon:

Activa o desactiva el modo de salto de página automático. Cuando está activado, el segundo parámetro es la distancia desde el fondo de la página que define el límite de activación. Por defecto, el modo está activado y el margen es de 2 cm.

Ejemplo:

    sc_pdf_set_auto_page_break(true, 10);

Alcance:

PDf Layout > Code > Layout & body

#### sc_pdf_set_compression

Descricíon:

Activa o desactiva la compresión de páginas. Cuando está activada, se comprime la representación interna de cada página, lo que da lugar a una relación de compresión de aproximadamente 2 para el documento resultante.

Nota: the Zlib es necesaria para esta función. Si no está presente, la compresión se desactivará.

Ejemplo:

    sc_pdf_set_compression(true);

Alcance:

PDf Layout > Code > Layout & body

#### sc_pdf_output

Descricíon:

Enviar el documento a un destino determinado: navegador, archivo o cadena. En el caso de un navegador, se puede utilizar el visor de PDF o forzar una descarga.

Parámetros:

- I: enviar el archivo en línea al navegador. Se utiliza el visor de PDF si está disponible.
- D: enviar al navegador y forzar la descarga de un archivo con el nombre dado por nombre.
- F: guardar en un archivo local con el nombre dado por nombre (puede incluir una ruta).
- S: devuelve el documento en forma de cadena.

Ejemplo 1: Guarde el documento en un directorio local:

    $pdf->Output('F', 'reports/report.pdf');

Ejemplo 2: Force a download:

    $pdf->Output('D', 'report.pdf');

Alcance:

PDf Layout > Code > Layout & body

#### sc_pdf_set_creator

Descricíon:

Define el creador del documento. Suele ser el nombre de la aplicación que genera el PDF.

Ejemplo:

    sc_pdf_set_creator(“X Creator”,”true”);

Alcance:

PDf Layout > Code > Layout & body

#### sc_pdf_set_display_mode

Descricíon:

Define la forma en que el documento debe ser visualizado por el visor.

Parámetros:

zoom:

- fullpage: muestra toda la página en pantalla
- fullwidth: utiliza la anchura máxima de la ventana
- real: utiliza el tamaño real (equivalente a un zoom del 100%)
- default: utiliza el modo predeterminado del visor

layout:

- single: muestra una página a la vez
- continuous: muestra las páginas de forma continua
- two: muestra dos páginas en dos columnas
- default: utiliza el modo predeterminado del visor

Ejemplo:

    sc_pdf_set_display_mode("fullpage", "");

Alcance:

PDf Layout > Code > Layout & body

#### sc_pdf_accept_page_break

Descricíon:

Siempre que se cumpla una condición de salto de página, se llama al método y se emite o no el salto en función del valor devuelto. Este método se llama automáticamente y no debe ser llamado directamente por la aplicación.

Ejemplo:

    sc_pdf_accept_page_break();

Alcance:

PDf Layout > Code > Layout & body

#### sc_pdf_ln

Descricíon:

Realiza un salto de línea. La abscisa actual vuelve al margen izquierdo y la ordenada aumenta en la cantidad pasada en parámetro.

Ejemplo:

    sc_pdf_ln();

Alcance:

PDf Layout > Code > Layout & body

#### sc_pdf_rect

Descricíon:

Genera un rectángulo. Puede ser dibujado (sólo borde), rellenado (sin borde) o ambos.

Parámetros:

- x : x-axis
- y : y-axis
- w : width
- h : height

Estilo de renderizado:

D or empty string: dibujar. Este es el valor por defecto. F: Rellene DF ou FD: Dibujar y rellenar

Ejemplo:

    sc_pdf_rect($x, $y, $w, $h, 'D');

Alcance:

PDf Layout > Code > Layout & body

#### sc_pdf_set_draw_color

Descricíon:

Define el color utilizado para todas las operaciones de dibujo (líneas, rectángulos y bordes de celda). Puede expresarse en componentes RGB o en escala de grises. El método puede invocarse antes de crear la primera página y el valor se conserva de una página a otra.

Ejemplo:

    sc_pdf_set_draw_color(245, 232, 125);

Alcance:

PDf Layout > Code > Layout & body

#### sc_pdf_set_fill_color

Descricíon:

Define el color utilizado para todas las operaciones de relleno (rectángulos rellenos y fondos de celda). Puede expresarse en componentes RGB o en escala de grises. El método puede invocarse antes de crear la primera página y el valor se conserva de una página a otra.

Ejemplo:

    sc_pdf_set_fill_color(245, 232, 125);

Alcance:

PDf Layout > Code > Layout & body

#### sc_pdf_multi_cell

Descricíon:

Este método permite imprimir texto con saltos de línea. Pueden ser automáticos (en cuanto el texto alcanza el borde derecho de la celda) o explícitos (mediante el carácter \n). Se imprimen tantas celdas como sea necesario, una debajo de otra.

Parámetros

- w: ancho de celda
- h: altura de la celda
- txt: cadena a imprimir
- border: Indica si deben dibujarse bordes alrededor del bloque de celdas.
- align: Establece la alineación del texto. Los valores posibles son:
  L: alineación izquierda
  C: centro
  R: alineación derecha
  J: justificación (valor predeterminado)
  fill: Indica si el fondo de la celda debe ser pintado (true) o transparente (false). Valor por defecto: false.

Ejemplo:

    _sc_pdf_multi_cell(63, 10, "YourText", 1);

Alcance:

PDf Layout > Code > Layout & body

#### sc_pdf_cell

Descricíon:

Imprime una celda (área rectangular) con bordes opcionales, color de fondo y cadena de caracteres. La esquina superior izquierda de la celda corresponde a la posición actual. El texto puede estar alineado o centrado. Tras la llamada, la posición actual se desplaza a la derecha o a la línea siguiente. Es posible poner un enlace en el texto. Si el salto de página automático está activado y la celda sobrepasa el límite, se realiza un salto de página antes de la salida.

Parámetros:

- w: ancho de celda
- h: altura de la celda
- txt: cadena a imprimir
- border: Indica si deben dibujarse bordes alrededor del bloque de celdas.
- align: Establece la alineación del texto. Los valores posibles son:
  L: alineación izquierda
  C: centro
  R: alineación derecha
  J: justificación (valor por defecto)
  fill: Indica si el fondo de la celda debe ser pintado (true) o transparente (false). Valor por defecto: false.
- link: URL

Ejemplo:

    sc_pdf_cell(60, 6, 'Your Text', 0);

Alcance:

PDf Layout > Code > Layout & body

#### sc_pdf_add_link

Descricíon

Crea un nuevo enlace interno y devuelve su identificador. Un enlace interno es una zona en la que se puede hacer clic y que dirige a otra ubicación dentro del documento.

Ejemplo:

    sc_pdf_add_link();

Alcance:

PDf Layout > Code > Layout & body

#### sc_pdf_alias_nb_pages

Descricíon:

Define un alias para el número total de páginas. Se sustituirá a medida que se cierre el documento.

Ejemplo:

    sc_pdf_cell(0, 10, 'Page','{nb}', 0, 0, 'C')
    sc_pdf_alias_nb_pages();

Alcance:

PDf Layout > Code > Layout & body

#### sc_pdf_set_link

Descricíon:

Define la página y la posición a la que apunta un enlace.

Ejemplo:

    sc_pdf_set_link($link);

Alcance:

PDf Layout > Code > Layout & body

## Posicionamiento

Esta interfaz le permite definir el orden de visualización de los campos (seleccionando a través de las flechas al lado del marco derecho).

#####

#####