Spaces:
Runtime error
Runtime error
| 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() |