File size: 1,816 Bytes
55a515e
5d9624d
55a515e
 
5d9624d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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()