Pdf2docx: Problema con el archivo docx después de la conversión

Creado en 13 may. 2021  ·  7Comentarios  ·  Fuente: dothinking/pdf2docx

Hola a la comunidad, soy nuevo en la programación. Entonces, gracias de antemano, ejecuto el programa en pycharm, el Convert se inicia y parece funcionar sin problemas (Página de análisis ... -> Creando página ... etc.) luego, cuando voy al directorio en el que estaba mi archivo guardado, para verificar, si la conversión funcionó, veo lo que se muestra en la imagen adjunta (el archivo docx se muestra como imágenes, como piezas, no como texto) y me pregunto, si tiene alguna idea de por qué sucede esto y si tiene alguna idea de cómo solucionarlo.
problem

good first issue question

Comentario más útil

ok, lo tendré en cuenta, gracias por su rápida respuesta. No sé si ya ha hecho la interfaz de usuario, pero he hecho una interfaz de usuario básica y amigable para su programa y aquí está el código de esto.

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 comentarios

Hola bienvenido. De la captura de pantalla, supongo que el "texto" que vio no es texto real. ¿Puedes copiar y pegar el texto? Sería genial si pudieras cargar el pdf (una página en la que fallaste es suficiente) para mi prueba.

one_page.pdf

El pdf que quiero convertir.


one_page.docx

El docx.

espero que esto ayude

Lo sentimos, una limitación de pdf2docx es que solo puede procesar archivos PDF basados ​​en texto. Su página pdf consta de múltiples piezas de imágenes, que no serían ocr-ed, sino copiadas a docx directamente. La siguiente captura de pantalla muestra las imágenes en pdf.

image

ok, lo tendré en cuenta, gracias por su rápida respuesta. No sé si ya ha hecho la interfaz de usuario, pero he hecho una interfaz de usuario básica y amigable para su programa y aquí está el código de esto.

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()

Muy apreciado. Es una buena idea -> Pondré GUI en el backlog.

¿Le gustaría hacer un poco más de mejora, por ejemplo, convertir archivos multi-pdf en una carpeta definida por el usuario en un modo por lotes? Después de eso, envíe un PR, para que pueda fusionar su trabajo con esta biblioteca para beneficiar a más personas.

modo por lotes quiere decir, para guardar como archivo por lotes y ejecutarlo? Puedo hacerlo Windows exe. ¿Qué prefieres?

Con su interfaz de usuario, uno puede convertir un archivo por vez. Pero es posible que necesite convertir muchos archivos pdf, en tal caso, es más conveniente poner todos los archivos pdf en una carpeta, seleccionar esa carpeta y convertirlos todos de una vez.

¿Fue útil esta página
0 / 5 - 0 calificaciones