Pdf2docx: 转换后docx文件的问题

创建于 2021-05-13  ·  7评论  ·  资料来源: dothinking/pdf2docx

社区您好,我是编程新手。 所以,在此先感谢,我在 pycharm 中运行该程序,Convert 开始并且似乎工作没有问题(解析页面...-> 创建页面...等)然后,当我转到我的文件所在的目录时保存,检查,如果转换有效,我看到了附件图片中显示的内容(docx 文件显示为图片,如片段,而不是文本),我想知道,如果你知道为什么会发生这种情况,如果你知道如何解决它。
problem

good first issue question

最有用的评论

好的,我会记住这一点,感谢您的快速回复。 我不知道你是否已经完成了用户界面,但我已经为你的程序完成了一个基本友好的用户界面,这里是代码。

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

所有7条评论

你好欢迎。 从截图来看,我猜你看到的“文本”不是真正的文本。 你能复制和粘贴文本吗? 如果您可以上传pdf(您失败的一页就足够了)用于我的测试,那就太好了。

one_page.pdf

我要转换的pdf。


one_page.docx

转换后的 docx。

我希望这有帮助

抱歉, pdf2docx一个限制是它只能处理基于文本的 pdf。 您的pdf页面由多张图像组成,这些图像不会被ocr-ed,而是直接复制到docx。 下面的屏幕截图显示了 pdf 格式的图像。

image

好的,我会记住这一点,感谢您的快速回复。 我不知道你是否已经完成了用户界面,但我已经为你的程序完成了一个基本友好的用户界面,这里是代码。

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

非常感激。 这是个好主意 -> 我会将 GUI 放入待办事项。

您是否想进行更多改进,例如以批处理模式在用户定义的文件夹下转换多 pdf 文件。 之后,请提交PR,以便我可以将您的工作合并到该库中,以使更多人受益。

批处理模式你的意思是,保存为批处理文件并运行它? 我可以在 Windows exe 中完成。 你喜欢哪个?

使用您的用户界面,一次可以转换一个文件。 但是可能需要转换大量的pdf文件,在这种情况下,将所有pdf文件放在一个文件夹中,选择该文件夹并一次转换它们会更方便。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

echan00 picture echan00  ·  9评论

startxc picture startxc  ·  4评论

harrylyf picture harrylyf  ·  5评论

Jalkhov picture Jalkhov  ·  5评论

dwt picture dwt  ·  3评论