Pdf2docx: Problema com o arquivo docx após a conversão

Criado em 13 mai. 2021  ·  7Comentários  ·  Fonte: dothinking/pdf2docx

Olá para a comunidade, sou novo na programação. Então, obrigado antecipadamente, eu executo o programa em pycharm, o Convert inicia e parece funcionar sem problemas (Parsing Page ... -> Criando Página ... etc.) então, quando vou para o diretório que estava meu arquivo salvei, para verificar se a conversão funcionou, vejo o que é mostrado no anexo da imagem (o arquivo docx é mostrado como fotos, como peças, não como texto) e fiquei imaginando, se você tem alguma ideia do por que isso está acontecendo e se você tem alguma ideia de como consertá-lo.
problem

good first issue question

Comentários muito úteis

ok, terei isso em mente, obrigado pela sua resposta rápida. Não sei se você já fez a interface de usuário, mas fiz uma interface de usuário amigável básica para o seu programa e aqui está o código deste.

from pdf2docx import Converter
from tkinter import *
from tkinter.filedialog import *
from tkinter import filedialog

root = Tk()
root.title('PDF_2_Docx Converter')
root.geometry('500x500')
root.config(bg='grey')


def pdf_file_location():
    Tk().withdraw()
    filename = askopenfilename()
    file_path_pdf_entry.insert(0, filename)


def docx_folder_location():
    Tk().withdraw()
    folder_selected = filedialog.askdirectory() + "/" + 'New_DOCX.docx'
    file_path_docx_entry.insert(0, folder_selected)


def convert_button_function():
    cv = Converter(file_path_pdf_entry.get())
    cv.convert(file_path_docx_entry.get(), start=0, end=None)
    cv.close()


"""Labels"""
label1 = Label(text='PDF to Docx', font='Impact 40', bg='white', fg='#1E90FF')
label1.grid(column=2, row=1, sticky='n', pady=50, padx=120)


"""Entries"""

# PDF file entry
file_path_pdf_entry = Entry(border=5)
file_path_pdf_entry.grid(ipadx=90, ipady=4, padx=20, sticky='nw', column=2, pady=1, row=2)

# Docx file entry
file_path_docx_entry = Entry(border=5)
file_path_docx_entry.grid(column=2, ipady=4, ipadx=90, padx=20, sticky='nw', pady=70, row=3)

"""Buttons"""

# Convert Button
converter_button = Button(text='Convert', bg='#1E90FF', fg='white', font='impact 20', border=5,
                          command=convert_button_function)
converter_button.grid(padx=175, sticky='s', ipady=5, ipadx=10, column=2, row=4)

select_pdf_file = Button(text='Select PDF file', fg='black', bg='white', border=3,
                         command=pdf_file_location)
select_pdf_file.grid(column=2, sticky='ne', row=2, pady=6, padx=60)

select_new_file_folder = Button(text='Select new file folder', fg='black', bg='white', border=3,
                                command=docx_folder_location)
select_new_file_folder.grid(column=2, sticky='ne', row=3, pady=74, padx=26)


root.mainloop()

Todos 7 comentários

Oi bem vindo. Pela captura de tela, acho que o "texto" que você viu não é um texto real. Você pode copiar e colar o texto? Seria ótimo se você pudesse fazer o upload do pdf (uma página em que você falhou é o suficiente) para o meu teste.

one_page.pdf

O pdf que desejo converter.


one_page.docx

O docx convertido.

Eu espero que isso ajude

Uma limitação de pdf2docx é que ele pode processar somente PDFs baseados em texto. Sua página de pdf consiste em vários pedaços de imagens, que não seriam ocr-editados, mas copiados para docx diretamente. A imagem abaixo mostra as imagens em pdf.

image

ok, terei isso em mente, obrigado pela sua resposta rápida. Não sei se você já fez a interface de usuário, mas fiz uma interface de usuário amigável básica para o seu programa e aqui está o código deste.

from pdf2docx import Converter
from tkinter import *
from tkinter.filedialog import *
from tkinter import filedialog

root = Tk()
root.title('PDF_2_Docx Converter')
root.geometry('500x500')
root.config(bg='grey')


def pdf_file_location():
    Tk().withdraw()
    filename = askopenfilename()
    file_path_pdf_entry.insert(0, filename)


def docx_folder_location():
    Tk().withdraw()
    folder_selected = filedialog.askdirectory() + "/" + 'New_DOCX.docx'
    file_path_docx_entry.insert(0, folder_selected)


def convert_button_function():
    cv = Converter(file_path_pdf_entry.get())
    cv.convert(file_path_docx_entry.get(), start=0, end=None)
    cv.close()


"""Labels"""
label1 = Label(text='PDF to Docx', font='Impact 40', bg='white', fg='#1E90FF')
label1.grid(column=2, row=1, sticky='n', pady=50, padx=120)


"""Entries"""

# PDF file entry
file_path_pdf_entry = Entry(border=5)
file_path_pdf_entry.grid(ipadx=90, ipady=4, padx=20, sticky='nw', column=2, pady=1, row=2)

# Docx file entry
file_path_docx_entry = Entry(border=5)
file_path_docx_entry.grid(column=2, ipady=4, ipadx=90, padx=20, sticky='nw', pady=70, row=3)

"""Buttons"""

# Convert Button
converter_button = Button(text='Convert', bg='#1E90FF', fg='white', font='impact 20', border=5,
                          command=convert_button_function)
converter_button.grid(padx=175, sticky='s', ipady=5, ipadx=10, column=2, row=4)

select_pdf_file = Button(text='Select PDF file', fg='black', bg='white', border=3,
                         command=pdf_file_location)
select_pdf_file.grid(column=2, sticky='ne', row=2, pady=6, padx=60)

select_new_file_folder = Button(text='Select new file folder', fg='black', bg='white', border=3,
                                command=docx_folder_location)
select_new_file_folder.grid(column=2, sticky='ne', row=3, pady=74, padx=26)


root.mainloop()

Muito apreciado. É uma boa ideia -> Vou colocar a GUI no backlog.

Você gostaria de fazer um pouco mais de melhoria, por exemplo, converter arquivos PDF múltiplos em uma pasta definida pelo usuário em um modo de lote. Depois disso, envie um PR, para que eu possa mesclar seu trabalho a esta biblioteca para beneficiar mais pessoas.

modo de lote, quer dizer, para salvar como arquivo de lote e executá-lo? Eu posso fazer isso windows exe. o que você prefere?

Com sua interface de usuário, pode-se converter um arquivo por vez. Mas pode ser necessário converter muitos arquivos PDF, nesse caso, é mais conveniente colocar todos os arquivos PDF em uma pasta, selecionar essa pasta e convertê-los todos de uma vez.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

startxc picture startxc  ·  4Comentários

echan00 picture echan00  ·  9Comentários

harrylyf picture harrylyf  ·  5Comentários

Jalkhov picture Jalkhov  ·  5Comentários

chuma picture chuma  ·  3Comentários