Actualizar pdf/views.py
This commit is contained in:
27
pdf/views.py
27
pdf/views.py
@@ -208,27 +208,26 @@ def export_resource_pdf(request, resourceid, printubic, satmap, printimgs, print
|
|||||||
nombre_pdf = f'Inmaterial_{resourceid}'
|
nombre_pdf = f'Inmaterial_{resourceid}'
|
||||||
|
|
||||||
gen_pdf_file = HTML(string=html_string, base_url=request.build_absolute_uri("/")).write_pdf()
|
gen_pdf_file = HTML(string=html_string, base_url=request.build_absolute_uri("/")).write_pdf()
|
||||||
|
|
||||||
merger = PdfWriter()
|
merger = PdfWriter()
|
||||||
merger.append(PdfReader(io.BytesIO(gen_pdf_file)))
|
merger.append(PdfReader(io.BytesIO(gen_pdf_file)))
|
||||||
|
|
||||||
|
root_path = Path(__file__).resolve().parent.parent
|
||||||
|
|
||||||
if ruta_medios is not None and bool(int(printpdfs)) :
|
if ruta_medios is not None and bool(int(printpdfs)) :
|
||||||
for medio in reduce(getitem, ruta_medios[:-1], resource_data)[ruta_medios[-1]] :
|
for medio in reduce(getitem, ruta_medios[:-1], resource_data)[ruta_medios[-1]] :
|
||||||
if medio['formato'] == 'application/pdf' :
|
if medio['formato'] == 'application/pdf' :
|
||||||
try :
|
medio_file = f'{root_path}/uploadedfiles/{medio["file"]}'
|
||||||
response = requests.get(f'{sprpcb_url}{medio["url"]}', timeout=10)
|
with open(medio_file,'rb') as pdf_file :
|
||||||
response.raise_for_status()
|
merger.append(pdf_file)
|
||||||
remote_pdf_stream = io.BytesIO(response.content)
|
output_buffer = io.BytesIO()
|
||||||
merger.append(remote_pdf_stream)
|
merger.write(output_buffer)
|
||||||
remote_pdf_stream.close()
|
merger.close()
|
||||||
except requests.RequestException as e:
|
else:
|
||||||
return HttpResponse(f"Error al incluir el archivo PDF: {e}", status=502)
|
output_buffer = io.BytesIO()
|
||||||
|
merger.write(output_buffer)
|
||||||
output_buffer = io.BytesIO()
|
merger.close()
|
||||||
merger.write(output_buffer)
|
|
||||||
output_buffer.seek(0)
|
output_buffer.seek(0)
|
||||||
merger.close()
|
|
||||||
|
|
||||||
response = HttpResponse(output_buffer.read(), content_type='application/pdf')
|
response = HttpResponse(output_buffer.read(), content_type='application/pdf')
|
||||||
response['Content-Disposition'] = f'attachment; filename="{nombre_pdf}.pdf"'
|
response['Content-Disposition'] = f'attachment; filename="{nombre_pdf}.pdf"'
|
||||||
return response
|
return response
|
||||||
Reference in New Issue
Block a user