source: publico/ILSAPL/branches/2.5/skins/sk_sapl/relatorios/pdf_capa_processo_gerar.py @ 6238

Última Alteração nesse arquivo desde 6238 foi 6238, incluída por lucianodefazio, 9 anos atrás

Etiquetas PDF para capas de processo - 62x100mm - ref. Brother DK1202

  • Propriedade svn:executable mudada para *
File size: 3.8 KB
Linha 
1##parameters=sessao,imagem,data,lst_protocolos,dic_cabecalho,lst_rodape,dic_filtro
2
3"""relatorio_protocolo.py
4   External method para gerar o arquivo rml da etiqueta de protocolo
5   Autor: Luciano De Fazio
6   Empresa: OpenLegis Consultoria
7   versão: 1.0
8"""
9from trml2pdf import parseString
10from cStringIO import StringIO
11import time
12
13def paraStyle():
14    """Gera o codigo rml que define o estilo dos paragrafos"""
15
16    tmp_data=''
17    tmp_data+='\t<stylesheet>\n'
18    tmp_data+='\t\t<blockTableStyle id="Standard_Outline">\n'
19    tmp_data+='\t\t\t<blockAlignment value="LEFT"/>\n'
20    tmp_data+='\t\t\t<blockValign value="TOP"/>\n'
21    tmp_data+='\t\t</blockTableStyle>\n'
22    tmp_data+='\t\t<initialize>\n'
23    tmp_data+='\t\t\t<paraStyle name="all" alignment="justify"/>\n'
24    tmp_data+='\t\t</initialize>\n'
25    tmp_data+='\t\t<paraStyle name="P1" fontName="Helvetica" fontSize="9" leading="12" alignment="justify"/>\n'
26    tmp_data+='\t\t<paraStyle name="P2" fontName="Helvetica" fontSize="8" leading="9" alignment="right"/>\n'
27    tmp_data+='\t\t<paraStyle name="P3" fontName="Helvetica" fontSize="8" leading="9" alignment="justify"/>\n'
28    tmp_data+='\t</stylesheet>\n'
29
30    return tmp_data
31
32def protocolos(lst_protocolos):
33    """Gera o codigo rml do conteudo da pesquisa de protocolos"""
34
35    tmp_data=''
36
37    #inicio do bloco que contem os flowables
38    tmp_data+='\t<story>\n'
39
40    for dic in lst_protocolos:
41        #condicao para a quebra de pagina
42        tmp_data+='\t\t<condPageBreak height="3cm"/>\n'
43
44        #protocolos
45        if dic['titulo']!=None:
46            tmp_data+='\t\t<barCode code="Code128" x="5.6cm" barHeight="0.3in" barWidth="0.012in">' +dic['titulo']+ '</barCode>\n'
47        tmp_data+='\t\t<para style="P2"><b>Protocolo:</b> ' +dic['titulo']+ '</para>\n'
48        tmp_data+='\t\t<para style="P2">'+ dic['data']+ '</para>\n'
49        tmp_data+='\t\t<para style="P2">\n'
50        tmp_data+='\t\t\t<font color="white"> </font>\n'
51        tmp_data+='\t\t</para>\n'
52        tmp_data+='\t\t<para style="P1"><b>'+dic['sgl_processo']+' '+dic['ident_processo']+ ' '+dic['num_processo']+ '</b></para>\n'
53        tmp_data+='\t\t<para style="P1"><b>Autor:</b> ' +dic['nom_autor']+ '</para>\n'
54        tmp_data+='\t\t<para style="P2">\n'
55        tmp_data+='\t\t\t<font color="white"> </font>\n'
56        tmp_data+='\t\t</para>\n'
57        tmp_data+='\t\t<para style="P3"><b>Ementa:</b> ' +dic['txt_assunto']+ '</para>\n'
58
59    tmp_data+='\t</story>\n'
60    return tmp_data
61
62def principal(sessao,imagem,data,lst_protocolos,dic_cabecalho,lst_rodape,dic_filtro={}):
63    """Funcao pricipal que gera a estrutura global do arquivo rml"""
64
65    arquivoPdf=str(int(time.time()*100))+".pdf"
66
67    tmp_data=''
68    tmp_data+='<?xml version="1.0" encoding="ISO-8859-1" standalone="no" ?>\n'
69    tmp_data+='<!DOCTYPE document SYSTEM "rml_1_0.dtd">\n'
70    tmp_data+='<document filename="etiquetas.pdf">\n'
71    tmp_data+='\t<template pageSize="(10cm, 6.2cm)" title="Etiquetas de Protocolo" author="Luciano De Fazio" allowSplitting="20" rightMargin="3mm" showBoundary="0">\n'
72    tmp_data+='\t\t<pageTemplate id="main">\n'
73    tmp_data+='\t\t<pageGraphics>\n'
74    tmp_data+='\t\t</pageGraphics>\n'
75    tmp_data+='\t\t\t<frame id="first" x1="4mm" y1="1mm" width="94mm" height="60mm"/>\n'
76    tmp_data+='\t\t</pageTemplate>\n'
77    tmp_data+='\t</template>\n'
78    tmp_data+=paraStyle()
79    tmp_data+=protocolos(lst_protocolos)
80    tmp_data+='</document>\n'
81    tmp_pdf=parseString(tmp_data)
82
83    if hasattr(context.temp_folder,arquivoPdf):
84        context.temp_folder.manage_delObjects(ids=arquivoPdf)
85    context.temp_folder.manage_addFile(arquivoPdf)
86    arq=context.temp_folder[arquivoPdf]
87    arq.manage_edit(title='Arquivo PDF temporário.',filedata=tmp_pdf,content_type='application/pdf')
88
89    return "/temp_folder/"+arquivoPdf
90
91return principal(sessao,imagem,data,lst_protocolos,dic_cabecalho,lst_rodape,dic_filtro)
92
Note: Veja TracBrowser para ajuda no uso do navegador do trac.
 

The contents and data of this website are published under license:
Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual.