Я использую этот код:
import pdfplumber
pdf = pdfplumber.open('Hans Wehr Searchable PDF.pdf')
page = pdf.pages[10]
text = page.extract_text()
#writeTo = open("wehr_text.txt", "w")
#writeTo.write(text)
print(text)
pdf.close()
Когда я печатаю текст на терминал, я получаю:
خيرات ta'rīḳ dating (письма и т. Д. 1027 *.); та'ри земля, земля (прил. земной; пл. خيراوت tawārīḳ2 дата; время; история; подземелье, подземная хроника, летопись│ ةايحلا خيرات t. аль-Хайах يكوش يضرا arḍī šaukī артишок биография; Биография \ Резюме; ماع خيرات ('āmm) всемирная история; خيراتلا ءاملع را araḍ (колл .; n. Un. ة) термит; историки древоточцы يخيرات tārīḳīistori c (al) ةيضرا arḍīya pl. -ат этаж; грунт (также, например, печатной фабрики c картины); земля خرؤم mu'arriḳ pl. -ун историограф, этаж, первый этаж (тун.); склад, историк склада, летописец, летописец; - обвинения му'аррах датируются مورضرا arḍurum2 Эрзурум (город на северо-востоке Турции) ليبخرا arḳabīl archipela go ةطرا (также ةطروا) urṯa pl. طرا uraṯ (طروا) نخرا (άρχων) пл. ةنخارا arāḳina archon, пл. батальон (ранее, Eg .; mil.) знатных (Chr.-Copt.) ةقطرا arṯaqa pl. -āt ересь (Chr.) بدرا irdabb (теперь обычно произносится как ardabb) мн. بدارا arādib2 ardeb, a dry عيرات см. عير measure (например, = 1981) نغرا urgun pl. نغارا aragin2 орган (mus. Instr.) ةبدرا irdabba cesspool لورا urgūl, argūl духовой инструмент (связанный с ندرلاا al-urdunn Jordan (река и страна) клар inet, состоящий из двух труб разной длины) يندرا urdun ةيندرلاا ةكلمملا ةيمشاھلا аль-мамлака аль-у. al-hāšimīya را ariqa a, чтобы не уснуть II, чтобы сделать Иорданское Хашимитское Королевство (официально бессонным (ه so), предотвратить так (ه) от обозначения) спящим زاودرا (фр. ardoise) arduwāz slate قرا araq бессонница, бессонница 1 زرااnia arz (сущ. un. ة) кедр ةكيرا arika pl. كئارا arā'ik2 диван, диван; трон 2 را aruzz рис ةليكرا argīla pl. ليكارا arāgīl2 (syr.) Водопровод, narghile سرا arasa i (ars), чтобы возделывать землю يدنلرا irlandī Iri sh سيرا irrīs and arīs, крестьянин, фермер 1 مرا arama i, чтобы укусить يطارقuqraا; ristocrat مرا urram молярные зубы пень شرا arš возмещение, коммерция, штраф, штраф; деньги с дерева крови (за пролитие крови; مرئم mi'ram root (зуба) Исл. Закон) 2 مارآ ārām (= مارا) pl. of مئر ri'm) белый سبوقسبا يشرا (греч. ὰρχιεπίσϰοπος) архиепископ антилоп قوديشرا (фр. archidu c) эрцгерцог, ةوديشرا نمرلاا al-armanss. и армянин. пл. ضارا arāḍīn, نوضارا arāḍūn земля; земля, страна, регион, площадь; местность, اينيمرا armēniyā Армения земля, почва│ ىلفسلا ضرلاا (suflā) وانرلاا al-arnāwuṯ албанцы нижний мир; ةسدقملا ضرلاا (muqad [введите здесь описание изображения] [1] dasa) يطوانرا arnāwuṯī Албанский Святая Земля, Палестина يضرا arḍī terrestrial, земли; почва-, بنرا arnab f., pl. بنارا arānib2 заяц; rabbit│ يدنھ بنرا (хинди) морская свинка земля- (в соединениях); расположенный на
или рядом с ним. Проблема в том, что текст на арабском c должен быть написан справа налево, но буквы здесь написаны слева направо.
Есть решение, позволяющее заставить процесс извлечения и записи правильно записывать арабские символы c? Например: первая строка в выводе выше: خيرات. Его следует писать справа налево, а не слева направо.
На изображении, приведенном ниже, я показал, что мой терминал печатает текст арабского c в том виде, в каком он должен быть напечатан, справа налево. Однако при записи или копировании и вставке он становится слева направо.
imgur.com / mmSet.png
Я вижу здесь следующие варианты:
a) Написать код чтобы найти все арабские c слова и перевернуть их в текстовом файле.
б) Найдите другой инструмент для извлечения текста, который может правильно распечатать / записать арабский c в файл.
c) Решите проблему PDFPlumber / Python с записью подобного рода, написав дополнительный код, в котором указывается, что араби c следует писать справа налево.
Кто-нибудь захочет посмотреть на это и поделиться другими возможными решениями этой проблемы?