Python 3 中 PDF 文本提取到 Word 文档:'str' object has no attribute 'decode' 错误解决
非常抱歉给您带来困扰。根据错误消息,似乎在 Python 3 中使用decode方法来解码字符串是不正确的,因为字符串对象本身已经是Unicode编码。
为了解决这个问题,您可以尝试将文本转换为字节流,然后使用decode方法来解码为字符串。
以下是修改后的代码:
import PyPDF2
from docx import Document
def extract_text_from_pdf(file_path):
text = ""
with open(file_path, 'rb') as file:
pdf_reader = PyPDF2.PdfReader(file)
for page in pdf_reader.pages:
text += page.extract_text()
return text
def create_word_file(text, output_file_path):
doc = Document()
doc.add_paragraph(text.encode('latin-1').decode('utf-8', 'ignore')) # 修改这里
doc.save(output_file_path)
# 设置输入的PDF文件路径和输出的Word文件路径
pdf_file_path = "input.pdf"
word_file_path = "output.docx"
# 从PDF文件提取文本
extracted_text = extract_text_from_pdf(pdf_file_path)
# 创建Word文档并将提取的文本写入其中
create_word_file(extracted_text, word_file_path)
print("转换完成!")
在上述代码中,将 doc.add_paragraph(text.decode('utf-8', 'ignore')) 修改为 doc.add_paragraph(text.encode('latin-1').decode('utf-8', 'ignore'))。这将先将文本转换为字节流(使用latin-1编码),然后再使用decode方法来解码为字符串(使用utf-8编码)。
请尝试运行修改后的代码,看看是否可以成功将PDF中的文本转换成Word文档。如果还有其他问题,请随时提问。
原文地址: https://www.cveoy.top/t/topic/18A 著作权归作者所有。请勿转载和采集!