Introduction
Aspose.Font FOSS for Python provides a coherent set of classes for every common การจัดการ font task: Loading ไฟล์ fonts ในรูปแบบหลาย ๆ รูปแบบ, อ่าน metadata และการใช้งานที่สามารถทําได้ การแปลงข้อมูล glyph ระหว่างรูปแบบ,การตั้งรองสําหรับการส่งผ่านเว็บ และการทําความสะอาด ตารางไบนารีสําหรับขนาดไฟล์ที่เหมาะสม คู่มือนี้เดินผ่านความสามารถหลักแต่ละตัว ด้วยตัวอย่างโค้ดที่ใช้งาน ที่มาจาก API ของห้องสมุดที่ถูกตรวจสอบ.
แพ็คเกจ (aspose-font) มีใบอนุญาต MIT, ต้องการ Python 3.10+, และไม่มีการใช้งานที่สมบูรณ์แบบ. การพึ่งพาห้องสมุดตัวอักษรระดับ OS. ติดตั้งมันด้วย pip install aspose-font>=1.0.0.
คุณสมบัติหลัก
การอัตราค่าตัวกับ FontLoader
FontLoader เป็นจุดเข้าเดียวสําหรับการทํางาน Loading ของตัวอักษรทั้งหมด. สแตทิก open() method ยอมรับเส้นทางไฟล์ (str หรือ Path) และตรวจพบรูปแบบโดยอัตโนมัติ. load() วิธีการรับ raw bytes สําหรับ in-memory workflows. ทั้งสองกลับ a Font- แบบที่เขียน สิ่งที่คุณสามารถตรวจสอบได้ทันที.
from aspose_font.loader import FontLoader
# Load from file path — format detected automatically
font = FontLoader.open("Roboto-Regular.ttf")
# Load from raw bytes (e.g., from a network request or database blob)
with open("OpenSans-Regular.otf", "rb") as f:
font_bytes = f.read()
font = FontLoader.load(font_bytes)
การอ่านเมตาเดทของ Font ผ่านคลาสฐาน Font
เมื่อบรรจุแล้ว, Font คลาสฐานแสดงคุณสมบัติเมตาเดทมาตรฐานโดยไม่มี ที่ต้องการให้คุณวิเคราะห์ตารางตัวอักษรไบนารี คุณสมบัติของ font_name, font_family, font_style,และ num_glyphs ครอบคลุมความต้องการของ metadata ที่มักจะพบกันมากที่สุด.
font = FontLoader.open(“NotoSans-Regular.ttf”) print(f"Name: {font.font_name}") print(f"Family: {font.font_family}") print(f"Style: {font.font_style}") print(f"Glyphs: {font.num_glyphs}")
### การรหัส Glyph และการเข้าถึง
`FontEncoding` แผนที่รหัส Unicode ชี้ ID ไกลฟ์. ใช้ `unicode_to_gid()` สําหรับ คอยเด็ดเดียว หรือ `get_all_codepoints()` การประกอบรายการความครบวงจรของ แฟนท์. `GlyphAccessor` จากนั้นจะเรียกตัวอักษรตาม ID ผ่าน `get_glyph_by_id()`, โดย Unicode ผ่าน `get_glyph_by_unicode()`, หรือสําหรับรหัสข้อความผ่าน `get_glyphs_for_text()`.
font = FontLoader.open("OpenSans-Regular.otf")
# Map Unicode code point to glyph ID
glyph_id = font.encoding.unicode_to_gid(0x41) # 'A'
print(f"Glyph ID for 'A': {glyph_id}")
# Retrieve glyph object
glyph = font.glyph_accessor.get_glyph_by_id(glyph_id)
# Inspect path commands
for cmd in glyph.path.commands:
print(type(cmd).__name__, cmd)
การแปลงตัวอักษรด้วย FontConverter
FontConverter.convert() แปลงตัวอักษรที่ติดตั้งระหว่างรูปแบบที่มีการสนับสนุน. ย้ายไปยัง แฟนต์แหล่งและตัวจําแนกรูปแบบเป้าหมายเพื่อให้ได้โอกซ์แฟนท์ใหม่ในเป้นทาง การจัดการ CFF, TTF, WOFF , WOff2, EOT และ Type 1 ทั้งเป็นแหล่งและแบบที่สอง เป้าหมาย.
from aspose_font.loader import FontLoader
from aspose_font.converter import FontConverter
source = FontLoader.open("MyFont.ttf")
converted = FontConverter.convert(source, target_format="woff2")
การอัพพีเมทเว็บไซต์ด้วย FontCleaner
FontCleaner.clean_for_web() ลบตารางไบนารีที่ไม่จําเป็นสําหรับเว็บไซต์ การส่ง Font โดยเฉพาะ DSIG, FFTM และ meta ?? และสตรีป แพทฟอร์ม Mac (platform_id=1) ชื่อบันทึกจากตารางชื่อ ผลคือ binary ที่ลดเครือข่าย การใช้งานของเครื่องมือที่สามารถทําการทํางานได้โดยไม่สัมผัสเส้นทางหรือเมทริกส์. คําสําคัญตัวเลือกให้คุณ การรักษาชนิดตารางเฉพาะ หากจําเป็น.
from aspose_font.loader import FontLoader
from aspose_font.cleaner import FontCleaner
font = FontLoader.open("Roboto-Regular.ttf")
# Strip all legacy tables and Mac name records (default)
cleaned = FontCleaner.clean_for_web(font)
# Preserve specific metadata tables if required
cleaned_selective = FontCleaner.clean_for_web(
font,
drop_metadata_tables=False,
drop_legacy_tables=True,
drop_mac_names=True,
)
การตรวจสอบเส้นทาง Glyph
Every Glyph วัตถุแสดงออกแนวทางของมันเป็น GlyphPath ของใคร commands การเรียงลําดับ มีตัวอย่างที่เขียนแบบของ MoveTo, LineTo, QuadraticTo, CurveTo,และ ClosePath. คําสั่งแต่ละคํามีคุณสมบัติประสานที่เกี่ยวข้อง เช่น , CurveTo มี x1, y1, x2, y2, x, y ให้คุณสามารถสกัดหินเบซิเยอร์สดได้ ข้อมูลสําหรับการแสดงผล การสร้าง SVG หรือระบบประกอบความสะบัด.
from aspose_font.loader import FontLoader
from aspose_font import CurveTo, LineTo
font = FontLoader.open("OpenSans-Regular.otf")
glyph_id = font.encoding.unicode_to_gid(ord("A"))
glyph = font.glyph_accessor.get_glyph_by_id(glyph_id)
curves = [cmd for cmd in glyph.path.commands if isinstance(cmd, CurveTo)]
print(f"Cubic Bezier segments in 'A': {len(curves)}")
เริ่มต้นอย่างรวดเร็ว
pip install aspose-font>=1.0.0
from aspose_font.loader import FontLoader
from aspose_font.cleaner import FontCleaner
# Load, inspect, and clean a font in five lines
font = FontLoader.open("MyFont.ttf")
print(font.font_family, font.num_glyphs, "glyphs")
cleaned = FontCleaner.clean_for_web(font)
print("Font cleaned for web delivery")
รูปแบบที่สนับสนุน
| Format | Extension | Read | Write |
|---|---|---|---|
| TTF | .ttf | ✓ | ✓ |
| OTF | .otf | ✓ | ✓ |
| CFF | .cff | ✓ | ✓ |
| TYPE1 | .pfb / .pfa | ✓ | ✓ |
| WOFF | .- โว๊ฟ | ✓ | ✓ |
| WOFF2 | .woff2 | ✓ | ✓ |
| EOT | .eot | ✓ | ✓ |
หลักสูตรและใบอนุญาต
Aspose.Font FOSS for Python is MIT licensed. The source is on GitHub at aspose-font-foss/Aspose.Font-FOSS-for-Python แปลว่าการใช้งานที่มีความสะดวกสบาย และมีความสามารถในการเขียนแบบพีชั่น และแพ็คเกจอยู่บน PyPI เป็น aspose-font.