|
|
@ -0,0 +1,53 @@ |
|
|
|
|
|
# coding=utf-8 |
|
|
|
|
|
''' |
|
|
|
|
|
Created on 01/07/2015 |
|
|
|
|
|
|
|
|
|
|
|
@author: danimar |
|
|
|
|
|
''' |
|
|
|
|
|
from pytrustnfe.xml.DynamicXml import DynamicXml |
|
|
|
|
|
from reportlab.platypus.tables import Table |
|
|
|
|
|
from reportlab.pdfgen.canvas import Canvas |
|
|
|
|
|
from reportlab.lib.pagesizes import A4 |
|
|
|
|
|
from reportlab.platypus.doctemplate import SimpleDocTemplate |
|
|
|
|
|
from reportlab.lib import colors |
|
|
|
|
|
|
|
|
|
|
|
inch = 28.34 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Danfe(object): |
|
|
|
|
|
|
|
|
|
|
|
objeto = None |
|
|
|
|
|
|
|
|
|
|
|
def __init__(self, objetoNFe): |
|
|
|
|
|
assert isinstance(objetoNFe, DynamicXml),\ |
|
|
|
|
|
'ObjetoNFe deve ser do tipo DynamicXml' |
|
|
|
|
|
self.objeto = objetoNFe |
|
|
|
|
|
|
|
|
|
|
|
def gerar(self): |
|
|
|
|
|
doc = SimpleDocTemplate( |
|
|
|
|
|
'/home/danimar/projetos/pdfs/danfe.pdf', |
|
|
|
|
|
pagesize=A4, leftMargin=0.5 * inch, rightMargin=0.5 * inch, |
|
|
|
|
|
topMargin=0.5 * inch, bottomMargin=0.5 * inch) |
|
|
|
|
|
|
|
|
|
|
|
elementos = [] |
|
|
|
|
|
|
|
|
|
|
|
data = [ |
|
|
|
|
|
['Recebemos de verdesaine industria e comércio os produtos constantes na nota fiscal abaixo ', '', |
|
|
|
|
|
'NF-e\nNº 000.000.001\nSérie 001'], |
|
|
|
|
|
['Data de recebimento', |
|
|
|
|
|
'Identificação e assinatura do recebedor', |
|
|
|
|
|
''] |
|
|
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
estilo = [('SPAN', (0, 0), (1, 0)), |
|
|
|
|
|
('SPAN', (2, 0), (2, 1)), |
|
|
|
|
|
('FONTSIZE', (0, 0), (1, 1), 8.0), |
|
|
|
|
|
('VALIGN', (0, 0), (1, 1), 'TOP'), |
|
|
|
|
|
('ALIGN', (2, 0), (2, 1), 'CENTER'), |
|
|
|
|
|
('GRID', (0, 0), (3, 1), 1, colors.black)] |
|
|
|
|
|
colunas = [4 * inch, 12 * inch, 4 * inch] |
|
|
|
|
|
table = Table(data, style=estilo, colWidths=colunas) |
|
|
|
|
|
|
|
|
|
|
|
elementos.append(table) |
|
|
|
|
|
|
|
|
|
|
|
doc.build(elementos) |