Spaces:
Sleeping
Sleeping
File size: 2,148 Bytes
55a515e 9e7436f 5d9624d cf73656 9e7436f 9dd1d3f 9e7436f 9dd1d3f 9e7436f 9dd1d3f 9e7436f 9dd1d3f cf73656 9dd1d3f abf1208 85623b9 4f69071 abf1208 478120c cf73656 9dd1d3f abf1208 9dd1d3f 2512841 9dd1d3f 478120c 9dd1d3f 9e7436f 9dd1d3f 9e7436f 9dd1d3f 9e7436f 9dd1d3f 9e7436f 9dd1d3f 9e7436f cf73656 |
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 58 59 60 61 62 63 64 |
import gradio as gr
from pdf2docx import Converter
from docx import Document
from fpdf import FPDF
import os
def pdf_para_word(arquivo_pdf):
nome_docx = arquivo_pdf.name.replace('.pdf', '.docx')
cv = Converter(arquivo_pdf.name)
cv.convert(nome_docx, multi_processing=True, start=0, end=None)
cv.close()
return nome_docx
def word_para_pdf(arquivo_docx):
nome_pdf = "output.pdf"
doc = Document(arquivo_docx)
pdf = FPDF(format='A4')
pdf.set_auto_page_break(auto=True, margin=15)
pdf.add_page()
pdf.add_font('Arial', '', 'Arial.ttf', uni=True)
pdf.set_font('Arial', size=12)
for para in doc.paragraphs:
texto = para.text.strip()
if not texto: # Ignorar linhas vazias
continue
# Quebrar o texto em várias linhas se necessário
palavras = texto.split()
linha = ''
for palavra in palavras:
if pdf.get_string_width(linha + palavra) < (pdf.w - 2 * pdf.l_margin):
linha += palavra + ' '
else:
pdf.cell(0, 10, linha, ln=True)
linha = palavra + ' '
if linha:
pdf.cell(0, 10, linha, ln=True)
pdf.output(nome_pdf)
return nome_pdf
with gr.Blocks() as app:
with gr.Row():
with gr.Column():
with gr.Accordion("PDF para Word"):
entrada_pdf = gr.File(label="Enviar PDF")
converter_pdf_para_word = gr.Button("Converter para Word")
saida_word = gr.File(label="Baixar arquivo Word", type="filepath")
converter_pdf_para_word.click(pdf_para_word, inputs=[entrada_pdf], outputs=[saida_word])
with gr.Column():
with gr.Accordion("Word para PDF"):
entrada_word = gr.File(label="Enviar Word")
converter_word_para_pdf = gr.Button("Converter para PDF")
saida_pdf = gr.File(label="Baixar arquivo PDF", type="filepath")
converter_word_para_pdf.click(word_para_pdf, inputs=[entrada_word], outputs=[saida_pdf])
app.launch()
|