[caracas-pm] Sobre Latex

Walter Vargas walter at covetel.com.ve
Thu Nov 3 07:51:36 PDT 2011


Saludos Elvio,

Probablemente quieras utilizar Latex dentro de Catalyst, para esto yo
te recomiendo que utilices un módulo que se llama Template::Latex.

1. Vas a necesitar crear una vista para hacer tus PDF, basada en
Template Toolkit.
  script/myapp_create.pl view PDF TT

2. Luego, escribir una plantilla para el reporte respectivo
Lo amigable de este método, es que puedes usar estructuras y variables
de TT dentro del archivo LaTeX.
Importante al principio del template cargues el módulo Latex e
indiques el filtro PDF:

  [%- USE Latex;
        FILTER latex("pdf") %]

De igual forma, si tienes un objeto RS de DBIx::Class, puedes ponerlo
en el stash y acceder a el desde la template.

Aqui te dejo un ejemplo de como hacer una tabla pequeña. (Para una
sola página), si quieres una tabla que abarque más de una página y
haga cosas como repetir los encabezados por página, deberías  ver el
paquete de LaTeX longtable.

\begin{tabular}{|c|c|c|c|c|}
\hline
\textbf{Materia} & \textbf{Lapso 1} & \textbf{Lapso 2} & \textbf{Lapso
3} & \textbf{Definitiva} \tabularnewline
\hline
[% FOREACH materia IN materias %]
    [% total = 0 %]
    \hline
    [% materia %]
        [% FOREACH nota IN notas %]
            [% IF nota.materia.nombre == materia %]
                [% total = total + nota.nota %]
                & [% nota.nota %]
            [% END %]
        [% END %]
        & [% total / 3 FILTER format('%02.2f') %] \tabularnewline
    \hline
    [% total2 = total2 + total / 3 %]
[% END %]

\end{tabular}

3. Puedes crear un método en una Controladora, que genere el PDF, para
esto, desde este método, haces Forward a la Vista PDF

   if ($c->forward( 'MyApp::View::PDF' ) ) {

        $c->response->content_type('application/pdf');
        $c->response->header('Content-Disposition', "attachment;
filename=$file");
    }

De esta manera tus PDF nunca se guardan del lado del servidor, se
generan y se entregan al usuario cuando lo  solicita.


El 3 de noviembre de 2011 09:04, Luis Muñoz <lem at itverx.com.ve> escribió:
>
> On Nov 3, 2011, at 9:09 AM, Elvio Chavez wrote:
>
> >   Por favor cual de los módulos de Perl para Latex es más fácil de utilizar(ya consulté algunos pero necesito que alguien que los haya utilizado me diga según su experiencia), lo necesito para crear un documento con tabla multipage que repita el encabezado de la tabla, agradecido de antemano,
>
> Supongo que tu flujo de trabajo va a generar un documento, procesarlo y entregarlo en .pdf (o impreso) al usuario.
>
> En este caso, cualquier sistema de plantillas te sirve, porque vas a tener algo como (usando HTML::Template como ejemplo)
>
> \input{head}
> \begin{tabular}{...}
> <tmpl_loop mi_loop>
>
> <tmpl_var col1> & <tmpl_var col2> ... \\
>
> </tmpl_loop>
> \end{tabular}
> \input{tail}
>
> Luego de la sustitución debes hacer la invocación a LaTeX para procesar el documento y generar la salida.
>
> Saludos
>
> -lem
>
>
> _______________________________________________
> caracas-pm mailing list
> caracas-pm at pm.org
> http://mail.pm.org/mailman/listinfo/caracas-pm



--
Walter Vargas
Cooperativa Venezolana de Tecnologías Libres R.S.
Coordinador General.


More information about the caracas-pm mailing list