Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import pdfkit | |
| import os | |
| # Функция для генерации PDF из введенного текста | |
| def generate_pdf(text): | |
| # Создаем HTML-контент с текстом | |
| html_content = f""" | |
| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <title>Диалог из чата</title> | |
| <style> | |
| body {{ | |
| font-family: Arial, sans-serif; | |
| font-size: 14px; | |
| line-height: 1.5; | |
| }} | |
| </style> | |
| </head> | |
| <body> | |
| <h1>Диалог из чата</h1> | |
| <p>{text}</p> | |
| </body> | |
| </html> | |
| """ | |
| # Задаем пути к временным файлам | |
| html_path = "chat_dialog.html" | |
| pdf_path = "chat_dialog.pdf" | |
| try: | |
| # Сохраняем HTML-контент во временный файл | |
| with open(html_path, "w", encoding="utf-8") as html_file: | |
| html_file.write(html_content) | |
| # Конвертируем HTML в PDF | |
| pdfkit.from_file(html_path, pdf_path) | |
| # Возвращаем путь к PDF-файлу | |
| return pdf_path | |
| except Exception as e: | |
| return f"Произошла ошибка при создании PDF: {str(e)}" | |
| finally: | |
| # Удаляем временный HTML-файл, если он существует | |
| if os.path.exists(html_path): | |
| os.remove(html_path) | |
| # Функция для создания и запуска приложения Gradio | |
| def run_app(): | |
| # Интерфейс Gradio | |
| with gr.Blocks() as demo: | |
| with gr.Row(): | |
| chatbot = gr.Chatbot() | |
| with gr.Column(): | |
| user_input = gr.Textbox(label="Введите текст из чата", placeholder="Введите текст...") | |
| generate_button = gr.Button("Сохранить в PDF") | |
| pdf_link = gr.Textbox(label="Ссылка на PDF", interactive=False) | |
| # Устанавливаем действие для кнопки | |
| generate_button.click(generate_pdf, inputs=[user_input], outputs=[pdf_link]) | |
| # Запуск приложения | |
| demo.launch() | |
| # Запуск приложения через вызов функции | |
| if __name__ == "__main__": | |
| run_app() | |