PDF ReportLab Tamil Forn Not Show Correctly

PDF கோப்பு REPORTLAB மற்றும் PYTHON பயன்படுத்தி உருவாக்கும் போது தமிழ் எழுத்துருக்கள் சரியாக தோன்றவில்லை, எப்படி சரி செய்வது?

முதலில் உள்ள வரி SUNTOMMY எழுத்துரு
இரண்டாவது வரி NOTOSANSTAMIL எழுத்துரு
UNICODE எழுத்துருக்கள் வேறு பயன்படுத்தினாலும் இப்படியேதான் உள்ளது…
Screenshot from 2023-04-20 21-15-43

எப்படி PDF கோப்பை உருவாக்குகின்றீர்கள்? எந்த இயங்குதளத்தை பயன்படுத்துகின்றீர்கள்? கமாண்ட்லைன் பயன்படுத்தி உருவாக்குகின்றீர்கள் என்றால் அந்த முழு கமாண்ட் லைனை கொடுக்கவும்.

@Shaik உங்கள் நிரல் பகிருங்கள்.

OS
Ubuntu 22.04.2 LTS

drawString என்பதில் encode(‘utf-8’) இல்லாமல் run செய்தாலும் வரவில்லை.
எழுத்துருக்களை மாற்றியும் பயனில்லை

u'ரோஜா பூ பூத்துள்ளது'

என்பதற்கு பதிலாக

'ரோஜா பூ பூத்துள்ளது'

என்று முயற்சித்து பார்க்கவும். வரும் PDF எப்படி வந்துள்ளது என்பதை பகிரவும்

Screenshot from 2023-04-21 21-34-26
@mohan43u

serif.ttf க்கு பதிலாக வேறு ஏதேனும் தமிழ் யூனிகோட் பாண்ட் இருத்தால் அதை பயன்படுத்தவும். எப்படி வருகின்றது என்று கூறவும்.

கணினியில் உள்ள அனைத்து தமிழ் பாண்டுகளையும் தெரிந்து கொள்ள ctrl-alt-t கொடுத்து வரும் டெர்மினலில்

fc-list :lang=ta

இந்த கமாண்டை இயக்கவும்.

சரியாகவில்லை எழுத்துக்கள் அதே போலவே உள்ளது

மாற்றப்பட்ட நிரலை இங்கே பகிரவும்.


Screenshot from 2023-04-21 23-04-23

@Shaik share your code a gist.github.com link or add the text content here directly.

so that we can copy/paste run locally.

sharing the code as screenshot wont help us to replicate the issue and fix it.

import sys
import os
from reportlab.pdfgen.canvas import Canvas
from reportlab.lib.units import mm, cm
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.cidfonts import UnicodeCIDFont
import textwrap

custom_fonts = os.path.join("/usr/lib/python3/dist-packages/reportlab/fonts","suntommy.ttf")
custom_font = TTFont('Tamil',custom_fonts)
pdfmetrics.registerFont(custom_font)

custom_fonts1 = os.path.join("/usr/share/fonts/truetype/lohit-tamil-classical","Lohit-Tamil-Classical.ttf")
#custom_fonts1 = os.path.join("/usr/share/fonts/truetype/samyak-fonts","Samyak-Tamil.ttf")
custom_font1 = TTFont('Tamil1',custom_fonts1)
pdfmetrics.registerFont(custom_font1)


text = "ரோஜா பூ பூத்துள்ளது"

canvas = Canvas("ZZ.pdf",bottomup=0)


canvas.setFont("Tamil",5.9)
canvas.drawString(5.4*cm,2.33*cm,"Nuh[h g+ g+j;Js;sJ")


canvas.setFont("Tamil1",5.9)
canvas.drawString(5.4*cm,3*cm,text)

canvas.showPage()
canvas.save()

i am attach my code hear sir

reportlab ல் உள்ள பிழை இது.

நண்பர் செல்வம், 2011 ல் இதை சரி செய்துள்ளார்.

காண்க.

அவரிடம் திருத்திய நிரலைக் கேட்டுள்ளேன்.
https://twitter.com/tshrinivasan/status/1649847445440929793

நாம் உருவாக்கும் நிரல்களை உடனுக்குடன் பொது வெளியில் பகிர்ந்து விட வேண்டும்.
பிறகு பகிரலாம் என்று நினைத்தால், அதற்குள் வருடங்கள் ஓடி விடும்.
நாம் தீர்த்த அதே சிக்கல்களுக்கான தீர்வுகளை பலரும் பல காலம் தேட வேண்டிய நிலை ஏற்பட்டு விடும்.

1 Like

python மூலம் PDF தயாரிக்க வேறு வழிமுறைகள் இருந்தால் தெரிவிக்கவும். (FPDF-லும் இதே பிரச்சினை உள்ளது.) எனவே வேறு முறைகள் இருந்தால் தெரிவிக்கவும்

இதே சிக்கல் படங்களில் தமிழ் எழுத்துருக்களை சேர்ப்பதற்கும் உண்டு.
pyvips மூலம் இதற்கு தீர்வு உள்ளது.
இங்கு உள்ள இணைப்புகளைக் காண்க.

நண்பர் நீச்சல்காரன் php ல் tscii font மூலம் தீர்வு தந்துள்ளார்.

நான் அந்த நேரத்தில் அதை பகிர்ந்து கொண்டிருக்க வேண்டும். நான் உங்களுக்கு கோப்பு மின்னஞ்சல் செய்து அனுப்பியுள்ளேன்.

மிக்க நன்றி @SelvamS

1 Like

#solved

தற்காலிகமான தீா்வாக
glyph களை தெலுங்கு யூனிகோடுகளின் இடத்தில் மாற்றம் செய்து கீழுள்ள பைதான் புரோகிராம் உதவியுடன் சரியான தமிழ் எழுத்தாக மாற்றம் செய்யப்படுகிறது
Screenshot from 2023-06-08 21-11-07

Screenshot from 2023-06-08 21-44-46

நன்றி @tshrinivasan @SelvamS

1 Like

in reportlab pdf the letters shows different.

image

how to fix it