我们从Python开源项目中,提取了以下50个代码示例,用于说明如何使用reportlab.lib.units.cm()。
def __init__(self): super(InfoTotais.band_header, self).__init__() self.elements = [] self.elements.append(Line(top=0.1*cm, bottom=0.1*cm, left=0*cm, right=7.6*cm, stroke_width=0.3, dash=(1,1))) txt = self.inclui_texto_sem_borda(nome='', texto='Qtde. Total de Itens', top=0.1*cm, left=0*cm, width=3.8*cm) txt.style = {'fontName': FONTE_NFCE, 'fontSize': FONTE_TAMANHO_7, 'leading': FONTE_TAMANHO_7} txt = self.inclui_campo_sem_borda(nome=u'qtd_itens', conteudo=u'NFe.quantidade_itens', top=0.1*cm, left=3.8*cm, width=3.8*cm) txt.style = {'fontName': FONTE_NFCE, 'fontSize': FONTE_TAMANHO_7, 'leading': FONTE_TAMANHO_7, 'alignment': TA_RIGHT} txt = self.inclui_texto_sem_borda(nome='', texto='Valor Total R$', top=0.6*cm, left=0*cm, width=3.8*cm) txt.style = {'fontName': FONTE_NFCE, 'fontSize': FONTE_TAMANHO_7, 'leading': FONTE_TAMANHO_7} txt = self.inclui_campo_sem_borda(nome=u'valor_total', conteudo=u'NFe.valor_total_nota', top=0.6*cm, left=3.8*cm, width=3.8*cm) txt.style = {'fontName': FONTE_NFCE, 'fontSize': FONTE_TAMANHO_7, 'leading': FONTE_TAMANHO_7, 'alignment': TA_RIGHT} #self.auto_expand_height = True self.height = 1.1*cm
def __init__(self): super(TopoPagina, self).__init__() self.elements = [] txt = SystemField(expression='%(report_title)s', top=0.65 * cm, left=0 * cm, width=19.4 * cm, height=0.8 * cm) txt.style = {'fontName': REPORT_FONT_BOLD, 'fontSize': 15, 'alignment': TA_CENTER, 'leading': 15} self.elements.append(txt) txt = SystemField(expression='Página %(page_number)s de %(last_page_number)s', top=3.1 * cm, left=0 * cm, width=19.4 * cm, height=0.5 * cm) txt.style = {'fontName': REPORT_FONT, 'fontSize': 8.5, 'alignment': TA_RIGHT, 'leading': 8.5} self.elements.append(txt) self.elements.append(Line(top=3.6 * cm, bottom=3.6 * cm, left=0 * cm, right=19.4 * cm, stroke_width=0.3)) self.height = 3.65 * cm
def __init__(self): super(BandaFoot, self).__init__() self.ender_info = False self.elements = [] self.elements.append(Line(top=1.5 * cm, bottom=1.5 * cm, left=0 * cm, right=19.4 * cm, stroke_width=0.3)) txt = Label(text='Gerado por djangoSIGE', top=1.5 * cm, left=0 * cm, width=19.4 * cm, height=0.5 * cm) txt.style = {'fontName': REPORT_FONT_BOLD, 'fontSize': 8, 'alignment': TA_LEFT, 'leading': 8} self.elements.append(txt) txt = SystemField(expression='Data da impressão: %(now:%d/%m/%Y)s', top=1.5 * cm, left=0 * cm, width=19.4 * cm, height=0.5 * cm) txt.style = {'fontName': REPORT_FONT, 'fontSize': 8, 'alignment': TA_RIGHT, 'leading': 8} self.elements.append(txt) self.height = 2 * cm
def __init__(self): super(Cabecalho, self).__init__() self.elements = [] fld = self.inclui_campo_sem_borda(nome='razao_social', conteudo=u'NFe.razao_social_formatado', top=0*cm, left=0.3*cm, width=7.6*cm, height=0.5*cm) fld.style = {'fontName': FONTE_NFCE_NEGRITO, 'fontSize': FONTE_TAMANHO_9} fld = self.inclui_campo_sem_borda(nome='emitente', conteudo=u'NFe.cnpj_com_label_formatado', top=0.5*cm, left=0.3*cm, width=7.6*cm, height=0.5*cm) fld.style = {'fontName': FONTE_NFCE, 'fontSize': FONTE_TAMANHO_7} fld = self.inclui_campo_sem_borda(nome='endereco_emitente', conteudo=u'NFe.endereco_emitente_nfce_formatado', top=1*cm, left=0.3*cm, width=7.6*cm, height=0.5*cm) fld.style = {'fontName': FONTE_NFCE, 'fontSize': FONTE_TAMANHO_7, 'leading': FONTE_TAMANHO_7} txt = self.inclui_texto_sem_borda(nome='danfe_ext', texto=u'Documento Auxiliar da Nota Fiscal de Consumidor Eletrônica', top=1.6*cm, left=0*cm, width=7.6*cm, height=1*cm) txt.style = {'fontName': FONTE_NFCE, 'fontSize': FONTE_TAMANHO_9, 'alignment': TA_CENTER, 'leading': FONTE_TAMANHO_9} self.height = 2.6*cm
def __init__(self): super(InfoProdutos.band_header, self).__init__() self.elements = [] txt = self.inclui_texto_sem_borda(nome='', texto='Código', top=0*cm, left=0*cm, width=1.9*cm) txt.style = {'fontName': FONTE_NFCE, 'fontSize': FONTE_TAMANHO_7, 'leading': FONTE_TAMANHO_7} txt = self.inclui_texto_sem_borda(nome='', texto='Descrição', top=0*cm, left=1.9*cm, width=2.1*cm) txt.style = {'fontName': FONTE_NFCE, 'fontSize': FONTE_TAMANHO_7, 'leading': FONTE_TAMANHO_7} txt = self.inclui_texto_sem_borda(nome='', texto='Qtde', top=0*cm, left=4*cm, width=1*cm) txt.style = {'fontName': FONTE_NFCE, 'fontSize': FONTE_TAMANHO_7, 'leading': FONTE_TAMANHO_7} txt = self.inclui_texto_sem_borda(nome='', texto='UN', top=0*cm, left=5*cm, width=0.7*cm) txt.style = {'fontName': FONTE_NFCE, 'fontSize': FONTE_TAMANHO_7, 'leading': FONTE_TAMANHO_7} txt = self.inclui_texto_sem_borda(nome='', texto='V Un.', top=0*cm, left=5.7*cm, width=0.95*cm) txt.style = {'fontName': FONTE_NFCE, 'fontSize': FONTE_TAMANHO_7, 'leading': FONTE_TAMANHO_7} txt = self.inclui_texto_sem_borda(nome='', texto='Total', top=0*cm, left=6.65*cm, width=0.95*cm) txt.style = {'fontName': FONTE_NFCE, 'fontSize': FONTE_TAMANHO_7, 'leading': FONTE_TAMANHO_7} self.elements.append(Line(top=0.1*cm, bottom=0.1*cm, left=0*cm, right=7.6*cm, stroke_width=0.3, dash=(1,1))) self.elements.append(Line(top=0.51*cm, bottom=0.51*cm, left=0*cm, right=7.6*cm, stroke_width=0.3, dash=(1,1))) self.height = 0.51*cm
def __init__(self): super(InfoTotais.band_footer, self).__init__() self.elements = [] txt = self.inclui_texto_sem_borda(nome='', texto='Valor a Pagar R$', top=0*cm, left=0*cm, width=3.8*cm) txt.style = {'fontName': FONTE_NFCE, 'fontSize': FONTE_TAMANHO_7, 'leading': FONTE_TAMANHO_7} txt = self.inclui_campo_sem_borda(nome=u'qtd_itens', conteudo=u'NFe.valor_a_pagar_formatado', top=0*cm, left=3.8*cm, width=3.8*cm) txt.style = {'fontName': FONTE_NFCE, 'fontSize': FONTE_TAMANHO_7, 'leading': FONTE_TAMANHO_7, 'alignment': TA_RIGHT} self.height = 0.5*cm
def __init__(self): super(Acrescimos.band_header, self).__init__() self.elements = [] txt = self.inclui_texto_sem_borda(nome='', texto='Acréscimo R$', top=1.1*cm, left=0*cm, width=3.8*cm) txt.style = {'fontName': FONTE_NFCE, 'fontSize': FONTE_TAMANHO_7, 'leading': FONTE_TAMANHO_7} txt = self.inclui_campo_sem_borda(nome=u'total_acrescimos', conteudo=u'NFe.total_acrescimos', top=1.1*cm, left=3.8*cm, width=3.8*cm) txt.style = {'fontName': FONTE_NFCE, 'fontSize': FONTE_TAMANHO_7, 'leading': FONTE_TAMANHO_7, 'alignment': TA_RIGHT} self.height = 0.5*cm
def __init__(self): super(Descontos.band_header, self).__init__() self.elements = [] txt = self.inclui_texto_sem_borda(nome='', texto='Desconto R$', top=1.1*cm, left=0*cm, width=3.8*cm) txt.style = {'fontName': FONTE_NFCE, 'fontSize': FONTE_TAMANHO_7, 'leading': FONTE_TAMANHO_7} txt = self.inclui_campo_sem_borda(nome=u'total_desconto', conteudo=u'NFe.total_desconto', top=1.1*cm, left=3.8*cm, width=3.8*cm) txt.style = {'fontName': FONTE_NFCE, 'fontSize': FONTE_TAMANHO_7, 'leading': FONTE_TAMANHO_7, 'alignment': TA_RIGHT} self.height = 0.5*cm
def __init__(self): super(InfoPagamento.band_header, self).__init__() self.elements = [] txt = self.inclui_texto_sem_borda(nome='', texto='FORMA DE PAGAMENTO', top=0*cm, left=0*cm, width=3.8*cm) txt.style = {'fontName': FONTE_NFCE_NEGRITO, 'fontSize': FONTE_TAMANHO_7, 'leading': FONTE_TAMANHO_7} txt = self.inclui_texto_sem_borda(nome='', texto='VALOR PAGO', top=0*cm, left=3.8*cm, width=3.8*cm) txt.style = {'fontName': FONTE_NFCE_NEGRITO, 'fontSize': FONTE_TAMANHO_7, 'leading': FONTE_TAMANHO_7, 'alignment': TA_RIGHT} self.height = 0.5*cm
def __init__(self): super(InfoPagamento.band_footer, self).__init__() self.elements = [] txt = self.inclui_texto_sem_borda(nome='', texto='Troco', top=0*cm, left=0*cm, width=3.8*cm) txt.style = {'fontName': FONTE_NFCE, 'fontSize': FONTE_TAMANHO_7, 'leading': FONTE_TAMANHO_7} txt = self.inclui_campo_sem_borda(nome=u'troco', conteudo=u'NFe.troco_danfe', top=0*cm, left=3.8*cm, width=3.8*cm) txt.style = {'fontName': FONTE_NFCE, 'fontSize': FONTE_TAMANHO_7, 'leading':FONTE_TAMANHO_7, 'alignment': TA_RIGHT} self.height = 0.5*cm
def __init__(self): super(ConsultaChave, self).__init__() self.elements = [] self.elements.append(Line(top=0.1*cm, bottom=0.1*cm, left=0*cm, right=7.6*cm, stroke_width=0.3, dash=(1,1))) txt = self.inclui_texto_sem_borda(nome='consulta_chave_texto', texto=u'Consulte pela Chave de Acesso em', top=0.1*cm, left=0*cm, width=7.6*cm, height=0.5*cm) txt.style = {'fontName': FONTE_NFCE_NEGRITO, 'fontSize': FONTE_TAMANHO_6, 'alignment': TA_CENTER, 'leading': FONTE_TAMANHO_6} txt = self.inclui_campo_sem_borda(nome='endereco_consulta_chave', conteudo=u'NFe.endereco_consulta_chave_nfce', top=0.5*cm, left=0*cm, width=7.6*cm, height=0.4*cm) txt.style = {'fontName': FONTE_NFCE, 'fontSize': FONTE_TAMANHO_5, 'alignment': TA_CENTER, 'leading': FONTE_TAMANHO_5} txt = self.inclui_campo_sem_borda(nome='chave_formatada', conteudo=u'NFe.chave_formatada', top=1*cm, left=0*cm, width=7.6*cm, height=0.5*cm) txt.style = {'fontName': FONTE_NFCE, 'fontSize': FONTE_TAMANHO_6, 'alignment': TA_CENTER, 'leading': FONTE_TAMANHO_6} self.height = 1.5*cm
def __init__(self): super(TransporteRetrato, self).__init__() self.elements = [] self.inclui_descritivo(nome='clc', titulo=u'TRANSPORTADOR/VOLUMES TRANSPORTADOS', top=0*cm, left=0*cm, width=19.4*cm) # 1ª linha lbl, fld = self.inclui_campo(nome='trn_nome', titulo=u'NOME/RAZÃO SOCIAL', conteudo='NFe.infNFe.transp.transporta.xNome.valor', top=0.42*cm, left=0*cm, width=9.02*cm) lbl, fld = self.inclui_campo(nome='trn_frete', titulo=u'FRETE POR CONTA', conteudo='NFe.frete_formatado', top=0.42*cm, left=9.02*cm, width=2.8*cm) lbl, fld = self.inclui_campo(nome='trn_antt', titulo=u'CÓDIGO ANTT', conteudo='NFe.infNFe.transp.veicTransp.RNTC.valor', top=0.42*cm, left=11.82*cm, width=1.5*cm) lbl, fld = self.inclui_campo(nome='trn_placa', titulo=u'PLACA DO VEÍCULO', conteudo=u'NFe.placa_veiculo_formatada', top=0.42*cm, left=13.32*cm, width=1.85*cm) lbl, fld = self.inclui_campo(nome='trn_vei_uf', titulo=u'UF', conteudo='NFe.infNFe.transp.veicTransp.UF.valor', top=0.42*cm, left=15.17*cm, width=0.7*cm) lbl, fld = self.inclui_campo(nome='trn_cnpj', titulo=u'CNPJ/CPF', conteudo=u'NFe.cnpj_transportadora_formatado', top=0.42*cm, left=15.87*cm, width=3.53*cm, margem_direita=True) # 2ª linha lbl, fld = self.inclui_campo(nome='trn_end', titulo=u'ENDEREÇO', conteudo='NFe.infNFe.transp.transporta.xEnder.valor', top=1.12*cm, left=0*cm, width=9.75*cm) lbl, fld = self.inclui_campo(nome='trn_mun', titulo=u'MUNICÍPIO', conteudo='NFe.infNFe.transp.transporta.xMun.valor', top=1.12*cm, left=9.75*cm, width=5.95*cm) lbl, fld = self.inclui_campo(nome='trn_uf', titulo=u'UF', conteudo='NFe.infNFe.transp.transporta.UF.valor', top=1.12*cm, left=15.7*cm, width=0.7*cm) lbl, fld = self.inclui_campo(nome='trn_ie', titulo=u'INSCRIÇÃO ESTADUAL', conteudo=u'NFe.infNFe.transp.transporta.IE.valor', top=1.12*cm, left=16.4*cm, width=3*cm, margem_direita=True) # 3ª linha self.elements.append(VolumesRetrato()) #self.height = (2.52*cm) - fld.height self.height = 1.82*cm
def __init__(self): super(ISSRetrato, self).__init__() self.elements = [] # Cálculo do ISS self.inclui_descritivo(nome='iss', titulo=u'CÁLCULO DO ISSQN', top=0*cm, left=0*cm, width=19.4*cm) lbl, fld = self.inclui_campo(nome='iss_im', titulo=u'INSCRIÇÃO MUNICIPAL', conteudo=u'NFe.infNFe.ide.cMunFG.valor', top=0.42*cm, left=0*cm, width=4.85*cm) lbl, fld = self.inclui_campo_numerico(nome='iss_vr_servico', titulo=u'VALOR TOTAL DOS SERVIÇOS', conteudo=u'NFe.infNFe.total.ISSQNTot.vServ.formato_danfe', top=0.42*cm, left=4.85*cm, width=4.85*cm) lbl, fld = self.inclui_campo_numerico(nome='iss_bc', titulo=u'BASE DE CÁLCULO DO ISSQN', conteudo=u'NFe.infNFe.total.ISSQNTot.vBC.formato_danfe', top=0.42*cm, left=9.7*cm, width=4.85*cm) lbl, fld = self.inclui_campo_numerico(nome='iss_vr_iss', titulo=u'VALOR DO ISSQN', conteudo=u'NFe.infNFe.total.ISSQNTot.vISS.formato_danfe', top=0.42*cm, left=14.55*cm, width=4.85*cm, margem_direita=True) # Dados adicionais self.inclui_descritivo(nome='clc', titulo=u'DADOS ADICIONAIS', top=1.12*cm, left=0*cm, width=19.4*cm) lbl, txt = self.inclui_campo(nome='', titulo='INFORMAÇÕES COMPLEMENTARES', conteudo='NFe.dados_adicionais', top=1.54*cm, left=0*cm, width=11.7*cm, height=4*cm) txt.style = DADO_COMPLEMENTAR self.inclui_texto(nome='', titulo='RESERVADO AO FISCO', texto='', top=1.54*cm, left=11.7*cm, width=7.7*cm, height=4*cm, margem_direita=True) fld = DANFERetrato.ObsImpressao() fld.top = 5.54*cm self.elements.append(fld) self.height = 5.54*cm
def __init__(self): super(DadosAdicionaisRetrato, self).__init__() self.elements = [] self.inclui_descritivo(nome='clc', titulo=u'DADOS ADICIONAIS', top=0*cm, left=0*cm, width=19.4*cm) lbl, txt = self.inclui_campo(nome='', titulo='INFORMAÇÕES COMPLEMENTARES', conteudo='NFe.dados_adicionais', top=0.42*cm, left=0*cm, width=11.7*cm, height=4*cm) txt.style = DADO_COMPLEMENTAR self.inclui_texto(nome='', titulo='RESERVADO AO FISCO', texto='', top=0.42*cm, left=11.7*cm, width=7.7*cm, height=4*cm, margem_direita=True) fld = DANFERetrato.ObsImpressao() # fld.top = 4.42*cm fld.top = 4.62*cm self.elements.append(fld) # self.height = 4.42*cm self.height = 4.62*cm
def __init__(self): super(FaturaAPrazoPaisagem, self).__init__() self.elements = [] self.inclui_descritivo(nome='fat', titulo=u'FATURA', top=0*cm, left=2.6*cm, width=26.8*cm, height=0.4*cm) # 1ª linha lbl, txt = self.inclui_texto(nome='fat_texto', titulo='', texto=u'PAGAMENTO A PRAZO', top=0.4*cm, left=2.6*cm, width=10*cm, height=0.6*cm) txt.padding_top = 0.1*cm lbl.borders['right'] = {'top': 1.0, 'right': 1.0, 'bottom': 1.0, 'left': 1.0} lbl, fld = self.inclui_campo(nome='fat_numero', titulo=u'NÚMERO DA FATURA', conteudo=u'NFe.infNFe.cobr.fat.nFat.valor', top=0.4*cm, left=12.6*cm, width=9*cm, height=0.6*cm) fld.padding_top = 0.18*cm lbl, fld = self.inclui_campo_numerico(nome='fat_vorig', titulo=u'VALOR LÍQUIDO', conteudo=u'NFe.infNFe.cobr.fat.vLiq.formato_danfe', top=0.4*cm, left=21.6*cm, width=7.8*cm, height=0.6*cm, margem_direita=True) fld.padding_top = 0.18*cm self.height = 1*cm
def __init__(self): super(DuplicatasPaisagem.band_detail, self).__init__() self.width = 6.4*cm self.display_inline = True self.margin_right = 0.08*cm self.margin_top = 0.08*cm self.elements = [] lbl, fld = self.inclui_campo(nome='dup_numero', titulo=u'NÚMERO', conteudo=u'nDup.valor', top=1*cm, left=2.6*cm, width=2.8*cm, height=0.6*cm) fld.padding_top = 0.18*cm lbl, fld = self.inclui_campo(nome='dup_venc' , titulo=u'VENCIMENTO', conteudo=u'dVenc.formato_danfe', top=1*cm, left=5.4*cm, width=1.9*cm, height=0.6*cm) fld.padding_top = 0.18*cm lbl, fld = self.inclui_campo_numerico(nome='dup_valor', titulo=u'VALOR', conteudo=u'vDup.formato_danfe', top=1*cm, left=7.3*cm, width=1.7*cm, height=0.6*cm, margem_direita=True) fld.padding_top = 0.18*cm self.height = fld.height
def __init__(self): super(VolumesPaisagem.band_detail, self).__init__() self.elements = [] lbl, fld = self.inclui_campo_numerico(nome='vol_qtd', titulo=u'QUANTIDADE', conteudo=u'qVol.formato_danfe', top=1.6*cm, left=2.6*cm, width=4*cm, height=0.6*cm) fld.padding_top = 0.18*cm lbl, fld = self.inclui_campo(nome='vol_esp', titulo=u'ESPÉCIE', conteudo=u'esp.valor', top=1.6*cm, left=6.6*cm, width=4*cm, height=0.6*cm) fld.padding_top = 0.18*cm lbl, fld = self.inclui_campo(nome='vol_marca', titulo=u'MARCA', conteudo=u'marca.valor', top=1.6*cm, left=10.6*cm, width=4*cm, height=0.6*cm) fld.padding_top = 0.18*cm lbl, fld = self.inclui_campo(nome='vol_numero', titulo=u'NÚMERO', conteudo=u'nVol.valor', top=1.6*cm, left=14.6*cm, width=5*cm, height=0.6*cm) fld.padding_top = 0.18*cm lbl, fld = self.inclui_campo_numerico(nome='vol_peso_bruto', titulo=u'PESO BRUTO', conteudo=u'pesoB.formato_danfe', top=1.6*cm, left=19.6*cm, width=5*cm, height=0.6*cm) fld.padding_top = 0.18*cm lbl, fld = self.inclui_campo_numerico(nome='vol_peso_liquido', titulo=u'PESO LÍQUIDO', conteudo=u'pesoL.formato_danfe', top=1.6*cm, left=24.6*cm, width=4.8*cm, height=0.6*cm, margem_direita=True) fld.padding_top = 0.18*cm self.height = fld.height
def __init__(self, *args, **kargs): super(VendaReport, self).__init__(*args, **kargs) self.title = 'Relatorio de venda' self.page_size = A4 self.margin_left = 0.8 * cm self.margin_top = 0.8 * cm self.margin_right = 0.8 * cm self.margin_bottom = 0.8 * cm self.topo_pagina = TopoPagina() self.dados_cliente = DadosCliente() self.banda_produtos = BandaProdutos() self.dados_produtos = DadosProdutos() self.totais_venda = TotaisVenda() self.banda_pagamento = BandaPagamento() self.dados_pagamento = DadosPagamento() self.observacoes = Observacoes() self.banda_foot = BandaFoot()
def inserir_informacoes_endereco(self): self.ender_info = True txt = ObjectValue(attribute_name='cliente.endereco_padrao.format_endereco', display_format='Endereço: %s', top=1.1 * cm, left=0.3 * cm, width=19.4 * cm, height=0.5 * cm) txt.style = {'fontName': REPORT_FONT, 'fontSize': 10, 'leading': 10} self.elements.append(txt) txt = ObjectValue(attribute_name='cliente.endereco_padrao.municipio', display_format='Cidade: %s', top=1.6 * cm, left=0.3 * cm, width=8 * cm, height=0.5 * cm) txt.style = {'fontName': REPORT_FONT, 'fontSize': 10, 'leading': 10} self.elements.append(txt) txt = ObjectValue(attribute_name='cliente.endereco_padrao.uf', display_format='UF: %s', top=1.6 * cm, left=8.1 * cm, width=4 * cm, height=0.5 * cm) txt.style = {'fontName': REPORT_FONT, 'fontSize': 10, 'leading': 10} self.elements.append(txt) txt = ObjectValue(attribute_name='cliente.endereco_padrao.cep', display_format='CEP: %s', top=1.6 * cm, left=13 * cm, width=19.4 * cm, height=0.5 * cm) txt.style = {'fontName': REPORT_FONT, 'fontSize': 10, 'leading': 10} self.elements.append(txt)
def __init__(self): super(BandaPagamento, self).__init__() self.elements = [] self.elements.append(Line(top=0.1 * cm, bottom=0.1 * cm, left=0 * cm, right=19.4 * cm, stroke_width=0.3)) txt = Label(text='Pagamento', top=0.2 * cm, left=0 * cm, width=19.4 * cm, height=0.5 * cm) txt.style = {'fontName': REPORT_FONT_BOLD, 'fontSize': 11, 'alignment': TA_CENTER, 'leading': 11} self.elements.append(txt) # Condicao de pagamento txt = ObjectValue(attribute_name='cond_pagamento.get_forma_display', display_format='Forma: %s', top=1 * cm, left=0.5 * cm, width=4 * cm, height=0.5 * cm) txt.style = {'fontName': REPORT_FONT, 'fontSize': 9, 'leading': 9} self.elements.append(txt) txt = ObjectValue(attribute_name='cond_pagamento.n_parcelas', display_format='Nº de parcelas: %s', top=1 * cm, left=5 * cm, width=3 * cm, height=0.5 * cm) txt.style = {'fontName': REPORT_FONT, 'fontSize': 9, 'leading': 9} self.elements.append(txt) self.height = 2 * cm
def __init__(self): super(DadosPagamento.band_header, self).__init__() self.elements = [] txt = Label(text='Parcela', top=2 * cm, left=0 * cm, width=4 * cm, height=0.5 * cm) txt.style = {'fontName': REPORT_FONT_BOLD, 'alignment': TA_CENTER, 'fontSize': 10, 'leading': 10} self.elements.append(txt) txt = Label(text='Vencimento', top=2 * cm, left=4.1 * cm, width=4.1 * cm, height=0.5 * cm) txt.style = {'fontName': REPORT_FONT_BOLD, 'alignment': TA_CENTER, 'fontSize': 10, 'leading': 10} self.elements.append(txt) txt = Label(text='Valor', top=2 * cm, left=8.3 * cm, width=4.5 * cm, height=0.5 * cm) txt.style = {'fontName': REPORT_FONT_BOLD, 'alignment': TA_CENTER, 'fontSize': 10, 'leading': 10} self.elements.append(txt) self.height = 2.7 * cm
def __init__(self): super(Observacoes, self).__init__() self.elements = [] self.elements.append(Line(top=0.1 * cm, bottom=0.1 * cm, left=0 * cm, right=19.4 * cm, stroke_width=0.3)) txt = Label(text='Observações', top=0.2 * cm, left=0 * cm, width=19.4 * cm, height=0.5 * cm) txt.style = {'fontName': REPORT_FONT_BOLD, 'fontSize': 11, 'alignment': TA_CENTER, 'leading': 11} self.elements.append(txt) txt = ObjectValue(attribute_name='observacoes', top=0.8 * cm, left=0.5 * cm, width=19.4 * cm, height=2 * cm) txt.style = {'fontName': REPORT_FONT, 'fontSize': 9, 'leading': 9} self.elements.append(txt) self.height = 2 * cm
def inserir_informacoes_endereco(self): self.ender_info = True txt = ObjectValue(attribute_name='fornecedor.endereco_padrao.format_endereco', display_format='Endereço: %s', top=1.1 * cm, left=0.3 * cm, width=19.4 * cm, height=0.5 * cm) txt.style = {'fontName': REPORT_FONT, 'fontSize': 10, 'leading': 10} self.elements.append(txt) txt = ObjectValue(attribute_name='fornecedor.endereco_padrao.municipio', display_format='Cidade: %s', top=1.6 * cm, left=0.3 * cm, width=8 * cm, height=0.5 * cm) txt.style = {'fontName': REPORT_FONT, 'fontSize': 10, 'leading': 10} self.elements.append(txt) txt = ObjectValue(attribute_name='fornecedor.endereco_padrao.uf', display_format='UF: %s', top=1.6 * cm, left=8.1 * cm, width=4 * cm, height=0.5 * cm) txt.style = {'fontName': REPORT_FONT, 'fontSize': 10, 'leading': 10} self.elements.append(txt) txt = ObjectValue(attribute_name='fornecedor.endereco_padrao.cep', display_format='CEP: %s', top=1.6 * cm, left=13 * cm, width=19.4 * cm, height=0.5 * cm) txt.style = {'fontName': REPORT_FONT, 'fontSize': 10, 'leading': 10} self.elements.append(txt)
def _num(s, unit=1, allowRelative=True): """Convert a string like '10cm' to an int or float (in points). The default unit is point, but optionally you can use other default units like mm. """ if s.endswith('cm'): unit=cm s = s[:-2] if s.endswith('in'): unit=inch s = s[:-2] if s.endswith('pt'): unit=1 s = s[:-2] if s.endswith('i'): unit=inch s = s[:-1] if s.endswith('mm'): unit=mm s = s[:-2] if s.endswith('pica'): unit=pica s = s[:-4] return _convnum(s,unit,allowRelative)
def getDrawing02(): """Various Line shapes. The lines are blue and their strokeWidth is 5 mm. One line has a strokeDashArray set to [5, 10, 15]. """ D = Drawing(400, 200) D.add(Line(50,50, 300,100, strokeColor=colors.blue, strokeWidth=0.5*cm, )) D.add(Line(50,100, 300,50, strokeColor=colors.blue, strokeWidth=0.5*cm, strokeDashArray=[5, 10, 15], )) #x = 1/0 # Comment this to see the actual drawing! return D
def _add_page_outline(self, canvas): start_posn = self.start_posn canvas.setLineWidth(2) canvas.rect(cm, cm, PAGE_WIDTH-2*cm, PAGE_HEIGHT-2*cm) canvas.drawImage(LOGO_PATH, 0.5*inch, start_posn, height=0.5*inch, width=1.875*inch) canvas.setFont('Helvetica-Bold', 24) canvas.drawRightString(PAGE_WIDTH-(0.5*inch), start_posn + 0.15*inch, 'REGISTRATION FORM') footer_text = 'This form created on ' footer_text += datetime.now().strftime('%Y-%m-%d %I:%M:%S %p') canvas.setFont('Helvetica', 9) canvas.drawRightString(PAGE_WIDTH-(0.5*inch), 0.5*inch, footer_text) self.start_posn = start_posn - 0.4 * inch sales_rep_text = 'BOOKING REP: ' if self.user.first_name or self.user.last_name: sales_rep_text += self.user.first_name + ' ' + self.user.last_name else: sales_rep_text += self.user.username canvas.setFont('Helvetica-Bold', 9.5) canvas.drawString(0.5*inch, 0.5*inch, sales_rep_text)
def test_0(self): "Test length attribute conversion." mapping = ( ("0", 0), ("316", 316), ("-316", -316), ("-3.16", -3.16), ("-1e-2", -0.01), ("1e-5", 1e-5), ("1e1cm", 10*cm), ("1e1in", 10*inch), ("1e1%", 10), ("-8e-2cm", (-8e-2)*cm), ("20px", 20), ("20pt", 20 * 1.25), ("1.5em", 12 * 1.5), ) ac = svglib.Svg2RlgAttributeConverter() failed = _testit(ac.convertLength, mapping) assert len(failed) == 0 assert ac.convertLength("1.5em", em_base=16.5) == 24.75
def run(self,open=True): self.Set_Heading() self.Set_Heading_Style() self.SetTable_Style() self.Format_Title() #[self.cW1*cm]*2+[self.cW2*cm]+[1*cm]*2+[self.cW3*cm]*56 #[self.cW1*cm]*2+[self.cW2*cm]+[1*cm]*2+[self.cW3*cm]*51+[ self.cW4*cm]*11+[self.cW5*cm]+[self.cW3*cm]*3 self.Heading_Table=Table(self.HEADING,[self.cW1*cm]*2+[self.cW2*cm]+[1*cm]*2+[self.cW3*cm]*41+[ self.cW4*cm]*11+[self.cW5*cm]+[self.cW3*cm]*3,[self.rH2*cm]+[self.rH3*cm]+[self.rH4*cm]) self.Heading_Table.setStyle(TableStyle(self.Heading_Style)) self.Populate() #self.AddPage() self.Set_Consolidation() self.Set_Consolidation_Style() self.Add_Consolidation() self.Failed_Report() self.Save(open)
def mainPageFrame(canvas, doc): "The page frame used for all PDF documents." canvas.saveState() pageNumber = canvas.getPageNumber() canvas.line(2*cm, A4[1]-2*cm, A4[0]-2*cm, A4[1]-2*cm) canvas.line(2*cm, 2*cm, A4[0]-2*cm, 2*cm) if pageNumber > 1: canvas.setFont('Times-Roman', 12) canvas.drawString(4 * inch, cm, "%d" % pageNumber) if hasattr(canvas, 'headerLine'): # hackish # HVB: Changed fr Hyphenation support # headerline = string.join(canvas.headerLine, ' \xc2\x8d ') headerline = string.join(canvas.headerLine, ' \xc2\x8d '.decode('utf8')) canvas.drawString(2*cm, A4[1]-1.75*cm, headerline) canvas.setFont('Times-Roman', 8) msg = "Generated with docpy. See http://www.reportlab.com!" canvas.drawString(2*cm, 1.65*cm, msg) canvas.restoreState()
def endFunction(self, name, doc, sig): "Append a drawing to the story for special function names." if name[:6] != 'sample': return if VERBOSE: print 'GraphPdfDocBuilder.endFunction(%s...)' % name PdfDocBuilder0.endFunction(self, name, doc, sig) aFunc = eval('self.skeleton.moduleSpace.' + name) drawing = aFunc() self.story.append(Spacer(0*cm, 0.5*cm)) self._showFunctionDemoCode(aFunc) self.story.append(Spacer(0*cm, 0.5*cm)) self._showDrawingDemo(drawing) self.story.append(PageBreak())
def table_of_helpers(elements, helpers, event): # table header = [par(_("Name")), par(_("Mobile phone")), ] if event.ask_shirt: header.append(par(_("T-shirt"))) header.append(par(_("Comment"))) data = [header, ] for helper in helpers: tmp = [par("%s %s" % (helper.firstname, helper.surname)), par(helper.phone), ] if event.ask_shirt: tmp.append(par(helper.get_shirt_display())) tmp.append(par(helper.comment)) data.append(tmp) if event.ask_shirt: spaces = [6*cm, 4*cm, 2*cm, 5*cm] else: spaces = [6*cm, 4*cm, 7*cm] add_table(elements, data, spaces)
def __init__(self, *args, **kargs): super(DANFCE, self).__init__(*args, **kargs) self.title = 'Documento Auxiliar da Nota Fiscal de Consumidor Eletrônica' self.print_if_empty = True self.additional_fonts = FONTES_ADICIONAIS self.page_size = (8*cm, 15.0*cm) self.margin_top = 0.2*cm self.margin_bottom = 0.2*cm self.margin_left = 0.2*cm self.margin_right = 0.2*cm # Bandas e observações self.cabecalho = Cabecalho() self.mensagem_fiscal_topo = MensagemFiscalTopo() self.det_totais = DetTotais() self.det_produtos = DetProdutos() self.det_pagamento = DetPagamento() self.consulta_chave = ConsultaChave() self.id_consumidor = IdConsumidor() self.ender_consumidor = EnderecoConsumidor() self.id_nfce = IdNFCe() self.mensagem_fiscal_base = MensagemFiscalBase() self.qrcode_danfe = QRCodeDanfe() self.tributos_totais = TributosTotais() self.inf_produtos = InfoProdutos() self.inf_totais = InfoTotais() self.inf_pagamento = InfoPagamento() self.acrescimos = Acrescimos() self.descontos = Descontos()
def set_report_height(self, n_produtos, n_pag): #Cabecalho fit_height = self.band_page_header.height #band_page_header.child_bands (MensagemFiscalTopo, MensagemFiscalBase, DetProdutos(0), DetTotais(0), DetPagamento(0), # ConsultaChave, IdConsumidor, EnderecoConsumidor, IdNFCe, QRCodeDanfe, TributosTotais ) for i in self.band_page_header.child_bands: fit_height += i.height ##Somar produtos: band_header + band_detail * (n_produtos) for el in self.det_produtos.elements: fit_height += el.band_detail.height * n_produtos fit_height += el.band_header.height ##Somar totais: band_header + band_footer for el in self.det_totais.elements: fit_height += el.band_header.height fit_height += el.band_footer.height ##Somar pagamentos: band_header + (band_detail * (n_pag)) + band_footer for el in self.det_pagamento.elements: fit_height += el.band_header.height fit_height += el.band_detail.height * n_pag fit_height += el.band_footer.height #Somar margens fit_height += self.margin_top + self.margin_bottom + 10 self.page_size = (8*cm, fit_height)
def __init__(self): super(DetProdutos, self).__init__() self.elements = [] self.height = 0*cm #self.auto_expand_height = True
def set_band_height(self, field_size): ##14 caracteres por linha n_lines = field_size/14 ##0.22*cm por linha self.height = 0.2*cm*(n_lines+1)
def __init__(self): super(InfoPagamento.band_detail, self).__init__() self.elements = [] txt = self.inclui_campo_sem_borda(nome=u'forma_pagamento', conteudo=u'forma_pagamento_danfe', top=0*cm, left=0*cm, width=3.8*cm) txt.style = {'fontName': FONTE_NFCE, 'fontSize': FONTE_TAMANHO_7, 'leading': FONTE_TAMANHO_7, 'alignment': TA_LEFT} txt = self.inclui_campo_sem_borda(nome=u'valor_pagamento', conteudo=u'valor_pagamento_danfe', top=0*cm, left=3.8*cm, width=3.8*cm) txt.style = {'fontName': FONTE_NFCE, 'fontSize': FONTE_TAMANHO_7, 'leading': FONTE_TAMANHO_7, 'alignment': TA_RIGHT} #self.auto_expand_height = True self.height = 0.5*cm
def __init__(self): super(IdConsumidor, self).__init__() self.elements = [] self.elements.append(Line(top=0.1*cm, bottom=0.1*cm, left=0*cm, right=7.6*cm, stroke_width=0.3, dash=(1,1)))
def consumidor_nao_identificado(self): txt = self.inclui_texto_sem_borda(nome='consumidor_ni', texto=u'CONSUMIDOR NÃO IDENTIFICADO', top=0.1*cm, left=0*cm, width=7.6*cm, height=0.4*cm) txt.style = {'fontName': FONTE_NFCE, 'fontSize': FONTE_TAMANHO_7, 'alignment': TA_CENTER, 'leading': FONTE_TAMANHO_7} self.height = 0.5*cm
def __init__(self): super(EnderecoConsumidor, self).__init__() self.elements = [] txt = self.inclui_campo_sem_borda(nome='ender_consumidor', conteudo=u'NFe.ender_consumidor', top=0*cm, left=0*cm, width=7.6*cm, height=0.4*cm) txt.style = {'fontName': FONTE_NFCE, 'fontSize': FONTE_TAMANHO_6, 'alignment': TA_CENTER, 'leading': FONTE_TAMANHO_6} self.height = 0.4*cm
def __init__(self): super(IdNFCe, self).__init__() self.elements = [] self.elements.append(Line(top=0.1*cm, bottom=0.1*cm, left=0*cm, right=7.6*cm, stroke_width=0.3, dash=(1,1))) txt = self.inclui_campo_sem_borda(nome='id_nfce', conteudo=u'NFe.id_nfce', top=0.1*cm, left=0*cm, width=7.6*cm, height=0.5*cm) txt.style = {'fontName': FONTE_NFCE_NEGRITO, 'fontSize': FONTE_TAMANHO_7, 'alignment': TA_CENTER, 'leading': FONTE_TAMANHO_7} txt = self.inclui_campo_sem_borda(nome='id_nfce', conteudo=u'NFe.data_emissao_danfe_nfce', top=0.5*cm, left=0*cm, width=7.6*cm, height=0.4*cm) txt.style = {'fontName': FONTE_NFCE_NEGRITO, 'fontSize': FONTE_TAMANHO_6, 'alignment': TA_CENTER, 'leading': FONTE_TAMANHO_6} self.height = 0.9*cm
def campo_variavel_protocolo(self): txt = self.inclui_campo_sem_borda(nome='prot_aut', conteudo=u'protNFe.protocolo_formatado_nfce', top=1*cm, left=0*cm, width=7.6*cm, height=0.5*cm) txt.style = {'fontName': FONTE_NFCE_NEGRITO, 'fontSize': FONTE_TAMANHO_7, 'alignment': TA_CENTER, 'leading': FONTE_TAMANHO_7} txt = self.inclui_campo_sem_borda(nome='data_aut', conteudo=u'protNFe.data_autorizacao_nfce', top=1.5*cm, left=0*cm, width=7.6*cm, height=0.5*cm) txt.style = {'fontName': FONTE_NFCE_NEGRITO, 'fontSize': FONTE_TAMANHO_7, 'alignment': TA_CENTER, 'leading': FONTE_TAMANHO_7} self.height = 2*cm
def campo_variavel_contingencia(self): self.elements.append(Line(top=0.1*cm, bottom=0.1*cm, left=0*cm, right=7.6*cm, stroke_width=0.3, dash=(1,1))) txt = self.inclui_texto_sem_borda(nome='msg_contingencia', texto=u'EMITIDA EM CONTINGÊNCIA', top=0*cm, left=0*cm, width=7.6*cm, height=0.5*cm) txt.style = {'fontName': FONTE_NFCE, 'fontSize': FONTE_TAMANHO_8, 'alignment': TA_CENTER, 'leading': FONTE_TAMANHO_8} txt = self.inclui_texto_sem_borda(nome='msg_contingencia', texto=u'Pendente de autorização', top=0.4*cm, left=0*cm, width=7.6*cm, height=0.4*cm) txt.style = {'fontName': FONTE_NFCE, 'fontSize': FONTE_TAMANHO_7, 'alignment': TA_CENTER, 'leading': FONTE_TAMANHO_7} #for l in [0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55]: for l in [0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]: self.elements.append(Line(top=l*cm, bottom=l*cm, left=0*cm, right=1.7*cm, stroke_width=0.1)) self.elements.append(Line(top=l*cm, bottom=l*cm, left=5.9*cm, right=7.6*cm, stroke_width=0.1)) self.height = 0.9*cm
def campo_variavel_contingencia(self): txt = self.inclui_texto_sem_borda(nome='msg_contingencia', texto=u'EMITIDA EM CONTINGÊNCIA', top=0.1*cm, left=0*cm, width=7.6*cm, height=0.5*cm) txt.style = {'fontName': FONTE_NFCE, 'fontSize': FONTE_TAMANHO_8, 'alignment': TA_CENTER, 'leading': FONTE_TAMANHO_8} txt = self.inclui_texto_sem_borda(nome='msg_contingencia', texto=u'Pendente de autorização', top=0.5*cm, left=0*cm, width=7.6*cm, height=0.4*cm) txt.style = {'fontName': FONTE_NFCE, 'fontSize': FONTE_TAMANHO_7, 'alignment': TA_CENTER, 'leading': FONTE_TAMANHO_7} self.height = 0.9*cm
def campo_variavel_homologacao(self): txt = self.inclui_texto_sem_borda(nome='amb_2', texto=u'EMITIDA EM AMBIENTE DE HOMOLOGAÇÃO – SEM VALOR FISCAL', top=0.1*cm, left=0*cm, width=7.6*cm, height=0.5*cm) txt.style = {'fontName': FONTE_NFCE, 'fontSize': FONTE_TAMANHO_8, 'alignment': TA_CENTER, 'leading': FONTE_TAMANHO_7} txt.padding_top = 0.25*cm self.height = 1*cm
def gera_img_qrcode(self): ##Aprox. 37mmx37mm self.elements.append(BarCode(type=u'QR', attribute_name=u'NFe.infNFeSupl.qrCode.valor', top=0.1*cm, left=1.3*cm, width=5*cm, height=5*cm, border=0.5*cm, qr_level='M')) self.height = 5.2*cm
def __init__(self): super(TributosTotais, self).__init__() self.elements = [] self.elements.append(Line(top=0.1*cm, bottom=0.1*cm, left=0*cm, right=7.6*cm, stroke_width=0.3, dash=(1,1))) txt = self.inclui_campo_sem_borda(nome='trib_tot', conteudo=u'NFe.tributos_totais_nfce', top=0*cm, left=0*cm, width=7.6*cm, height=0.5*cm) txt.style = {'fontName': FONTE_NFCE, 'fontSize': FONTE_TAMANHO_6, 'alignment': TA_CENTER, 'leading': FONTE_TAMANHO_6} self.elements.append(Line(top=0.6*cm, bottom=0.6*cm, left=0*cm, right=7.6*cm, stroke_width=0.3, dash=(1,1))) self.height = 0.6*cm
def __init__(self): self.name = 'obs_impressao' self.top = 0*cm self.left = 0.1*cm self.width = 19.4*cm self.height = 0.2*cm self.style = DADO_PRODUTO self.borders = {'bottom': 1.0}
def campo_variavel_conferencia(self): txt = self.inclui_texto_sem_borda(nome='remetente_var1', texto=u'<font color="red"><b>Impresso para simples conferência<br />Informações ainda não transmitidas a nenhuma SEFAZ autorizadora, nem ao SCAN<br />Sem valor fiscal</b></font>', top=2.375*cm, left=11.4*cm, width=8*cm, height=1.625*cm) txt.padding_top = 0*cm txt.style = DADO_VARIAVEL lbl, lbl = self.inclui_campo(nome='remetente_var2', titulo=u'PROTOCOLO DE AUTORIZAÇÃO DE USO', conteudo=u'protNFe.protocolo_formatado', top=4*cm, left=11.4*cm, width=8*cm, margem_direita=True) lbl.style = DADO_VARIAVEL
def campo_variavel_normal(self): txt = self.inclui_texto_sem_borda(nome='remetente_var1', texto=u'Consulta de autenticidade no portal nacional da NF-e<br /><a href="http://www.nfe.fazenda.gov.br/portal"><u>www.nfe.fazenda.gov.br/portal</u></a><br /> ou no site da SEFAZ autorizadora', top=2.375*cm, left=11.4*cm, width=8*cm, height=1.625*cm) txt.padding_top = 0.2*cm txt.style = DADO_VARIAVEL lbl, lbl = self.inclui_campo(nome='remetente_var2', titulo=u'PROTOCOLO DE AUTORIZAÇÃO DE USO', conteudo=u'protNFe.protocolo_formatado', top=4*cm, left=11.4*cm, width=8*cm, margem_direita=True) lbl.style = DADO_VARIAVEL
def campo_variavel_denegacao(self): txt = self.inclui_texto_sem_borda(nome='remetente_var1', texto=u'A circulação da mercadoria foi <font color="red"><b>PROIBIDA</b></font> pela SEFAZ<br />autorizadora, devido a irregularidades fiscais.', top=2.375*cm, left=11.4*cm, width=8*cm, height=1.625*cm) txt.padding_top = 0.2*cm txt.style = DADO_VARIAVEL lbl, lbl = self.inclui_campo(nome='remetente_var2', titulo=u'PROTOCOLO DE DENEGAÇÃO DE USO', conteudo=u'protNFe.protocolo_formatado', top=4*cm, left=11.4*cm, width=8*cm, margem_direita=True) lbl.style = DADO_VARIAVEL