<DIV><BR>&gt;hi</DIV>
<DIV>&nbsp;&nbsp; I am writting a program which use cairo user font,as a result I want to get 'my font' to draw in pdf,there is my test main funtion.</DIV>
<DIV>int _tmain(int argc, _TCHAR* argv[])<BR>{</DIV>
<DIV>FILE *fp_glyph;<BR>&nbsp;if ((fp_glyph=fopen("example.bin","rb"))==NULL)//in this&nbsp;example&nbsp;'example.bin' only one group data<BR>&nbsp;{<BR>&nbsp;&nbsp;printf("open file is error glyphs.txt");<BR>&nbsp;}<BR>&nbsp;fseek(fp_glyph,0,SEEK_SET);<BR>&nbsp;fseek(fp_glyph,0,SEEK_END);<BR>&nbsp;int size=ftell(fp_glyph);<BR>&nbsp;fseek(fp_glyph,0,SEEK_SET);</DIV>
<DIV><BR>&nbsp;unsigned char *datas=(unsigned char *)malloc(size);<BR>&nbsp;memset(datas,0,size);<BR>&nbsp;fread(datas,1,size,fp_glyph);<BR>&nbsp;fclose(fp_glyph);</DIV>
<DIV><BR>&nbsp;readAndAnalyse *temp_read=new readAndAnalyse();&nbsp;//analyse the data collect from&nbsp;datas<BR>&nbsp;temp_read-&gt;addFontGlyphs('a',3,datas,size);//add the datas to readAndAnalyse class's&nbsp;property </DIV>
<DIV>&nbsp;&nbsp;temp_read-&gt;addFontGlyphs('b',3,datas,size);//iteration for&nbsp;getting&nbsp;&nbsp;multi-datas&nbsp; </DIV>
<DIV>&nbsp;temp_read-&gt;addFontGlyphs('c',3,datas,size);//iteration for&nbsp;getting&nbsp;&nbsp;multi-datas<BR>&nbsp;temp_read-&gt;addFontGlyphs(-1,0,NULL,0);//this&nbsp;line&nbsp;use to store the terminative flag</DIV>
<DIV>&nbsp;delete datas;</DIV>
<DIV>&nbsp;cairo_surface_t *surface;<BR>&nbsp;cairo_t *cr;</DIV>
<DIV>&nbsp;surface = cairo_pdf_surface_create ("hell.pdf",5000,5000);<BR>&nbsp;cr = cairo_create (surface);<BR>&nbsp;newFont *myfont=new newFont();//create font_face and draw&nbsp;text<BR>&nbsp;cairo_font_face_t *font_face;<BR>&nbsp;myfont-&gt;test_user_font_face_create(&amp;font_face,temp_read-&gt;getFontGlyphs());//create the font_face&nbsp;</DIV>
<DIV>&nbsp; delete temp_read;&nbsp;<BR>&nbsp;cairo_set_source_rgb (cr, 1, 1, 1);<BR>&nbsp;cairo_paint (cr);<BR>&nbsp;myfont-&gt;test_draw(font_face,cr,"abcdefghi");//draw text<BR>&nbsp;&nbsp;delete myfont;<BR>&nbsp;&nbsp;cairo_font_face_destroy(font_face);<BR>&nbsp;cairo_destroy(cr);<BR>&nbsp;cairo_surface_destroy(surface);<BR>&nbsp;&nbsp;return 0;<BR>}<BR>In the main funtion there are two Class --readAndAnalyse and newFont </DIV>
<DIV>readAndAnalyse class main aim is get Glyphs datas from "example.bin" and store the datas in one class's property.</DIV>
<DIV>newFont class main aim is create the Font_face and draw_text</DIV>
<DIV>the attachment is the Font_face's cpp file.</DIV>
<DIV>now my trouble is there is nothing in the "hell.pdf", I found the "newfont_scaled_font_unicode_to_glyph " and "newfont_scaled_font_render_glyph" two callback function were executed only once&nbsp;in debug.</DIV>
<DIV>thank you!</DIV>
<DIV>&nbsp;</DIV>
<DIV>&gt;&gt;fenglunkuo</DIV>
<DIV>&nbsp;</DIV><br><!-- footer --><br><span title="neteasefooter"/><hr/>
<a href="http://qiye.163.com/?ft=3">网易企业邮,商务邮箱专家</a>
</span>