Spaces:
Sleeping
Sleeping
File size: 2,317 Bytes
ef60743 8d15bc3 14c1150 8d15bc3 7cdf99a 8d15bc3 7cdf99a 8d15bc3 7cdf99a 8d15bc3 7cdf99a 8d15bc3 14c1150 7cdf99a 14c1150 8d15bc3 14c1150 7cdf99a 14c1150 7cdf99a ba9eb0c 14c1150 ba9eb0c 14c1150 ba9eb0c 14c1150 ba9eb0c 14c1150 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
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()
|