pdf reportes v2

parent 25608314
...@@ -136,7 +136,7 @@ ...@@ -136,7 +136,7 @@
</a> </a>
</li> </li>
<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> <i class="fa fa-file-pdf-o"></i>
<span>Export to PDF v2</span> <span>Export to PDF v2</span>
<span class="pull-right-container"> <span class="pull-right-container">
......
...@@ -7,16 +7,13 @@ import xml.etree.ElementTree as ET ...@@ -7,16 +7,13 @@ import xml.etree.ElementTree as ET
# Create your views here. # Create your views here.
from collections import OrderedDict from collections import OrderedDict
from django.core.paginator import Paginator from datetime import datetime
from django.http import HttpResponse, Http404, JsonResponse from django.http import HttpResponse, Http404, JsonResponse
from django.shortcuts import render, render_to_response from django.shortcuts import render
from fpdf import FPDF from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas
from django.views.decorators.csrf import csrf_exempt from django.views.decorators.csrf import csrf_exempt
from GeoInt_SIDT.tasks import add
from catalog.models import Purchase from catalog.models import Purchase
from GeoInt_SIDT.tasks import *
# ------------------------------------------------------------------------------- # -------------------------------------------------------------------------------
...@@ -37,13 +34,15 @@ def report_L2ASCL(request, report, purchase_id): ...@@ -37,13 +34,15 @@ def report_L2ASCL(request, report, purchase_id):
reporteDir = report.replace('_sclData', '') reporteDir = report.replace('_sclData', '')
path = USERS_PATH + request.user.email + '/' + purchase_id + '/' path = USERS_PATH + request.user.email + '/' + purchase_id + '/'
if os.path.isfile(path + reporteDir + '.pdf'): #PDFGenerator(request, path, reporteDir)
pass
else: #if os.path.isfile(path + reporteDir + '.pdf'):
# pass
#else:
########################################## ##########################################
# Generador de pdfs # # Generador de pdfs #
########################################## ##########################################
PDFGenerator(path, reporteDir) # PDFGenerator(request, path, reporteDir)
########################################## ##########################################
# Generador de pdfs # # Generador de pdfs #
########################################## ##########################################
...@@ -112,8 +111,14 @@ def report_L2ASCL(request, report, purchase_id): ...@@ -112,8 +111,14 @@ def report_L2ASCL(request, report, purchase_id):
item['backgroundColor'] = colors[int(l)] item['backgroundColor'] = colors[int(l)]
data['datasets'].append(item) data['datasets'].append(item)
data['datasets'].sort(key=lambda k: max(k['data'])) data['datasets'].sort(key=lambda k: max(k['data']))
PDFGenerator(request, path, reporteDir,data['datasets'])
graphData['data'] = data graphData['data'] = data
label = graphData['data']['labels'][0] label = graphData['data']['labels'][0]
defaultLabel = graphData['data']['labels'][0] defaultLabel = graphData['data']['labels'][0]
...@@ -330,68 +335,79 @@ def tileinfo(request): ...@@ -330,68 +335,79 @@ def tileinfo(request):
# ------------------------------------------------------------------------ # ------------------------------------------------------------------------
# def tareas(): def PDFGenerator(request,ruta, reporteDir, datasets):
# result = add.apply_async((2, 1), countdown=3) thumbs = ruta+'out/'+reporteDir+'/TCI/thumbnails/'
# result.get() SCL = ruta+'out/'+reporteDir+'/SCL/'
# return render_to_response('reports_table.html', {"result": result.get()})
#################################################################################
def PDFGenerator(path, reporteDir): # check https://developers.google.com/chart/image/docs/making_charts #
class PDF(FPDF): # check https://developers.google.com/chart/image/docs/chart_params#gcharts_cht #
# cht = type #
def header(self): # chd = data values #
# chl = labels #
#self.image('logo.jpg') #################################################################################
# Arial bold 15
self.set_font('Arial', 'B', 15) path, dirs, files = next(os.walk(thumbs))
# Move to the right w, h = letter
self.cell(80)
# Title
self.cell(30, 10, 'Title', 1, 0, 'C') c = canvas.Canvas(ruta+reporteDir + ".pdf", pagesize=letter,)
# Line break
self.ln(20) # Header #
c.drawImage(USERS_PATH + 'header.png', 170, h - 90, width=300, height=70)
def imagenes(self):
################################################################################# c.showPage()
# check https://developers.google.com/chart/image/docs/making_charts #
# check https://developers.google.com/chart/image/docs/chart_params#gcharts_cht # # aqui estan los datos de todas las lineas #
# cht = type # #for data2 in datasets:
# chd = data values # # solo de la linea verde #
# chl = labels # #print(data2['data'][0])
#################################################################################
url = "http://chart.apis.google.com/chart" \
"?cht=p3" \
"&chd=t:60,40" \ # body #
"&chs=500x200" \ for file in files:
"&chl=Hello|World" \
"&.png"
self.image(url) date = datetime.strptime(file[:8], '%Y%m%d').strftime('%d/%m/%Y')
# Arial bold 15
self.set_font('Arial', 'B', 15) c.drawString(280, h - 125, date)
# Move to the right
self.cell(80) c.drawString(160, h - 165, 'TCI')
# Title c.drawString(440, h - 165, 'SCL')
self.cell(30, 10, 'Title', 1, 0, 'C') c.drawImage(USERS_PATH + 'header.png', 170, h - 90, width=300, height=70)
# Line break
self.ln(20) # Thumb image #
# Page footer c.drawImage(thumbs + file, 70, h - 470, height=300, width=200,mask='auto')
def footer(self):
# Position at 1.5 cm from bottom # SCL image #
self.set_y(-15) path2, dirs2, files2 = next(os.walk(SCL))
# Arial italic 8 for file2 in files2:
self.set_font('Arial', 'I', 8) if file2.startswith(file[:8]):
# Page number if not file2.endswith('.tif'):
self.cell(0, 10, 'Page ' + str(self.page_no()) + '/{nb}', 0, 0, 'C') c.drawImage(SCL + file2, 350, h - 470, height=300, width=200,mask='auto')
# Instantiation of inherited class
pdf = PDF() # Chart #
pdf.alias_nb_pages() # los valores deben ir en chd para cada elemento #
pdf.add_page() grafica = "https://chart.googleapis.com/chart?" \
pdf.set_font('Times', '', 12) "&chs=900x150" \
for i in range(1, 5): "&cht=bvs" \
pdf.imagenes() "&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" \
pdf.output(path + reporteDir + '.pdf', 'F') "&chxt=y" \
\ No newline at end of file "&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