diff --git a/servers/fastapi/api/routers/presentation/handlers/export_as_pdf.py b/servers/fastapi/api/routers/presentation/handlers/export_as_pdf.py index 0f3b57c6..b3a3f16f 100644 --- a/servers/fastapi/api/routers/presentation/handlers/export_as_pdf.py +++ b/servers/fastapi/api/routers/presentation/handlers/export_as_pdf.py @@ -9,8 +9,10 @@ from api.routers.presentation.models import ( ExportAsRequest, PresentationAndPath, ) +from api.services.database import get_sql_session from api.services.instances import temp_file_service from api.services.logging import LoggingService +from api.sql_models import PresentationSqlModel from api.utils import get_presentation_dir from image_processor.image_from_pptx import get_pdf_from_pptx from ppt_generator.pptx_presentation_creator import PptxPresentationCreator @@ -37,12 +39,22 @@ class ExportAsPDFHandler(FetchPresentationAssetsMixin): await self.fetch_presentation_assets() - ppt_path = os.path.join(self.presentation_dir, "presentation.pptx") + with get_sql_session() as sql_session: + presentation = sql_session.get( + PresentationSqlModel, self.data.presentation_id + ) + + ppt_path = os.path.join( + self.presentation_dir, + f"{presentation.title.replace('/', '_').replace(' ', '_')}.pptx", + ) ppt_creator = PptxPresentationCreator(self.data.pptx_model, self.temp_dir) ppt_creator.create_ppt() ppt_creator.save(ppt_path) + print(ppt_path) + pdf_path = get_pdf_from_pptx(ppt_path, self.presentation_dir) response = PresentationAndPath( diff --git a/servers/fastapi/api/routers/presentation/handlers/export_as_pptx.py b/servers/fastapi/api/routers/presentation/handlers/export_as_pptx.py index 00a4836b..42c1ed87 100644 --- a/servers/fastapi/api/routers/presentation/handlers/export_as_pptx.py +++ b/servers/fastapi/api/routers/presentation/handlers/export_as_pptx.py @@ -37,7 +37,15 @@ class ExportAsPptxHandler(FetchPresentationAssetsMixin): await self.fetch_presentation_assets() - ppt_path = os.path.join(self.presentation_dir, "presentation.pptx") + with get_sql_session() as sql_session: + presentation = sql_session.get( + PresentationSqlModel, self.data.presentation_id + ) + + ppt_path = os.path.join( + self.presentation_dir, + f"{presentation.title.replace('/', '_').replace(' ', '_')}.pptx", + ) ppt_creator = PptxPresentationCreator(self.data.pptx_model, self.temp_dir) ppt_creator.create_ppt() ppt_creator.save(ppt_path) diff --git a/servers/fastapi/image_processor/image_from_pptx.py b/servers/fastapi/image_processor/image_from_pptx.py index 5c2fbddc..0ff825de 100644 --- a/servers/fastapi/image_processor/image_from_pptx.py +++ b/servers/fastapi/image_processor/image_from_pptx.py @@ -8,6 +8,7 @@ from image_processor.utils import get_page_images_from_pdf def get_pdf_from_pptx(pptx_path: str, temp_dir: str) -> str: base_name = os.path.splitext(os.path.basename(pptx_path))[0] + print(base_name) subprocess.run( f"{os.getenv('LIBREOFFICE')} --headless --invisible --convert-to pdf {pptx_path} --outdir {temp_dir}", @@ -17,6 +18,7 @@ def get_pdf_from_pptx(pptx_path: str, temp_dir: str) -> str: pdf_filename = f"{base_name}.pdf" pdf_path = os.path.join(temp_dir, pdf_filename) + print(pdf_path) return pdf_path