liên quan đến bài viết trước đó, đây có vẻ là một cách đáng tin cậy:
1) đọc đăng ký danh sách phông chữ Windows từ HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows NT \ CurrentVersion \ Fonts \ Bạn sẽ nhận được tên tệp và đường dẫn tệp thay thế tại đây. Tên phông chữ không hữu ích vì chúng có thể thay đổi bằng ngôn ngữ của người dùng.
2) Tải các tệp TrueType (.ttf, .ttc, .otf): Sử dụng FreeType https://www.freetype.org/). Chỉ cần khởi tạo thư viện freetype và nạp khuôn mặt với khuôn mặt FT_New_Face (thư viện, đường dẫn, 0, &).
3) Lấy phông chữ Tên gia đình bằng cách sử dụng FreeType. Sử dụng FT_Get_Sfnt_Name_Count() và FT_Get_Sfnt_Name() để lấy bảng chuỗi. Bạn sẽ cần phải kiểm tra xem mã hóa là Ansi, UTF16 hay khác, vì một số chuỗi sẽ có nhiều ngôn ngữ và mã hóa khác nhau.
4) Lấy thuộc tính TrueType OS2. Sử dụng (TT_OS2 *) FT_Get_Sfnt_Table (mặt, ft_sfnt_os2) để lấy cấu trúc OS2. Giải thích cấu trúc bằng cách sử dụng tài liệu như https://www.microsoft.com/typography/otspec/os2.htm#fc
5) Bây giờ bạn có đường dẫn tệp phông chữ, tên gia đình, thuộc tính kiểu và thông tin khác. Xây dựng danh sách các chức năng và chức năng này để tìm kiếm tệp dựa trên họ phông chữ và kiểu.
Nếu bạn có tay cầm HFONT của phông chữ, bạn có thể thử [đề xuất giải pháp] của tôi (http://stackoverflow.com/questions/16769758/get-a-font-filename-based-on-the-font- handle-hfont). Tôi không muốn thêm câu trả lời ở đây, bởi vì câu hỏi là không rõ ràng nếu bạn có một xử lý cho phông chữ hay không. –