วิธีการทํางานกับ Core Font Management ใน Python
Aspose.Font FOSS for Python provides FontLoader เป็นจุดเข้าหลักสําหรับการอัดตัวอักษร จากเส้นทางไฟล์, แอเรย์ไบต์ หรือสตรีม. กลับ Font อัตราแสดงเมตาเดท เช่น ชื่อ, ครอบครัว, สไตล์, การนับ glyphs และการรหัสแผนที่.
คู่มือขั้นตอนตามขั้นตอนนี้
ขั้นตอนที่ 1: ติดตั้งแพคเกจ
pip install "aspose-font>=1.0.0"ขั้นตอนที่ 2: นําเข้าชั้นเรียนที่จําเป็น
from aspose_font.loader import FontLoader
from aspose_font.ttf.font import TtfFontขั้นตอน 3: อัตราการอัด Font จากเส้นทางไฟล์
Call FontLoader.open() กับเส้นทางไปยังไฟล์ตัวอักษรของคุณ. วิธีการตรวจจับรูปแบบโดยอัตโนมัติและคืนที่เหมาะสม Font กลุ่มรอง (TtfFont, CffFont, ฯลฯ:
font = FontLoader.open("Roboto-Regular.ttf")
print(font.font_name)
print(font.num_glyphs)ขั้นตอนที่ 4: เข้าถึงตัวเลขการวัด Font
การ Font.metrics property กลับ a FontMetrics วัตถุที่มีการขึ้น, การลด, ความว่างเส้น, สูงของหัวหินและวัดแบบพิมพ์อื่น ๆ สําหรับตัวอักษร:
from aspose_font.loader import FontLoader
font = FontLoader.open("Roboto-Regular.ttf")
metrics = font.metrics
print(metrics)ขั้นตอนที่ 5: เปลี่ยนรูปแบบใหม่
ส่ง Font ที่ถูกบรรจุไปยัง FontConverter.convert() กับสิ่งที่ต้องการ FontType target. วิธีการนี้จะส่งตัวอัตถุ font ใหม่ในรูปแบบที่ต้องการโดยไม่เปลี่ยนแปลงเดิม:
from aspose_font.loader import FontLoader
from aspose_font.converter import FontConverter
from aspose_font import FontType
font = FontLoader.open("Roboto-Regular.ttf")
woff2 = FontConverter.convert(font, FontType.WOFF2)ปัญหาทั่วไปและข้อกําหนด
FontType ไม่พบ การนําเข้า FontType จากระดับบนสุด aspose_font แพ็คเกจ: from aspose_font import FontType.
Font has no attribute font_name ยืนยันว่าคุณกําลังใช้เครื่องมือที่ติดต่อกับการตรวจสอบ Font ตัวอย่างที่กลับ โดย: FontLoader.open(), ไม่ใช่วัตถุไบต์ที่ไม่ถูกผลิต.
ความผิดพลาดในการรหัสในเส้นทาง Windows การผ่านเส้นทางเป็นสตริงสด: r"C:\Fonts\MyFont.ttf".
คําถามที่พบบ่อย
FontLoader รองรับรูปแบบตัวอักษรอะไร?
FontLoader.open() รองรับ TTF, OTF , CFF, ประเภท 1, WOFF , WOff2 และ EOT.
ผมสามารถอัตราการใช้งานจากไบท์ได้หรือไม่?
ใช่แล้ว. FontLoader.open() รับการรหัสทางไฟล์, ไบต์ หรือวัตถุสตรีมผ่าน source ด้วยการโต้แย้งอย่างชัดแจ้ง font_type ปารามีเตอร์.
Font.to_bytes ((() มีหรือไม่?
ไม่นะครับ. Font.to_bytes() ไม่ได้ถูกนําไปใช้ในคลาสฐาน. ใช้ FontConverter.convert() เพื่อเปลี่ยนรูปแบบ, จากนั้นใช้วิธีการ Save ของซับคลาส.