procedure ConfigureSystemFontProvider(const Provider: IPdfSystemFontProvider; const Policy: TPdfSystemFontPolicy);
ติดตั้ง font mapper ของแอปพลิเคชันระดับโปรเซสผ่าน callback interface ของ system-font ระดับ native ใน PDFium
เรียกก่อน LoadLibrary ครั้งแรกหรือก่อนเปิดเอกสาร TPdf ใด ๆ
เรียกขณะที่ PDFium โหลดอยู่จะ raise EPdfError เพื่อไม่ให้ font handle ระดับ native มีอายุยาวกว่าการตั้งค่า provider ของมันเด็ดขาด
IPdfSystemFontProvider.ResolveFont รับ face น้ำหนัก สถานะ italic charset และ pitch family ที่ร้องขอ
คืน True พร้อมชื่อ face อาร์เรย์ไบต์ TrueType เต็มรูปแบบ TrueType Collection หรือ OpenType charset และ TTC index เสริมได้
provider อาจทำงานบน worker thread ของ PDFium จึงต้องเป็น thread-safe
exception ถูกกักไว้ที่ขอบเขต callback ระดับ native และถูกนับเป็นการตอบกลับของ provider ที่ล้มเหลว
TPdfSystemFontPolicy.Default อนุญาต fallback ระดับ native และการแทน face จำกัดฟอนต์ที่ส่งมอบให้แต่ละตัวไม่เกิน 64 MiB และเก็บผลลัพธ์คำขอได้ถึง 32 รายการใน LRU cache แบบมีขอบเขต
ตั้ง AllowDefaultFallback เป็น False เมื่อการตัดสินใจทุกครั้งเรื่องฟอนต์ที่หาไม่เจอต้องเป็นของแอปพลิเคชันเอง
ตั้ง AllowFaceSubstitution เป็น False เพื่อปฏิเสธการตอบกลับที่ชื่อ face ต่างจากชื่อที่ร้องขอ
MaxCacheEntries เป็นศูนย์จะปิดการแคชคำขอ
ConfigureSystemFontCacheGovernor ใส่ไบต์ฟอนต์ที่เก็บไว้ใต้งบ cache ใช้ร่วมกันข้าม cache ได้เพิ่มอีกชั้นหนึ่ง
GetSystemFontProviderStatistics คืน snapshot TPdfSystemFontStatistics ครอบคลุม Configured, Installed, MapRequests, CacheHits, ProviderHits, DefaultFallbackHits, RejectedProviderResponses, FailedRequests, FontDataRequests, ActiveHandles, CachedFonts, CachedFontBytes และ CacheEvictions
query snapshot ได้อย่างปลอดภัยขณะ PDFium กำลังเรนเดอร์
เรียก UnloadLibrary ก่อน ClearSystemFontProvider
การล้างจะ reset provider นโยบาย cache และสถิติ
เรียกขณะที่ PDFium ยังโหลดอยู่จะ raise EPdfError
var
Policy: TPdfSystemFontPolicy;
begin
UnloadLibrary;
Policy := TPdfSystemFontPolicy.Default;
Policy.AllowDefaultFallback := False;
ConfigureSystemFontProvider(MyFontProvider, Policy);
LoadLibrary;
end;