def rtl(exp, reshape=True, bidi=True, digits=False): if reshape: exp = reshaper.reshape(exp, digits=digits) if bidi: exp = get_display(exp) return exp
def get_farsi_text(text): words = text.split() reshaped_words = [] for word in words: if reshaper.has_arabic_letters(word): reshaped_text = reshaper.reshape(word) # for reshaping and concating words bidi_text = get_display(reshaped_text) # for right to left reshaped_words.append(bidi_text) else: reshaped_words.append(word) reshaped_words.reverse() # reshaped_text = reshaper.reshape_sentence(text) reshape_it(text) return ' '.join(reshaped_words)
def get_farsi_text(text): if reshaper.has_arabic_letters(text): words = text.split() reshaped_words = [] for word in words: if reshaper.has_arabic_letters(word): reshaped_text = reshaper.reshape(word) bidi_text = get_display(reshaped_text) reshaped_words.append(bidi_text) else: reshaped_words.append(word) reshaped_words.reverse() return ' '.join(reshaped_words) return text
def get_farsi_text(word): # print ('in get_farsi_text method...') # print('text dakhel function get %%%%%%%%',word) if reshaper.has_arabic_letters(word): # for reshaping and concating words reshaped_text = reshaper.reshape(word) reshaped_text = _multiple_replace(arabic2persian, reshaped_text) # for right to left bidi_text = get_display(reshaped_text) reshaped_words = bidi_text else: reshaped_words = word # reshaped_words.reverse() return reshaped_words
# add a font that supports farsi # copy Bahij-Nazanin-Regular.ttf into /usr/local/lib/python3.4/dist-packages/reportlab/fonts folder pdfmetrics.registerFont(TTFont('Persian', 'Bahij-Nazanin-Regular.ttf')) c = canvas.Canvas('font.pdf') c.setFont('Persian', 14) c.drawString(100, 750, u"خوش آمدید".encode('utf-8')) c.save() print('################## print farsi ######################') from bidi.algorithm import get_display from rtl import reshaper c = canvas.Canvas('farsi.pdf') c.setFont('Persian', 14) reshaped_text = reshaper.reshape( u"خوش آمدید") # for reshaping and concating words bidi_text = get_display(reshaped_text) # for right to left # c.drawString(100, 750, bidi_text) from hazm import * normalizer = Normalizer() text = 'شاید هنوز اندروید نوقا برای تمام گوشیهای اندرویدی عرضه نشده باشد، ولی اگر صاحب یکی از گوشیهای نکسوس یا پیکسل باشید احتمالا تا الان زمان نسبتا زیادی را با آخرین نسخهی اندروید سپری کردهاید. اگر در کار با اندروید نوقا دچار مشکل شدهاید، با دیجیکالا مگ همراه باشید تا با هم برخی از رایجترین مشکلات گزارش شده و راه حل آنها را بررسی کنیم. البته از بسیاری از این روشها در سایر نسخههای اندروید هم میتوانید استفاده کنید. اندروید برخلاف iOS روی گسترهی وسیعی از گوشیها با پوستهها و اپلیکیشنهای اضافی متنوع نصب میشود. بنابراین تجویز یک نسخهی مشترک برای حل مشکلات آن کار چندان سادهای نیست. با این حال برخی روشهای عمومی وجود دارد که بهتر است پیش از هر چیز آنها را بیازمایید.' txt = normalizer.normalize(text) reshaped_text = reshaper.reshape(txt) bidi_text = get_display(reshaped_text) c.drawString(100, 750, bidi_text) c.save() print('################## change paper size ######################') from reportlab.lib.pagesizes import letter c = canvas.Canvas('page_size.pdf', pagesize=letter)