Spaces:
Sleeping
Sleeping
import gradio as gr | |
import pdfkit | |
# Функция для генерации 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-контент во временный файл | |
html_path = "/mnt/data/chat_dialog.html" | |
pdf_path = "/mnt/data/chat_dialog.pdf" | |
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) | |
return pdf_path | |
# Интерфейс Gradio | |
with gr.Blocks() as demo: | |
with gr.Row(): | |
chatbot = gr.Chatbot() | |
with gr.Column(): | |
user_input = gr.Textbox(label="Введите текст из чата") | |
generate_button = gr.Button("Сохранить в PDF") | |
pdf_link = gr.Textbox(label="Ссылка на PDF") | |
# Устанавливаем действие для кнопки | |
generate_button.click(generate_pdf, inputs=[user_input], outputs=[pdf_link]) | |
# Запуск приложения | |
demo.launch() | |