import gradio as gr from docx import Document from PyPDF2 import PdfFileReader, PdfFileWriter def converter_pdf_para_docx(caminho_pdf): """Converte um arquivo PDF para DOCX.""" leitor_pdf = PdfFileReader(caminho_pdf) escritor_docx = Document() for pagina in leitor_pdf.pages: texto_pagina = pagina.extractText() escritor_docx.add_paragraph(texto_pagina) return escritor_docx def converter_docx_para_pdf(caminho_docx): """Converte um arquivo DOCX para PDF.""" escritor_pdf = PdfFileWriter() leitor_docx = Document(caminho_docx) for paragrafo in leitor_docx.paragraphs: escritor_pdf.addPage(PdfPage().createBlankPage()) escritor_pdf.getPage(0).drawText(paragrafo.text) return escritor_pdf def salvar_arquivo(escritor, formato, nome_arquivo): """Salva o documento no formato especificado.""" if formato == "docx": escritor.save(f"{nome_arquivo}.docx") elif formato == "pdf": escritor.write(f"{nome_arquivo}.pdf") # Interface Gradio # Entrada caminho_arquivo = gr.File(label="Selecione o arquivo") # Opções de conversão opcoes_conversao = gr.Radio(choices=["PDF para Word", "Word para PDF"], label="Conversão") # Saída nome_arquivo = gr.Text(label="Nome do arquivo") # Botão para converter botao_converter = gr.Button(value="Converter") # Função para executar a conversão def converter(caminho, tipo_conversao, nome): if tipo_conversao == "PDF para Word": escritor = converter_pdf_para_docx(caminho) formato = "docx" else: escritor = converter_docx_para_pdf(caminho) formato = "pdf" salvar_arquivo(escritor, formato, nome) # Interface interface = gr.Interface(fn=converter, inputs=[caminho_arquivo, opcoes_conversao], outputs=[nome_arquivo], title="Conversor de PDF/Word", theme="default") # Exibir a interface interface.launch()