Cuối cùng tôi đã tìm ra cách để giải quyết vấn đề này. Tôi đặt Biến môi trường FONTCONFIG_FILE và FONTCONFIG_PATH xác định vị trí của tệp fonts.conf và đường dẫn trước /etc/fonts. Vì vậy, tôi có thể thêm các phông chữ phông chữ vào dự án và xác định đường dẫn @runtime.
Biến môi trường phải được đặt trong mã của bạn trước khi bạn gọi một phương thức cần chức năng của FontConfig. Tôi đặt nó sau khi bắt đầu ứng dụng của tôi trong AppDelegate.
Đây là mã tôi đã thêm:
//Get the directory of your Application
NSString *bundlePath = [[NSBundle mainBundle] resourcePath];
//Create a String with the location of your fonts.conf file
NSString *fontconfigFile= [bundlePath stringByAppendingString:
[NSString stringWithFormat:@"/fonts/fonts.conf"]];
//Create a String with the path of the FontConfig configuration path
NSString *fontconfigPath= [bundlePath stringByAppendingString:
[NSString stringWithFormat:@"/fonts"]];
//Set the Environment Variables
setenv("FONTCONFIG_FILE", [fontconfigFile UTF8String], 0);
setenv("FONTCONFIG_PATH", [fontconfigPath UTF8String], 0);
Trong bước thứ hai tôi đã có sau đó để sửa đổi tập tin fonts.conf tôi. Tôi đã thêm thư mục phông chữ vào FC/fonts và thư mục bộ nhớ cache tới FC/cache của dự án của tôi và điều chỉnh tệp fonts.conf trên hai phần.
tôi đã thay đổi phần đầu tiên:
<!-- Font directory list -->
<dir>/usr/share/fonts</dir>
<dir>/usr/X11R6/lib/X11/fonts</dir>
<dir>~/.fonts</dir>
tới:
<!-- Font directory list -->
<dir>FC/fonts</dir>
và phần thứ hai:
<!-- Font cache directory list -->
<cachedir>/opt/local/fc1407cd/var/cache/fontconfig</cachedir>
<cachedir>~/.fontconfig</cachedir>
tới:
<!-- Font cache directory list -->
<cachedir>FC/cache</cachedir>
Sau đó, nó không sụp đổ nữa.
Nguồn
2012-07-19 16:13:20
Bạn có thể biên dịch fontConfig như thế nào. Bạn có thể chia sẻ thư viện không? –
Tôi không tự biên dịch nó. Tôi lấy nó thành một dự án khác. Bạn có thể tìm fontConfig đã biên dịch trong dự án github này: https://github.com/xil3f/podofo_iOS_sample –