pdfitdown / app.py
as-cle-bert's picture
Update app.py
af49e40 verified
from pdfitdown.pdfconversion import Converter
import warnings
from typing import List
import gradio as gr
import os
class FileNotConvertedWarning(Warning):
"""The file was not in one of the specified formats for conversion to PDF,thus it was not converted"""
def to_pdf(files: List[str]) -> List[str]:
pdfs = []
converter = Converter()
for fl in files:
try:
outf = converter.convert(fl, fl.replace(os.path.splitext(fl)[1], ".pdf"))
except Exception as e:
warnings.warn(f"File {fl} not converted because of an error during the conversion: {e}", FileNotConvertedWarning)
else:
pdfs.append(outf)
return pdfs
def convert_files(files: List[str]) -> List[str]:
pdfs = to_pdf(files)
return pdfs
iface = gr.Interface(
fn=convert_files,
inputs=gr.File(label="Upload your file", file_count="multiple"),
outputs=gr.File(label="Converted PDF", file_count="multiple"),
title="File to PDF Converter",
description="Upload a file in .docx, .xlsx, .html, .pptx, .json, .csv, .xml, .md, .jpg/.jpeg, .png format, and get it converted to PDF."
)
iface.launch(share=True)