Re: Khmer script not correctly rendered
Andy Robinson <[email protected]> Fri, 23 Aug 2024 03:50:46 -0700 (PDT)
| Newsgroups | gmane.comp.python.reportlab.user |
|---|---|
| Message-ID | <[email protected]> |
------=_Part_118848_1222933594.1724410246702 Content-Type: multipart/alternative; boundary="----=_Part_118849_1739153871.1724410246702" ------=_Part_118849_1739153871.1724410246702 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hi Matthias, Thanks very much for your work on this. We've been looking into it over=20 the summer and making some progress. Could you contact me on=20 [email protected] when it's convenient, please? - Andy On Saturday 22 June 2024 at 06:20:41 UTC+1 [email protected] wrote: The investigation of this phenomena continued in my GitHub project in this= =20 issue: https://github.com/kreier/timeline/issues/35=20 It seems this problem could be solved if a font shape engine like harfbuzz= =20 would be integrated into reportlab. For simpler combined characters and for= =20 arabic (with import arabic_reshaper and reshaped =3D=20 arabic_reshaper.reshape(exam_name) ) this is already done in reportlab. And= =20 continuing on a post in this forum here from 2005=20 <https://groups.google.com/g/reportlab-users/c/scxAhaReanI/m/IYSaDfoH9ZkJ>= =20 Andy noted: *> We are trying to work out the right font descriptors and sequences of=20 bytes to put in the PDF file so that the right stuff magically happens on= =20 screen.* And I think with harfbuzz this would actually be possible. Going back to=20 the example mentioned above (and in my issue 35) if we use the Khmer word= =20 for years =E1=9E=86=E1=9F=92=E1=9E=93=E1=9E=B6=E1=9F=86 it is represented b= y five unicode codepoints: '\u1786\u17D2\u1793\u17B6\u17C6'.=20 But the codepoints to be inserted in the PDF to point to the right glyph=20 points is *uni178617B6, uni17D21793* and *uni17C6*. While the last looks=20 like the same, the others are actually not Unicode code points but points= =20 in the font file for these specific ligatures. And we need a little more=20 information about by how much our "cursor" should move forward after the=20 glyph (first one has a width of 923, the others have zero) and how the=20 glyphs should be positioned relative to the first glyph. These information= =20 would be integrated into the stream for the pdf file (I don't know how this= =20 stream is generated :( in reportlab) but all the required information is=20 given by harfbuzz.=20 I'm not sure if functions like *instanceStringWidthTTF*=20 <https://github.com/MrBitBucket/reportlab-mirror/blob/master/src/reportlab/= lib/rl_accel.py#L106>=20 would work since they have a *utf-8* encoded string as text argument, but *= uni178617B6=20 *and* uni17D21793* are not Unicode codepoints and therefore not represented= =20 in utf-8. It's probably a lot of work. But it looked like @replarobin Robin= =20 Becker was interested in starting this project. I still got no response for= =20 signing up to the official mail list and can't post there, so I have this= =20 little update here. Finally a little visual how the font shaping would work, replacing the five= =20 Unicode code points with three glyph code points for the example above: [image: khmer_shape.png] On Thursday 30 May 2024 at 20:16:08 UTC+7 Matthias Kreier wrote: Digging around in the last 10 days gave me a better understanding of the=20 problem. Some languages, scripts and glyphs need replacement=20 tables/ligatures to proper render the intended text written in the unicode= =20 sequence. It is not an easy task. As I found in a Microsoft document there= =20 are some 634 language tags=20 <https://learn.microsoft.com/en-us/typography/opentype/spec/languagetags>= =20 in software supported to properly render these languages in one of 173=20 scripts=20 <https://learn.microsoft.com/en-us/typography/opentype/spec/scripttags>.=20 Luckily most of the heavy lifting is already done or a constant process of= =20 refinement - namely Fonttools <https://github.com/fonttools/fonttools> and= =20 Harfbuzz <https://github.com/harfbuzz/harfbuzz>. Another project for=20 creating pdf documents with python fpdf2 <https://py-pdf.github.io/fpdf2/>= =20 solved this problem 2022 with the inclusion of the mentioned tools=20 <https://github.com/py-pdf/fpdf2/pull/477>. It might be an option for=20 reportlab, given the required manpower (from the company or community). I documented my findings here <https://github.com/kreier/timeline/issues/35= >.=20 I know the implementation of the ligature rendering process will require=20 some time and work. Yet otherwise I might have to shift to another python= =20 base for my project. Andy probably knows what's best for his company. Here some example code that solves the problem: # example rendering Khmer from fpdf import FPDF pdf =3D FPDF(orientation=3D"P", unit=3D"mm", format=3D"A4") pdf.add_page() pdf.add_font("noto", style=3D"", fname=3D"../../fonts/NotoKhmer.ttf") pdf.set_font('noto', size=3D32) pdf.cell(text=3D"King - =E1=9E=9F=E1=9F=92=E1=9E=8F=E1=9F=81=E1=9E= =85", new_x=3D"LMARGIN", new_y=3D"NEXT") pdf.cell(text=3D"Prophet - =E1=9E=A0=E1=9F=84=E1=9E=9A=E1=9E=B6", new_x= =3D"LMARGIN", new_y=3D"NEXT") pdf.set_font("Helvetica", size=3D12) pdf.cell(h =3D 20,text=3D"Now using __text_shaping__ with **uharfbuzz**:",= =20 markdown=3DTrue, new_x=3D"LMARGIN", new_y=3D"NEXT") pdf.set_font("noto", size=3D32) pdf.set_text_shaping(use_shaping_engine=3DTrue, script=3D"khmr", language= =3D"khm") pdf.cell(text=3D"King - =E1=9E=9F=E1=9F=92=E1=9E=8F=E1=9F=81=E1=9E= =85", new_x=3D"LMARGIN", new_y=3D"NEXT") pdf.cell(text=3D"Prophet - =E1=9E=A0=E1=9F=84=E1=9E=9A=E1=9E=B6", new_x= =3D"LMARGIN", new_y=3D"NEXT") pdf.output("example_fpdf.pdf") And the output: [image: Screenshot 2024-05-30 201445.png] On Tuesday 21 May 2024 at 13:28:19 UTC+7 Matthias Kreier wrote: Here is a simple example for the syllable ssa "=E1=9E=9F=E1=9F=92=E1=9E=9F"= . In reportlab the=20 result is [image: Screenshot 2024-05-21 132037.png]. Some further=20 explanation: The Khmer syllable "=E1=9E=9F=E1=9F=92=E1=9E=9F" (ssa) consists of a base c= onsonant followed by a=20 subscript consonant. Here=E2=80=99s a detailed breakdown of the Unicode seq= uence: 1. *Base Consonant:* =E1=9E=9F (SA) - U+179F 2. *Subscript Consonant:* =E1=9F=92=E1=9E=9F (subscript SA) - U+17D2 (KHMER= SIGN COENG) +=20 U+179F (subscript form of SA) *Unicode Sequence* 1.* Base Consonant: * - U+179F (=E1=9E=9F) 2.* Subscript Consonant: * - U+17D2 (KHMER SIGN COENG)=20 - U+179F (subscript form of SA) *Full Unicode Sequence* Putting these together, the full Unicode sequence for "=E1=9E=9F=E1=9F=92= =E1=9E=9F" is: U+179F (=E1=9E=9F)=20 U+17D2 (=E1=9F=92)=20 U+179F (=E1=9F=92=E1=9E=9F) *UTF-8 Encoding* To represent this sequence in UTF-8, each Unicode code point is converted= =20 to its corresponding UTF-8 byte sequence: - *U+179F* (=E1=9E=9F) in UTF-8: E1 9E 9F - *U+17D2* (=E1=9F=92) in UTF-8: E1 9F 92 - *U+179F* (subscript SA) in UTF-8: E1 9E 9F *Full UTF-8 Sequence* Combining these, the UTF-8 encoding for the sequence "=E1=9E=9F=E1=9F=92=E1= =9E=9F" is: *E1 9E 9F E1 9F 92 E1 9E 9F* *Rendering Process* 1. *Base Consonant:* The rendering engine identifies the base consonant =E1= =9E=9F=20 (U+179F). 2. *Subscript Consonant:* It recognizes the subscript sign (KHMER SIGN=20 COENG, U+17D2) and attaches the following consonant to the base consonant= =20 in its subscript form. 3. *Combination:* The engine renders the subscript consonant properly=20 positioned under the base consonant. In summary, the Unicode sequence for "=E1=9E=9F=E1=9F=92=E1=9E=9F" involves= a base consonant=20 followed by a subscript sign and another consonant, encoded and rendered=20 according to the rules of the Khmer script. The UTF-8 encoding ensures each= =20 character is correctly represented in byte form, which the rendering engine= =20 interprets to display the correct combined character. On Tuesday 21 May 2024 at 01:54:47 UTC+7 Matthias Kreier wrote: I use Khmer script in my project and have the text in utf-8 and use the=20 Noto Sans Khmer ttf font file. For comparison I have the same text with the= =20 same font in Word (left) and as result from a reportlab run (right): [image: Screenshot 2024-05-21 015018.png] The text should be:=20 54=E1=9E=98=E1=9E=93=E1=9E=BB=E1=9E=9F=E1=9F=92=E1=9E=9F 12=E1=9E=85=E1=9F=85=E1=9E=80=E1=9F=92=E1=9E=9A=E1=9E=98 19=E1=9E=A0=E1=9F=84=E1=9E=9A=E1=9E=B6 53=E1=9E=9F=E1=9F=92=E1=9E=8F=E1=9F=81=E1=9E=85 82=E1=9E=9A=E1=9E=99=E1=9F=88=E1=9E=96=E1=9F=81=E1=9E=9B 37=E1=9E=96=E1=9F=92=E1=9E=9A=E1=9E=B9=E1=9E=8F=E1=9F=92=E1=9E=8F=E1=9E=B7= =E1=9E=80=E1=9E=B6=E1=9E=9A=E1=9E=8E=E1=9F=8D 18=E1=9E=9C=E1=9E=8F=E1=9F=92=E1=9E=90=E1=9E=BB=E1=9E=AC=E1=9E=9C=E1=9E=8F= =E1=9F=92=E1=9E=90=E1=9E=BB The font is: https://fonts.google.com/noto/specimen/Noto+Sans+Khmer=20 ------=_Part_118849_1739153871.1724410246702 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable <br />Hi Matthias,<div><br /></div><div>Thanks very much for your work on t= his.=C2=A0 We've been looking into it over the summer and making some progr= ess.=C2=A0 Could you contact me on [email protected] when it's convenient,= please?</div><div><br /></div><div>- Andy</div><div><br /></div><div><div = dir=3D"auto">On Saturday 22 June 2024 at 06:20:41 UTC+1 [email protected]= m wrote:<br /></div><blockquote style=3D"margin: 0px 0px 0px 0.8ex; border-= left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">The investigation o= f this phenomena continued in my GitHub project in this issue:=C2=A0<a href= =3D"https://github.com/kreier/timeline/issues/35" target=3D"_blank" rel=3D"= nofollow">https://github.com/kreier/timeline/issues/35</a>=C2=A0<div><br />= </div><div>It seems this problem could be solved if a font shape engine lik= e harfbuzz would be integrated into reportlab. For simpler combined charact= ers and for arabic (with=C2=A0<font face=3D"Courier New" style=3D"backgroun= d-color: white;" color=3D"#0000ff"><span style=3D"font-style: inherit; font= -variant: inherit; font-weight: inherit; white-space: inherit; margin: 0px;= padding: 0px; border: 0px; font-stretch: inherit; line-height: inherit; fo= nt-kerning: inherit; font-feature-settings: inherit; font-size: 13px; verti= cal-align: baseline; box-sizing: inherit;">import</span><span style=3D"font= -style: inherit; font-variant-ligatures: inherit; font-variant-caps: inheri= t; font-weight: inherit; white-space: inherit;"> </span></font><span style= =3D"font-variant-ligatures: inherit; font-variant-caps: inherit; white-spac= e: inherit;"><span style=3D"font-weight: bold; font-family: "Courier N= ew"; background-color: white;"><font color=3D"#0000ff">arabic_reshaper= </font></span><font color=3D"#0c0d0e"> <font face=3D"Sans Serif">and</font>= <font face=3D"Courier New" style=3D"font-weight: bold;">=C2=A0</font></font= ></span><span style=3D"background-color: transparent; font-family: inherit;= font-style: inherit; font-variant-ligatures: inherit; font-variant-caps: i= nherit; font-weight: inherit; white-space: inherit; color: rgb(12, 13, 14);= "> </span><span style=3D"background-color: transparent; font-style: inherit; f= ont-variant-ligatures: inherit; font-variant-caps: inherit; font-weight: in= herit; white-space: inherit;"><font face=3D"Courier New" color=3D"#000000">= reshaped =3D arabic_reshaper.reshape(exam_name)</font></span>=C2=A0) this i= s already done in reportlab. And continuing on <a href=3D"https://groups.go= ogle.com/g/reportlab-users/c/scxAhaReanI/m/IYSaDfoH9ZkJ" target=3D"_blank" = rel=3D"nofollow">a post in this forum here from 2005</a> Andy noted:</div><= div><br /></div><div><i>> We are trying to work out the right font descr= iptors and=C2=A0sequences of bytes to put in the PDF file so that the right= stuff=C2=A0magically happens on screen.</i><br /></div><div><br /></div><d= iv>And I think with harfbuzz this would actually be possible. Going back to= the example mentioned above (and in my issue 35) if we use the Khmer word = for years=C2=A0<span style=3D"color: rgb(31, 35, 40); font-family: -apple-s= ystem, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Hel= vetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Em= oji";">=E1=9E=86=E1=9F=92=E1=9E=93=E1=9E=B6=E1=9F=86 it is represented= by five unicode codepoints: </span><span style=3D"font-family: "Couri= er New"; color: rgb(31, 35, 40);">'</span><span style=3D"color: rgb(31= , 35, 40);"><font face=3D"Courier New">\u1786\u17D2\u1793\u17B6\u17C6'. </f= ont><font face=3D"Sans Serif">But the codepoints to be inserted in the PDF = to point to the right glyph points is=C2=A0</font></span><strong style=3D"b= ox-sizing: border-box; color: rgb(31, 35, 40); font-family: -apple-system, = BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica,= Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji&quo= t;;">uni178617B6, uni17D21793</strong><span style=3D"color: rgb(31, 35, 40)= ; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", &qu= ot;Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji&q= uot;, "Segoe UI Emoji";">=C2=A0and=C2=A0</span><strong style=3D"b= ox-sizing: border-box; color: rgb(31, 35, 40); font-family: -apple-system, = BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica,= Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji&quo= t;;">uni17C6</strong><span style=3D"color: rgb(31, 35, 40); font-family: -a= pple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans"= ;, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe= UI Emoji";">. While the last looks like the same, the others are actu= ally not Unicode code points but points in the font file for these specific= ligatures. And we need a little more information about by how much our "cu= rsor" should move forward after the glyph (first one has a width of 923, th= e others have zero) and how the glyphs should be positioned relative to the= first glyph. These information would be integrated into the stream for the= pdf file (I don't know how this stream is generated :( in reportlab) but a= ll the required information is given by harfbuzz.=C2=A0</span></div><div><s= pan style=3D"color: rgb(31, 35, 40); font-family: -apple-system, BlinkMacSy= stemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sa= ns-serif, "Apple Color Emoji", "Segoe UI Emoji";"><br /= ></span></div><div><span style=3D"color: rgb(31, 35, 40); font-family: -app= le-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans",= Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe U= I Emoji";">I'm not sure if=C2=A0</span><span style=3D"color: rgb(31, 3= 5, 40); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI"= ;, "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color E= moji", "Segoe UI Emoji";"><a href=3D"https://github.com/MrBi= tBucket/reportlab-mirror/blob/master/src/reportlab/lib/rl_accel.py#L106" ta= rget=3D"_blank" rel=3D"nofollow">functions like <b>instanceStringWidthTTF</= b></a> would work since they have a <b>utf-8</b> encoded string as text arg= ument, but=C2=A0</span><strong style=3D"box-sizing: border-box; color: rgb(= 31, 35, 40); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI= ", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Co= lor Emoji", "Segoe UI Emoji";">uni178617B6 </strong><span st= yle=3D"box-sizing: border-box; color: rgb(31, 35, 40); font-family: -apple-= system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", He= lvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI E= moji";">and</span><strong style=3D"box-sizing: border-box; color: rgb(= 31, 35, 40); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI= ", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Co= lor Emoji", "Segoe UI Emoji";">=C2=A0uni17D21793</strong><sp= an style=3D"color: rgb(31, 35, 40); font-family: -apple-system, BlinkMacSys= temFont, "Segoe UI", "Noto Sans", Helvetica, Arial, san= s-serif, "Apple Color Emoji", "Segoe UI Emoji";">=C2=A0= are not Unicode codepoints and therefore not represented in utf-8. It's pro= bably a lot of work. But it looked like @replarobin Robin Becker was intere= sted in starting this project. I still got no response for signing up to th= e official mail list and can't post there, so I have this little update her= e.</span></div><div><span style=3D"color: rgb(31, 35, 40); font-family: -ap= ple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans"= , Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe = UI Emoji";"><br /></span></div><div><span style=3D"color: rgb(31, 35, = 40); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", = "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoj= i", "Segoe UI Emoji";">Finally a little visual how the font = shaping would work, replacing the five Unicode code points with three glyph= code points for the example above:</span></div><div><span style=3D"color: = rgb(31, 35, 40); font-family: -apple-system, BlinkMacSystemFont, "Sego= e UI", "Noto Sans", Helvetica, Arial, sans-serif, "Appl= e Color Emoji", "Segoe UI Emoji";"><br /></span></div><div><= span style=3D"color: rgb(31, 35, 40); font-family: -apple-system, BlinkMacS= ystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, s= ans-serif, "Apple Color Emoji", "Segoe UI Emoji";"><img= alt=3D"khmer_shape.png" width=3D"898px" height=3D"440px" src=3D"cid:5b5f7c= 76-8c01-44f7-a924-693f2a469b32" /><br /></span></div><div><span style=3D"co= lor: rgb(31, 35, 40); font-family: -apple-system, BlinkMacSystemFont, "= ;Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "= ;Apple Color Emoji", "Segoe UI Emoji";"><br /></span></div><= div><br /></div><div><div dir=3D"auto">On Thursday 30 May 2024 at 20:16:08 = UTC+7 Matthias Kreier wrote:<br /></div><blockquote style=3D"margin: 0px 0p= x 0px 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"= >Digging around in the last 10 days gave me a better understanding of the p= roblem. Some languages, scripts and glyphs need replacement tables/ligature= s to proper render the intended text written in the unicode sequence. It is= not an easy task. As I found in a Microsoft document there are <a href=3D"= https://learn.microsoft.com/en-us/typography/opentype/spec/languagetags" re= l=3D"nofollow" target=3D"_blank">some 634 language tags</a> in software sup= ported to properly render these languages in <a href=3D"https://learn.micro= soft.com/en-us/typography/opentype/spec/scripttags" rel=3D"nofollow" target= =3D"_blank">one of 173 scripts</a>. Luckily most of the heavy lifting is al= ready done or a constant process of refinement - namely <a href=3D"https://= github.com/fonttools/fonttools" rel=3D"nofollow" target=3D"_blank">Fonttool= s</a> and <a href=3D"https://github.com/harfbuzz/harfbuzz" rel=3D"nofollow"= target=3D"_blank">Harfbuzz</a>. Another project for creating pdf documents= with python<a href=3D"https://py-pdf.github.io/fpdf2/" rel=3D"nofollow" ta= rget=3D"_blank"> fpdf2</a> solved this problem <a href=3D"https://github.co= m/py-pdf/fpdf2/pull/477" rel=3D"nofollow" target=3D"_blank">2022 with the i= nclusion of the mentioned tools</a>.=C2=A0It might be an option for reportl= ab, given the required manpower (from the company or community).<div><br />= </div><div>I documented <a href=3D"https://github.com/kreier/timeline/issue= s/35" rel=3D"nofollow" target=3D"_blank">my findings here</a>. I know the i= mplementation of the ligature rendering process will require some time and = work. Yet otherwise I might have to shift to another python base for my pro= ject. Andy probably knows what's best for his company.</div><div><br /></di= v><div>Here some example code that solves the problem:</div><div><br /></di= v><div><div style=3D"color: rgb(204, 204, 204); background-color: rgb(31, 3= 1, 31); font-family: Consolas, "Courier New", monospace; line-hei= ght: 19px; white-space: pre;"><div><span style=3D"color: rgb(106, 153, 85);= "># example rendering Khmer</span></div><div><span style=3D"color: rgb(197,= 134, 192);">from</span> <span style=3D"color: rgb(78, 201, 176);">fpdf</sp= an> <span style=3D"color: rgb(197, 134, 192);">import</span> <span style=3D= "color: rgb(78, 201, 176);">FPDF</span></div><div><span style=3D"color: rgb= (156, 220, 254);">pdf</span> <span style=3D"color: rgb(212, 212, 212);">=3D= </span> <span style=3D"color: rgb(78, 201, 176);">FPDF</span>(<span style= =3D"color: rgb(156, 220, 254);">orientation</span><span style=3D"color: rgb= (212, 212, 212);">=3D</span><span style=3D"color: rgb(206, 145, 120);">"P"<= /span>, <span style=3D"color: rgb(156, 220, 254);">unit</span><span style= =3D"color: rgb(212, 212, 212);">=3D</span><span style=3D"color: rgb(206, 14= 5, 120);">"mm"</span>, <span style=3D"color: rgb(156, 220, 254);">format</s= pan><span style=3D"color: rgb(212, 212, 212);">=3D</span><span style=3D"col= or: rgb(206, 145, 120);">"A4"</span>)</div><div><span style=3D"color: rgb(1= 56, 220, 254);">pdf</span>.<span style=3D"color: rgb(220, 220, 170);">add_p= age</span>()</div><div><span style=3D"color: rgb(156, 220, 254);">pdf</span= >.<span style=3D"color: rgb(220, 220, 170);">add_font</span>(<span style=3D= "color: rgb(206, 145, 120);">"noto"</span>, <span style=3D"color: rgb(156, = 220, 254);">style</span><span style=3D"color: rgb(212, 212, 212);">=3D</spa= n><span style=3D"color: rgb(206, 145, 120);">""</span>, <span style=3D"colo= r: rgb(156, 220, 254);">fname</span><span style=3D"color: rgb(212, 212, 212= );">=3D</span><span style=3D"color: rgb(206, 145, 120);">"../../fonts/NotoK= hmer.ttf"</span>)</div><div><span style=3D"color: rgb(156, 220, 254);">pdf<= /span>.<span style=3D"color: rgb(220, 220, 170);">set_font</span>(<span sty= le=3D"color: rgb(206, 145, 120);">'noto'</span>, <span style=3D"color: rgb(= 156, 220, 254);">size</span><span style=3D"color: rgb(212, 212, 212);">=3D<= /span><span style=3D"color: rgb(181, 206, 168);">32</span>)</div><div><span= style=3D"color: rgb(156, 220, 254);">pdf</span>.<span style=3D"color: rgb(= 220, 220, 170);">cell</span>(<span style=3D"color: rgb(156, 220, 254);">tex= t</span><span style=3D"color: rgb(212, 212, 212);">=3D</span><span style=3D= "color: rgb(206, 145, 120);">"King =C2=A0 =C2=A0 =C2=A0 =C2=A0- =E1=9E=9F= =E1=9F=92=E1=9E=8F=E1=9F=81=E1=9E=85"</span>, <span style=3D"color: rgb(156= , 220, 254);">new_x</span><span style=3D"color: rgb(212, 212, 212);">=3D</s= pan><span style=3D"color: rgb(206, 145, 120);">"LMARGIN"</span>, <span styl= e=3D"color: rgb(156, 220, 254);">new_y</span><span style=3D"color: rgb(212,= 212, 212);">=3D</span><span style=3D"color: rgb(206, 145, 120);">"NEXT"</s= pan>)</div><div><span style=3D"color: rgb(156, 220, 254);">pdf</span>.<span= style=3D"color: rgb(220, 220, 170);">cell</span>(<span style=3D"color: rgb= (156, 220, 254);">text</span><span style=3D"color: rgb(212, 212, 212);">=3D= </span><span style=3D"color: rgb(206, 145, 120);">"Prophet - =E1=9E=A0=E1= =9F=84=E1=9E=9A=E1=9E=B6"</span>, =C2=A0 =C2=A0 <span style=3D"color: rgb(1= 56, 220, 254);">new_x</span><span style=3D"color: rgb(212, 212, 212);">=3D<= /span><span style=3D"color: rgb(206, 145, 120);">"LMARGIN"</span>, <span st= yle=3D"color: rgb(156, 220, 254);">new_y</span><span style=3D"color: rgb(21= 2, 212, 212);">=3D</span><span style=3D"color: rgb(206, 145, 120);">"NEXT"<= /span>)</div><div><span style=3D"color: rgb(156, 220, 254);">pdf</span>.<sp= an style=3D"color: rgb(220, 220, 170);">set_font</span>(<span style=3D"colo= r: rgb(206, 145, 120);">"Helvetica"</span>, <span style=3D"color: rgb(156, = 220, 254);">size</span><span style=3D"color: rgb(212, 212, 212);">=3D</span= ><span style=3D"color: rgb(181, 206, 168);">12</span>)</div><div><span styl= e=3D"color: rgb(156, 220, 254);">pdf</span>.<span style=3D"color: rgb(220, = 220, 170);">cell</span>(<span style=3D"color: rgb(156, 220, 254);">h</span>= <span style=3D"color: rgb(212, 212, 212);">=3D</span> <span style=3D"color= : rgb(181, 206, 168);">20</span>,<span style=3D"color: rgb(156, 220, 254);"= >text</span><span style=3D"color: rgb(212, 212, 212);">=3D</span><span styl= e=3D"color: rgb(206, 145, 120);">"Now using __text_shaping__ with **uharfbu= zz**:"</span>, <span style=3D"color: rgb(156, 220, 254);">markdown</span><s= pan style=3D"color: rgb(212, 212, 212);">=3D</span><span style=3D"color: rg= b(79, 193, 255);">True</span>, <span style=3D"color: rgb(156, 220, 254);">n= ew_x</span><span style=3D"color: rgb(212, 212, 212);">=3D</span><span style= =3D"color: rgb(206, 145, 120);">"LMARGIN"</span>, <span style=3D"color: rgb= (156, 220, 254);">new_y</span><span style=3D"color: rgb(212, 212, 212);">= =3D</span><span style=3D"color: rgb(206, 145, 120);">"NEXT"</span>)</div><d= iv><span style=3D"color: rgb(156, 220, 254);">pdf</span>.<span style=3D"col= or: rgb(220, 220, 170);">set_font</span>(<span style=3D"color: rgb(206, 145= , 120);">"noto"</span>, <span style=3D"color: rgb(156, 220, 254);">size</sp= an><span style=3D"color: rgb(212, 212, 212);">=3D</span><span style=3D"colo= r: rgb(181, 206, 168);">32</span>)</div><div><span style=3D"color: rgb(156,= 220, 254);">pdf</span>.<span style=3D"color: rgb(220, 220, 170);">set_text= _shaping</span>(<span style=3D"color: rgb(156, 220, 254);">use_shaping_engi= ne</span><span style=3D"color: rgb(212, 212, 212);">=3D</span><span style= =3D"color: rgb(79, 193, 255);">True</span>, <span style=3D"color: rgb(156, = 220, 254);">script</span><span style=3D"color: rgb(212, 212, 212);">=3D</sp= an><span style=3D"color: rgb(206, 145, 120);">"khmr"</span>, <span style=3D= "color: rgb(156, 220, 254);">language</span><span style=3D"color: rgb(212, = 212, 212);">=3D</span><span style=3D"color: rgb(206, 145, 120);">"khm"</spa= n>)</div><div><span style=3D"color: rgb(156, 220, 254);">pdf</span>.<span s= tyle=3D"color: rgb(220, 220, 170);">cell</span>(<span style=3D"color: rgb(1= 56, 220, 254);">text</span><span style=3D"color: rgb(212, 212, 212);">=3D</= span><span style=3D"color: rgb(206, 145, 120);">"King =C2=A0 =C2=A0 =C2=A0 = =C2=A0- =E1=9E=9F=E1=9F=92=E1=9E=8F=E1=9F=81=E1=9E=85"</span>, <span style= =3D"color: rgb(156, 220, 254);">new_x</span><span style=3D"color: rgb(212, = 212, 212);">=3D</span><span style=3D"color: rgb(206, 145, 120);">"LMARGIN"<= /span>, <span style=3D"color: rgb(156, 220, 254);">new_y</span><span style= =3D"color: rgb(212, 212, 212);">=3D</span><span style=3D"color: rgb(206, 14= 5, 120);">"NEXT"</span>)</div><div><span style=3D"color: rgb(156, 220, 254)= ;">pdf</span>.<span style=3D"color: rgb(220, 220, 170);">cell</span>(<span = style=3D"color: rgb(156, 220, 254);">text</span><span style=3D"color: rgb(2= 12, 212, 212);">=3D</span><span style=3D"color: rgb(206, 145, 120);">"Proph= et - =E1=9E=A0=E1=9F=84=E1=9E=9A=E1=9E=B6"</span>, =C2=A0 =C2=A0 <span styl= e=3D"color: rgb(156, 220, 254);">new_x</span><span style=3D"color: rgb(212,= 212, 212);">=3D</span><span style=3D"color: rgb(206, 145, 120);">"LMARGIN"= </span>, <span style=3D"color: rgb(156, 220, 254);">new_y</span><span style= =3D"color: rgb(212, 212, 212);">=3D</span><span style=3D"color: rgb(206, 14= 5, 120);">"NEXT"</span>)</div><div><span style=3D"color: rgb(156, 220, 254)= ;">pdf</span>.<span style=3D"color: rgb(220, 220, 170);">output</span>(<spa= n style=3D"color: rgb(206, 145, 120);">"example_fpdf.pdf"</span>)</div></di= v></div><div><br />And the output:</div><div><br /></div><div><img alt=3D"S= creenshot 2024-05-30 201445.png" width=3D"374px" height=3D"295px" src=3D"ht= tps://groups.google.com/group/reportlab-users/attach/10bbe9449e4804/Screens= hot%202024-05-30%20201445.png?part=3D0.1&view=3D1" /><br /></div><div><= br /></div><div><div dir=3D"auto">On Tuesday 21 May 2024 at 13:28:19 UTC+7 = Matthias Kreier wrote:<br /></div><blockquote style=3D"margin: 0px 0px 0px = 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">Here = is a simple example for the syllable ssa=C2=A0<span style=3D"color: rgb(13,= 13, 13); font-family: S=C3=B6hne, ui-sans-serif, system-ui, -apple-system,= "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sa= ns-serif, "Helvetica Neue", Arial, "Apple Color Emoji",= "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color = Emoji"; font-size: 16px;">"</span><span style=3D"color: rgb(13, 13, 13= ); font-family: S=C3=B6hne, ui-sans-serif, system-ui, -apple-system, "= Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-seri= f, "Helvetica Neue", Arial, "Apple Color Emoji", "= Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji&q= uot;;"><font size=3D"6">=E1=9E=9F=E1=9F=92=E1=9E=9F</font></span><span styl= e=3D"color: rgb(13, 13, 13); font-family: S=C3=B6hne, ui-sans-serif, system= -ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "= Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple= Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"= , "Noto Color Emoji"; font-size: 16px;">". In reportlab the resul= t is </span><img alt=3D"Screenshot 2024-05-21 132037.png" width=3D"63px" he= ight=3D"38.2785px" src=3D"https://groups.google.com/group/reportlab-users/a= ttach/1b50eaa16e16d/Screenshot%202024-05-21%20132037.png?part=3D0.1&vie= w=3D1" />. Some further explanation:<div><br /></div><div>The Khmer syllabl= e "=E1=9E=9F=E1=9F=92=E1=9E=9F" (ssa) consists of a base consonant followed= by a subscript consonant. Here=E2=80=99s a detailed breakdown of the Unico= de sequence:<br /><br />1. <b>Base Consonant:</b> =E1=9E=9F (SA) - U+179F<b= r />2. <b>Subscript Consonant:</b> =E1=9F=92=E1=9E=9F (subscript SA) - U+17= D2 (KHMER SIGN COENG) + U+179F (subscript form of SA)<br /><br /><font size= =3D"4"><b>Unicode Sequence</b></font><br /><br />1.<b>=C2=A0Base Consonant:= </b><br />=C2=A0 =C2=A0- U+179F (=E1=9E=9F)<br /><br />2.<b> Subscript Con= sonant: </b><br />=C2=A0 =C2=A0- U+17D2 (KHMER SIGN COENG) <br />=C2=A0 =C2= =A0- U+179F (subscript form of SA)<br /><br /><font size=3D"4"><b>Full Unic= ode Sequence</b></font><br /><br />Putting these together, the full Unicode= sequence for "=E1=9E=9F=E1=9F=92=E1=9E=9F" is:<br /><br /><font face=3D"Co= urier New">U+179F (=E1=9E=9F) <br />U+17D2 (=E1=9F=92) <br />U+179F (=E1=9F= =92=E1=9E=9F)</font><br /><br /><b><font size=3D"4">UTF-8 Encoding</font></= b><br /><br />To represent this sequence in UTF-8, each Unicode code point = is converted to its corresponding UTF-8 byte sequence:<br /><br />- <b>U+17= 9F</b> (=E1=9E=9F) in UTF-8: <font face=3D"Courier New">E1 9E 9F</font><br = />- <b>U+17D2</b> (=E1=9F=92) in UTF-8: <font face=3D"Courier New">E1 9F 92= </font><br />- <b>U+179F</b> (subscript SA) in UTF-8: <font face=3D"Courier= New">E1 9E 9F</font><br /><br /><b><font size=3D"4">Full UTF-8 Sequence</f= ont></b><br /><br />Combining these, the UTF-8 encoding for the sequence "= =E1=9E=9F=E1=9F=92=E1=9E=9F" is:<br /><br /><font face=3D"Courier New"><b>E= 1 9E 9F E1 9F 92 E1 9E 9F</b></font><br /><br /><br /><font size=3D"4"><b>R= endering Process</b></font><br /><br />1. <b>Base Consonant:</b> The render= ing engine identifies the base consonant =E1=9E=9F (U+179F).<br />2. <b>Sub= script Consonant:</b> It recognizes the subscript sign (KHMER SIGN COENG, U= +17D2) and attaches the following consonant to the base consonant in its su= bscript form.<br />3. <b>Combination:</b> The engine renders the subscript = consonant properly positioned under the base consonant.<br /><br />In summa= ry, the Unicode sequence for "=E1=9E=9F=E1=9F=92=E1=9E=9F" involves a base = consonant followed by a subscript sign and another consonant, encoded and r= endered according to the rules of the Khmer script. The UTF-8 encoding ensu= res each character is correctly represented in byte form, which the renderi= ng engine interprets to display the correct combined character.<br /><div><= br /></div><div><br /></div></div><div><div dir=3D"auto">On Tuesday 21 May = 2024 at 01:54:47 UTC+7 Matthias Kreier wrote:<br /></div><blockquote style= =3D"margin: 0px 0px 0px 0.8ex; border-left: 1px solid rgb(204, 204, 204); p= adding-left: 1ex;">I use Khmer script in my project and have the text in ut= f-8 and use the Noto Sans Khmer ttf font file. For comparison I have the sa= me text with the same font in Word (left) and as result from a reportlab ru= n (right):<div><br /></div><div><img alt=3D"Screenshot 2024-05-21 015018.pn= g" width=3D"534px" height=3D"379px" src=3D"https://groups.google.com/group/= reportlab-users/attach/18f35fc4f422a/Screenshot%202024-05-21%20015018.png?p= art=3D0.1&view=3D1" /><br /></div><div>The text should be:=C2=A0</div><= div>54=E1=9E=98=E1=9E=93=E1=9E=BB=E1=9E=9F=E1=9F=92=E1=9E=9F</div>12=E1=9E= =85=E1=9F=85=E1=9E=80=E1=9F=92=E1=9E=9A=E1=9E=98<br />19=E1=9E=A0=E1=9F=84= =E1=9E=9A=E1=9E=B6<br />53=E1=9E=9F=E1=9F=92=E1=9E=8F=E1=9F=81=E1=9E=85<br = />82=E1=9E=9A=E1=9E=99=E1=9F=88=E1=9E=96=E1=9F=81=E1=9E=9B<br />37=E1=9E=96= =E1=9F=92=E1=9E=9A=E1=9E=B9=E1=9E=8F=E1=9F=92=E1=9E=8F=E1=9E=B7=E1=9E=80=E1= =9E=B6=E1=9E=9A=E1=9E=8E=E1=9F=8D<br />18=E1=9E=9C=E1=9E=8F=E1=9F=92=E1=9E= =90=E1=9E=BB=E1=9E=AC=E1=9E=9C=E1=9E=8F=E1=9F=92=E1=9E=90=E1=9E=BB<br /><di= v><br /></div><div>The font is:=C2=A0<a href=3D"https://fonts.google.com/no= to/specimen/Noto+Sans+Khmer" rel=3D"nofollow" target=3D"_blank">https://fon= ts.google.com/noto/specimen/Noto+Sans+Khmer</a>=C2=A0</div></blockquote></d= iv></blockquote></div></blockquote></div></blockquote></div> ------=_Part_118849_1739153871.1724410246702-- ------=_Part_118848_1222933594.1724410246702 Content-Type: image/png; name=khmer_shape.png Content-Transfer-Encoding: base64 Content-Disposition: inline; filename=khmer_shape.png X-Attachment-Id: <5b5f7c76-8c01-44f7-a924-693f2a469b32> Content-ID: <5b5f7c76-8c01-44f7-a924-693f2a469b32> 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 C1sgAAIgwJsAZChvorBnMQFMsRYDrmyeDYE8Xbk+SlhMgA2KxU3BPAiAAAiYIgAZagofKoMACICA 0whAhjotIvAHBECgHAHI0HJkkA8CIAACriQAGerKsMFpEKhLApChdRl2dBoEbCTAqiKkbSZgY5zR FAiAAAgYIeAxUgl1QAAEQEAbAZuFF5pjCWgLEUqBAAiAQNUIQIZWDT0aBoF6IMCqIqRtJlAPJxj6 CAIg4GoCkKGuDh+cBwGnE7BZeKE5loDTTw74BwIgUPcEIEPr/hQAABCwkgCripC2mYCVgYVtEAAB EOBAADKUA0SYAAEQAAEQAAEQAAEQ0EsAMlQvMZQHARAAARAAARAAARDgQAAylANEmAABEAABEAAB EAABENBLADJULzGUBwEQAAEQAAEQAAEQ4EAAMpQDRJgAARAAARAAARAAARDQSwAyVC8xlAcBEAAB EAABEAABEOBAADKUA0SYAAEQAAEQAAEQAAEQ0EsAMlQvMZQHARAAARAAARAAARDgQAAylANEmAAB EAABEAABEAABENBLADJULzGUBwEQAAEQAAEQAAEQ4EAAMpQDRJgAARAAARAAARAAARDQSwAyVC8x lAcBEAABEAABEAABEOBAADKUA0SYAAEQAAEQAAEQAAEQ0EsAMlQvMZQHARAAARAAARAAARDgQAAy lANEmAABEAABEAABEAABENBLADJULzGUBwEQAAEQAAEQAAEQ4EAAMpQDRJgAARAAARAAARAAARDQ SwAyVC8xlAcBEAABEAABEAABEOBAADKUA0SYAAEQAAEQAAEQAAEQ0EsAMlQvMZQHARAAARAAARAA ARDgQAAylANEmAABEAABEAABEAABENBLADJULzGUBwEQAAEQAAEQAAEQ4EAAMpQDRJgAARAAARAA ARAAARDQSwAyVC8xlAcBEAABEAABEAABEOBAADKUA0SYAAEQAAEQAAEQAAEQ0EsAMlQvMZQHARAA ARAAARAAARDgQAAylANEmAABEAABEAABEAABENBLADJULzGUBwEQAAEQAAEQAAEQ4EAAMpQDRJgA ARAAARAAARAAARDQSwAyVC8xlAcBEAABEAABEAABEOBAADKUA0SYAAEQAAEQAAEQAAEQ0EsAMlQv MZQHARAAARAAARAAARDgQAAylANEmAABEAABEAABEAABENBLADJULzGUBwEQAAEQAAEQAAEQ4EAA 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 oBIg4DgC/w+Itnr2SxfzvAAAAABJRU5ErkJggg== ------=_Part_118848_1222933594.1724410246702 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline