Python Rest Api GroupDocs

21 Views Asked by At

I am trying to convert ppt file into pdf and then save it into a file. I am able to upload to the cloud of GroupDocs, Convert to PDF, but last step, download the file doesnt work. Some errors that gives me are my folder doesnt exist and I cant find PDF downloaded in any place.

def generate_and_save_pptx(self):
    # Ruta del PPTX a modificar
    pptx_template_path = 'panel/templates/originals/Prueba.pptx'
    presentation = Presentation(pptx_template_path)
    # modifico ppt
    self.modify_presentation(presentation)
    # Ruta PDF final
    pdf_filename = f'{self.client.name} - {self.type_submission.name}_tutorial.pdf'
    pptx_filename = f'{self.client.name} - {self.type_submission.name}_tutorial.pptx'
    pdf_path = submission_directory_path(self, pdf_filename)
    my_storage = "FilesToConvert"
    pdf_cloud_path = f'FilesToConvert/{pdf_filename}' # Usar / en lugar de \

    # Crear un archivo temporal para guardar el PPTX
    with tempfile.NamedTemporaryFile(delete=False, suffix=".pptx") as temp_pptx:
        temp_pptx_path = temp_pptx.name
        presentation.save(temp_pptx_path)

        try:
            # Crea una instancia de la api
            file_api = FileApi(Configuration(app_sid, app_key))

            # Subir el archivo
            upload_request = UploadFileRequest(pptx_filename, temp_pptx_path, my_storage)
            file_api.upload_file(upload_request)

        except ApiException as e:
            print(f"Error durante la carga del archivo PPTX: {e}")

    try:
        # Crear una instancia de la API
        convert_api = ConvertApi.from_keys(app_sid, app_key)

        # Configurar las opciones de conversión
        convert_settings = ConvertSettings()
        convert_settings.file_path = pptx_filename  # El nombre del archivo subido
        convert_settings.format = "pdf"
        convert_settings.output_path = my_storage

        # Crear la solicitud de conversión del documento
        convert_request = ConvertDocumentRequest(convert_settings)

        # Convertir el documento
        convert_api.convert_document(convert_request)

    except ApiException as e:
        print(f"Error durante la conversión a PDF: {e}")

    try:
        # Descargar el archivo convertido
        download_request = DownloadFileRequest(pdf_cloud_path, my_storage) # path y nombre de almacenamiento nube
        response = file_api.download_file(download_request)
        
        with default_storage.open(pdf_path, 'wb') as pdf_file:
                pdf_file.write(response)



    except ApiException as e:
        print(f"Error durante la descarga del archivo convertido: {e}")
   
0

There are 0 best solutions below