Hi All

I have identified some issues with current TTC font implementation in windows 
environment.

The sample scenario is this:
If you try to create the font Meiryo with both bold and italic set to true , 
the returned is Meiryo Bold, and similarly if you go for Meiryo Italic, you 
will get Meiryo.

I have identified the cause for this.

For ttc fonts , the data returned by GetFontData (windows) function will have 
data for multiple fonts. So we need to extract the correct font. This is done 
by extracting font family name, font style etc and matching it against the 
input.

Currently the matching is done against only font family name. Meiryo and Meiryo 
Italic has the same family name,  Meiryo. So the code stops when it encounters 
Meiryo and returns the incorrect font.

Also there is an additional draw back with the current implementation (in my 
opinion) of matching font family name against input font name. For ttf fonts , 
I can give input as fontname='Arial Bold Italic', bold='false' , italic 
='false' and still get the correct Arial Bold Italic font. Please note that, 
here I have passed the  font full name , instead of  font family name and 
styles. If I do the same with ttc fonts , ie if I pass the font name 'Meiryo 
Bold Italic' I will not get any font as the matching is done against font 
family name. I guess font full name also needs to be considered while matching 
is done.

Most of the action happens at GetFontFromCollection() and  GetDataFromHFONT() 
in  PdfFontCache.cpp .

I guess with this information  would be helpful for someone ready to fix the 
issue.

Additionally currently there is an overloaded method for CreateFont () to 
create font from LOGFONTW structure( in windows). I guess a similar method for 
CreateFontSubset() would also be useful.

Thanks and Regards
Ali


::DISCLAIMER::
----------------------------------------------------------------------------------------------------------------------------------------------------

The contents of this e-mail and any attachment(s) are confidential and intended 
for the named recipient(s) only.
E-mail transmission is not guaranteed to be secure or error-free as information 
could be intercepted, corrupted,
lost, destroyed, arrive late or incomplete, or may contain viruses in 
transmission. The e mail and its contents
(with or without referred errors) shall therefore not attach any liability on 
the originator or HCL or its affiliates.
Views or opinions, if any, presented in this email are solely those of the 
author and may not necessarily reflect the
views or opinions of HCL or its affiliates. Any form of reproduction, 
dissemination, copying, disclosure, modification,
distribution and / or publication of this message without the prior written 
consent of authorized representative of
HCL is strictly prohibited. If you have received this email in error please 
delete it and notify the sender immediately.
Before opening any email and/or attachments, please check them for viruses and 
other defects.

----------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity planning
reports.http://sdm.link/zohodev2dev
_______________________________________________
Podofo-users mailing list
Podofo-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/podofo-users

Reply via email to