def imprimir_formato_sunat_valorizado_producto(self, producto):
desde = self.desde
hasta = self.hasta
almacen = self.almacen
buffer = self.buffer
self.valorizado = True
izquierda = ParagraphStyle('parrafos',
alignment=TA_LEFT,
fontSize=12,
fontName="Times-Roman")
doc = SimpleDocTemplate(buffer,
rightMargin=50,
leftMargin=50,
topMargin=100,
bottomMargin=50,
pagesize=self.pagesize)
elements = []
periodo = Paragraph("PERIODO: " + desde.strftime('%d/%m/%Y') + ' - ' + hasta.strftime('%d/%m/%Y'), izquierda)
elements.append(periodo)
elements.append(Spacer(1, 0.25 * cm))
ruc = Paragraph(u"RUC:" + EMPRESA.ruc, izquierda)
elements.append(ruc)
elements.append(Spacer(1, 0.25 * cm))
razon_social = Paragraph(u"APELLIDOS Y NOMBRES, DENOMINACIÓN O RAZÓN SOCIAL: " + EMPRESA.razon_social, izquierda)
elements.append(razon_social)
elements.append(Spacer(1, 0.25 * cm))
direccion = Paragraph(u"ESTABLECIMIENTO (1): " + EMPRESA.direccion(), izquierda)
elements.append(direccion)
elements.append(Spacer(1, 0.25 * cm))
codigo = Paragraph(u"CÓDIGO DE LA EXISTENCIA: " + producto.codigo, izquierda)
elements.append(codigo)
elements.append(Spacer(1, 0.25 * cm))
tipo = Paragraph(u"TIPO: B - EXISTENCIA", izquierda)
"""tipo = Paragraph(u"TIPO (TABLA 5): " + producto.tipo_existencia.codigo_sunat + " - " + producto.tipo_existencia.descripcion,
izquierda)"""
elements.append(tipo)
elements.append(Spacer(1, 0.25 * cm))
descripcion = Paragraph(u"DESCRIPCIÓN: " + producto.descripcion, izquierda)
elements.append(descripcion)
elements.append(Spacer(1, 0.25 * cm))
unidad = Paragraph(u"CÓDIGO DE LA UNIDAD DE MEDIDA (TABLA 6): " + producto.unidad_medida.codigo_sunat + " - " + producto.unidad_medida.descripcion,
izquierda)
elements.append(unidad)
elements.append(Spacer(1, 0.25 * cm))
unidad = Paragraph(u"MÉTODO DE VALUACIÓN: PEPS",
izquierda)
elements.append(unidad)
elements.append(Spacer(1, 0.5 * cm))
elements.append(self.tabla_detalle_valorizado(producto, desde, hasta, almacen))
doc.build(elements, onFirstPage=self._header, onLaterPages=self._header)
pdf = buffer.getvalue()
buffer.close()
return pdf
python类SimpleDocTemplate()的实例源码
def imprimir_formato_sunat_valorizado_todos(self):
desde = self.desde
hasta = self.hasta
almacen = self.almacen
buffer = self.buffer
self.valorizado = True
izquierda = ParagraphStyle('parrafos',
alignment=TA_LEFT,
fontSize=12,
fontName="Times-Roman")
doc = SimpleDocTemplate(buffer,
rightMargin=50,
leftMargin=50,
topMargin=100,
bottomMargin=50,
pagesize=self.pagesize)
elements = []
productos_kardex = Kardex.objects.exclude(cantidad_ingreso=0,
cantidad_salida=0).order_by().values('producto').distinct()
productos = Producto.objects.filter(pk__in=productos_kardex).order_by('descripcion')
for producto in productos:
periodo = Paragraph("PERIODO: " + desde.strftime('%d/%m/%Y') + ' - ' + hasta.strftime('%d/%m/%Y'), izquierda)
elements.append(periodo)
elements.append(Spacer(1, 0.25 * cm))
ruc = Paragraph(u"RUC:" + EMPRESA.ruc, izquierda)
elements.append(ruc)
elements.append(Spacer(1, 0.25 * cm))
razon_social = Paragraph(u"APELLIDOS Y NOMBRES, DENOMINACIÓN O RAZÓN SOCIAL: " + EMPRESA.razon_social, izquierda)
elements.append(razon_social)
elements.append(Spacer(1, 0.25 * cm))
direccion = Paragraph(u"ESTABLECIMIENTO (1): " + EMPRESA.direccion(), izquierda)
elements.append(direccion)
elements.append(Spacer(1, 0.25 * cm))
codigo = Paragraph(u"CÓDIGO DE LA EXISTENCIA: " + producto.codigo, izquierda)
elements.append(codigo)
elements.append(Spacer(1, 0.25 * cm))
tipo = Paragraph(u"TIPO: B - EXISTENCIA",izquierda)
"""tipo = Paragraph(u"TIPO (TABLA 5): " + producto.tipo_existencia.codigo_sunat + " - " + producto.tipo_existencia.descripcion,
izquierda)"""
elements.append(tipo)
elements.append(Spacer(1, 0.25 * cm))
descripcion = Paragraph(u"DESCRIPCIÓN: " + producto.descripcion, izquierda)
elements.append(descripcion)
elements.append(Spacer(1, 0.25 * cm))
unidad = Paragraph(u"CÓDIGO DE LA UNIDAD DE MEDIDA (TABLA 6): " + producto.unidad_medida.codigo_sunat + " - " + producto.unidad_medida.descripcion,
izquierda)
elements.append(unidad)
elements.append(Spacer(1, 0.25 * cm))
unidad = Paragraph(u"MÉTODO DE VALUACIÓN: PEPS",
izquierda)
elements.append(unidad)
elements.append(Spacer(1, 0.5 * cm))
elements.append(self.tabla_detalle_valorizado(producto, desde, hasta, almacen))
elements.append(PageBreak())
doc.build(elements, onFirstPage=self._header, onLaterPages=self._header)
pdf = buffer.getvalue()
buffer.close()
return pdf
def call_report(request):
event_assignment = get_object_or_404(EventAssignment,
pk=request.session['assignment_id'])
event = event_assignment.event
user = request.user
contact_history = Contact.objects.filter(
event=event, author=user
).order_by('-date_of_contact')
response = HttpResponse(content_type='application/pdf')
response['Content-Disposition'] = 'inline; filename="call_report.pdf"'
buffr = BytesIO()
styles = getSampleStyleSheet()
cell_style = styles['BodyText']
cell_style.alignment = TA_LEFT
report_details = []
title = Paragraph('Call Note Report', styles['title'])
report_details.append(title)
conf_details_text = event.number + ': ' + event.title + ' (' \
+ user.username+ ')'
report_details.append(Paragraph(conf_details_text, styles['h2']))
report = SimpleDocTemplate(buffr, pagesize=letter,
leftMargin=inch/2, rightMargin = inch/2)
data = []
for contact in contact_history:
person = contact.person.name
if contact.person.title:
person = person + '<br/>' + contact.person.title
if contact.person.company:
person = person + '<br/>' + contact.person.company
date = Paragraph(str(contact.date_of_contact.date()), cell_style)
person = Paragraph(person, cell_style)
notes = Paragraph(contact.notes[:3500], cell_style)
data.append([date, person, notes])
table = Table(data, [inch, 3 * inch, 4.5 * inch])
table.setStyle(TableStyle([('VALIGN', (0,0), (-1, -1), 'TOP')]))
report_details.append(table)
data = []
# if len(data) > 0:
# call_detail_table = Table(data, [inch, 2 * inch, 4.5 * inch])
# call_detail_table.setStyle(TableStyle([('VALIGN', (0,0),
# (-1, -1), 'TOP')]))
# report_details.append(call_detail_table)
report.build(report_details)
pdf = buffr.getvalue()
buffr.close()
response.write(pdf)
return response
def __init__(self,mypagesize=(21*cm,25*cm),passwd='',path="/tmp/report.pdf",auto_open=True):
self.path=path
self.auto_open=auto_open
self.name="TEST"
self.year="TEST"
self.class_="TEST"
self.roll_no="TEST"
self.admission_no="TEST"
self.school="test"
styleSheet = getSampleStyleSheet()
self.mypagesize=mypagesize
self.elements = []
enc=pdfencrypt.StandardEncryption(passwd,canPrint=0)
self.doc = SimpleDocTemplate(self.path, pagesize=mypagesize,title="Performance Report",topMargin=.4*inch,bottomMargin=.3*inch,author="Asif Kodur",encrypt=enc)
self.DB=db_operations()
self.Set_Content()
# Starts measurement
self.cW1=(mypagesize[0]/cm)/5.25
self.cW=(mypagesize[0]/cm)/11.6
self.rH1=(mypagesize[1]/cm)/14
self.rH2=(mypagesize[1]/cm)/19
self.rH=(mypagesize[1]/cm)/25
#end of measurement
def generatePdf(transductor_id):
import time
from reportlab.lib.enums import TA_JUSTIFY
from reportlab.lib.pagesizes import letter
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Image
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import inch
doc = SimpleDocTemplate("src/report/static/Relatorio"+transductor_id+".pdf",
pagesize=letter,
rightMargin=72, leftMargin=72,
topMargin=72, bottomMargin=18)
Story = []
logo = "src/report/static/currentGraphic"+transductor_id+".png"
logo2 = "src/report/static/voltageGraphic"+transductor_id+".png"
logo3 = "src/report/static/activePowerGraphic"+transductor_id+".png"
logo4 = "src/report/static/reactivePowerGraphic"+transductor_id+".png"
logo5 = "src/report/static/apparentPowerGraphic"+transductor_id+".png"
magName = "Pythonista"
issueNum = 12
subPrice = "99.00"
limitedDate = "03/05/2010"
freeGift = "tin foil hat"
formatted_time = time.ctime()
full_name = "SME-UnB"
address_parts = ["Campus Universitario UnB", "Brasilia-DF, 70910-900"]
im = Image(logo, 8 * inch, 5 * inch)
im2 = Image(logo2, 8 * inch, 5 * inch)
im3 = Image(logo3, 8 * inch, 5 * inch)
im4 = Image(logo4, 8 * inch, 5 * inch)
im5 = Image(logo5, 8 * inch, 5 * inch)
Story.append(im)
Story.append(im2)
Story.append(im3)
Story.append(im4)
Story.append(im5)
styles = getSampleStyleSheet()
styles.add(ParagraphStyle(name='Justify', alignment=TA_JUSTIFY))
ptext = '<font size=12>%s</font>' % formatted_time
Story.append(Paragraph(ptext, styles["Normal"]))
Story.append(Spacer(1, 12))
ptext = '<font size=12>%s</font>' % full_name
Story.append(Paragraph(ptext, styles["Normal"]))
for part in address_parts:
ptext = '<font size=12>%s</font>' % part.strip()
Story.append(Paragraph(ptext, styles["Normal"]))
Story.append(Spacer(1, 12))
Story.append(Spacer(1, 12))
ptext = '<font size=12>{ % trans Report Energy Monitoring % }</font>'
Story.append(Paragraph(ptext, styles["Normal"]))
doc.build(Story)
return 1
def test_21_barCharts(self):
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.lib import colors
from reportlab.platypus import SimpleDocTemplate, Spacer, Paragraph
from reportlab.pdfbase import pdfmetrics
from reportlab.graphics.shapes import Drawing
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.graphics.charts.barcharts import VerticalBarChart
pdfmetrics.registerFont(TTFont('chsFont', 'STHeiti Light.ttc'))
stylesheet = getSampleStyleSheet()
elements = []
doc = SimpleDocTemplate("demo.pdf")
elements.append(Paragraph('<font name="chsFont">JY.zenist.song - ??</font>', stylesheet['Title']))
elements.append(Spacer(1,12))
d = Drawing(400,200)
data = [
(13,5,20,22,37,45,19,4),
(14,6,21,23,38,46,20,5)
]
bc = VerticalBarChart()
bc.x = 50
bc.y = 50
bc.height = 125
bc.width = 300
bc.data = data
bc.strokeColor = colors.black
bc.groupSpacing = 10
bc.barSpacing = 2.5
bc.valueAxis._valueMin = 0
bc.valueAxis._valueMax = 50
bc.valueAxis._valueStep = 10
bc.categoryAxis.categoryNames = ['1','2','3','4','5','6','7','8']
# bc.categoryAxis.style = 'stacked'
d.add(bc)
elements.append(d)
doc.build(elements)