pdf reportes v2

parent 25608314
......@@ -136,7 +136,7 @@
</a>
</li>
<li>
<a class="treeview submenu" href="../../static/reports/tmpImages/repsat_test_dev/{{ request.user.email }}/{{ purchaseID }}/{{ zone }}.pdf" id="downloadPdf">
<a class="treeview submenu" href="../../static/reports/tmpImages/repsat_test_dev/{{ request.user.email }}/{{ purchaseID }}/{{ zone }}.pdf" id="downloadPdf" target="_blank">
<i class="fa fa-file-pdf-o"></i>
<span>Export to PDF v2</span>
<span class="pull-right-container">
......
......@@ -7,16 +7,13 @@ import xml.etree.ElementTree as ET
# Create your views here.
from collections import OrderedDict
from django.core.paginator import Paginator
from datetime import datetime
from django.http import HttpResponse, Http404, JsonResponse
from django.shortcuts import render, render_to_response
from fpdf import FPDF
from django.shortcuts import render
from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas
from django.views.decorators.csrf import csrf_exempt
from GeoInt_SIDT.tasks import add
from catalog.models import Purchase
from GeoInt_SIDT.tasks import *
# -------------------------------------------------------------------------------
......@@ -37,13 +34,15 @@ def report_L2ASCL(request, report, purchase_id):
reporteDir = report.replace('_sclData', '')
path = USERS_PATH + request.user.email + '/' + purchase_id + '/'
if os.path.isfile(path + reporteDir + '.pdf'):
pass
else:
#PDFGenerator(request, path, reporteDir)
#if os.path.isfile(path + reporteDir + '.pdf'):
# pass
#else:
##########################################
# Generador de pdfs #
##########################################
PDFGenerator(path, reporteDir)
# PDFGenerator(request, path, reporteDir)
##########################################
# Generador de pdfs #
##########################################
......@@ -112,8 +111,14 @@ def report_L2ASCL(request, report, purchase_id):
item['backgroundColor'] = colors[int(l)]
data['datasets'].append(item)
data['datasets'].sort(key=lambda k: max(k['data']))
PDFGenerator(request, path, reporteDir,data['datasets'])
graphData['data'] = data
label = graphData['data']['labels'][0]
defaultLabel = graphData['data']['labels'][0]
......@@ -330,28 +335,10 @@ def tileinfo(request):
# ------------------------------------------------------------------------
# def tareas():
# result = add.apply_async((2, 1), countdown=3)
# result.get()
# return render_to_response('reports_table.html', {"result": result.get()})
def PDFGenerator(request,ruta, reporteDir, datasets):
thumbs = ruta+'out/'+reporteDir+'/TCI/thumbnails/'
SCL = ruta+'out/'+reporteDir+'/SCL/'
def PDFGenerator(path, reporteDir):
class PDF(FPDF):
def header(self):
#self.image('logo.jpg')
# Arial bold 15
self.set_font('Arial', 'B', 15)
# Move to the right
self.cell(80)
# Title
self.cell(30, 10, 'Title', 1, 0, 'C')
# Line break
self.ln(20)
def imagenes(self):
#################################################################################
# check https://developers.google.com/chart/image/docs/making_charts #
# check https://developers.google.com/chart/image/docs/chart_params#gcharts_cht #
......@@ -360,38 +347,67 @@ def PDFGenerator(path, reporteDir):
# chl = labels #
#################################################################################
url = "http://chart.apis.google.com/chart" \
"?cht=p3" \
"&chd=t:60,40" \
"&chs=500x200" \
"&chl=Hello|World" \
"&.png"
self.image(url)
# Arial bold 15
self.set_font('Arial', 'B', 15)
# Move to the right
self.cell(80)
# Title
self.cell(30, 10, 'Title', 1, 0, 'C')
# Line break
self.ln(20)
# Page footer
def footer(self):
# Position at 1.5 cm from bottom
self.set_y(-15)
# Arial italic 8
self.set_font('Arial', 'I', 8)
# Page number
self.cell(0, 10, 'Page ' + str(self.page_no()) + '/{nb}', 0, 0, 'C')
# Instantiation of inherited class
pdf = PDF()
pdf.alias_nb_pages()
pdf.add_page()
pdf.set_font('Times', '', 12)
for i in range(1, 5):
pdf.imagenes()
pdf.output(path + reporteDir + '.pdf', 'F')
\ No newline at end of file
path, dirs, files = next(os.walk(thumbs))
w, h = letter
c = canvas.Canvas(ruta+reporteDir + ".pdf", pagesize=letter,)
# Header #
c.drawImage(USERS_PATH + 'header.png', 170, h - 90, width=300, height=70)
c.showPage()
# aqui estan los datos de todas las lineas #
#for data2 in datasets:
# solo de la linea verde #
#print(data2['data'][0])
# body #
for file in files:
date = datetime.strptime(file[:8], '%Y%m%d').strftime('%d/%m/%Y')
c.drawString(280, h - 125, date)
c.drawString(160, h - 165, 'TCI')
c.drawString(440, h - 165, 'SCL')
c.drawImage(USERS_PATH + 'header.png', 170, h - 90, width=300, height=70)
# Thumb image #
c.drawImage(thumbs + file, 70, h - 470, height=300, width=200,mask='auto')
# SCL image #
path2, dirs2, files2 = next(os.walk(SCL))
for file2 in files2:
if file2.startswith(file[:8]):
if not file2.endswith('.tif'):
c.drawImage(SCL + file2, 350, h - 470, height=300, width=200,mask='auto')
# Chart #
# los valores deben ir en chd para cada elemento #
grafica = "https://chart.googleapis.com/chart?" \
"&chs=900x150" \
"&cht=bvs" \
"&chd=t:0,0.0216,0,5.1408,29.8728,34.1892,57.0528,142.6788,506.6496,107.8344,0" \
"&chds=a" \
"&chco=ff8afa|659acc|99d4d9|696767|98775b|ababab|dddddd|d9f9ff|44ba5d|fff98b|383838" \
"&chxt=y" \
"&chm=N,000000,0,-1,11"
c.drawImage(grafica, 140, h - 650, width=900, height=150)
c.drawImage(USERS_PATH + 'values.png', 70, h - 680, width=500, height=25)
c.showPage()
c.save()
pass
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment