我曾经使用着名的Python文件包,如PDFminer,PyMuPDF,PyPDF2等。但是它们都不能正确地从用从右到左语言(波斯语,阿拉伯语)编写的PDF文件中提取文本。
例如:
import fitz
doc = fitz.open("*/path/to/file.pdf")
txt = doc.getPageText(0)
print(txt)
它返回这样的东西:
...
给我发电子邮件和电脑
我爱你
...
有时候这些单词被反转(第一个字符在最后一个)并且单词在一个句子中交换,有时单词被正确写入。但它不知道如何处理波斯语中常用的零宽度非连接器(نیمفاصله)。
我尝试了很多,但什么都没有。提前感谢您的帮助。
我有这个问题,我写了下面的代码:
import sys
from builtins import print
import fitz, enchant
input_file = "p.pdf"
line_list = []
doc = fitz.Document(input_file)
page_count = doc.pageCount
for i in range(page_count):
load_page = doc.loadPage(i)
page = load_page.getText() # read a page
page = str(page)
line_list.append(page.splitlines()) # split every page based on \n
for j in range (len(line_list)):
for k in range(3):
line_list[j][k] = line_list[j][k][::-1]
print(line_list[j][k])
但这个包有两个问题。 1)反转单词(例如“سلام” - >“مالس”)我在这段代码中解决了它。 2)具有多种语言的文档存在问题,如波斯语和英语。
我希望