tools / app.py
not-lain's picture
support mcp
8643c37
raw
history blame
1.42 kB
import gradio as gr
from PIL import Image
import os
from typing import List
from pdfitdown.pdfconversion import Converter
from pdf2image import convert_from_path
converter = Converter(reader="docling")
def convert_readme_to_pdf(markdown_file) -> str:
output_path = markdown_file.name.replace('.md', '.pdf')
converter.convert(markdown_file.name, output_path)
return output_path
def convert_image_to_pdf(image_file) -> str:
output_path = image_file.name.replace(os.path.splitext(image_file.name)[1], '.pdf')
converter.convert(image_file.name, output_path)
return output_path
# Create individual interfaces
readme_to_pdf = gr.Interface(
fn=convert_readme_to_pdf,
inputs=gr.File(label="Upload README/Markdown file", file_types=[".md"]),
outputs=gr.File(label="Converted PDF"),
title="README to PDF Converter",
description="Convert your markdown files to PDF format"
)
image_to_pdf = gr.Interface(
fn=convert_image_to_pdf,
inputs=gr.File(label="Upload Image", file_types=["image"]),
outputs=gr.File(label="Converted PDF"),
title="Image to PDF Converter",
description="Convert your images to PDF format"
)
# Create tabbed interface
demo = gr.TabbedInterface(
[readme_to_pdf, image_to_pdf],
["README to PDF", "Image to PDF"],
)
if __name__ == "__main__":
demo.launch(server_name="0.0.0.0", server_port=7860, debug=True, mcp_server=True)