1. ผลิตภัณฑ์
  2.   Aspose.Font
  3.   Aspose.Font FOSS for Python

Aspose.Font FOSS สำหรับ Python

ไลบรารี Python แบบโอเพนซอร์สสำหรับการโหลด, ตรวจสอบ, แปลง, และทำ subset ไฟล์ฟอนต์ TTF, OTF, CFF, WOFF, WOFF2, และ EOT.

ทำงานกับฟอนต์โดยโปรแกรมใน Python

Aspose.Font FOSS for Python เป็นชุดเครื่องมือ pure-Python สำหรับการโหลด, ตรวจสอบ, แปลง, สร้าง subset, และแสดงตัวอย่างฟอนต์ที่รองรับรูปแบบ TrueType, OpenType, CFF, Type 1, WOFF, WOFF2, และ EOT. ไลบรารีทำงานบน Python 3.10 หรือใหม่กว่าและไม่ต้องการไลบรารีฟอนต์ของ OS ภายนอกหรือการพึ่งพาเนทีฟใดๆ.

ไลบรารีเปิดเผย API ที่สะอาดสำหรับการโหลดฟอนต์ผ่าน FontLoader, การเข้าถึง glyph ผ่าน GlyphAccessor, การแปลงรูปแบบผ่าน FontConverter, การเพิ่มประสิทธิภาพเว็บผ่าน FontCleaner, การทำ subset ที่รับรู้ข้อความผ่าน FontSubsetter, และการทำแอนิเมชันฟอนต์แบบตัวแปรผ่าน AnimationPreviewBuilder. เมตาดาต้าฟอนต์เช่น ชื่อ, ครอบครัว, สไตล์, จำนวน glyph, การเข้ารหัส, และเมตริก สามารถเข้าถึงได้ผ่านคลาสฐาน Font โดยไม่ต้องพาร์สตารางไบนารีด้วยตนเอง.

Aspose.Font FOSS มีสัญญาอนุญาตแบบ MIT และสามารถติดตั้งจาก PyPI ด้วยคำสั่ง pip install เพียงคำสั่งเดียว มันเหมาะสำหรับเครื่องมือออกแบบฟอนต์, กระบวนการฟอนต์บนเว็บ, เอนจินการเรนเดอร์ glyph, และแอปพลิเคชัน Python ใด ๆ ที่ต้องการอ่าน, แปลง, หรือสร้างไฟล์ฟอนต์ สำหรับตระกูลผลิตภัณฑ์ระดับองค์กร ดู Aspose.Font — Enterprise Product Family.

การโหลดฟอนต์และการตรวจจับรูปแบบ

  • โหลดแบบอักษรจากเส้นทางไฟล์หรือไบต์ดิบด้วย FontLoader.open() และ FontLoader.load()
  • ตรวจจับรูปแบบโดยอัตโนมัติ: TTF, OTF, CFF, WOFF, WOFF2, EOT, Type 1
  • เข้าถึงข้อมูลเมตาดาต้าของฟอนต์ผ่านคลาสฐาน Font: font_name, font_family, font_style, num_glyphs
  • อ่านแผนที่การเข้ารหัส glyph ด้วย FontEncoding.unicode_to_gid() และ get_all_codepoints()
  • ตรวจสอบเมตริกของฟอนต์ด้วย FontMetrics: ascent, descent, line gap, em-square

กรณีการใช้งานทั่วไป

  • สายงานการตรวจสอบฟอนต์และการสกัดข้อมูลเมตาดาต้า
  • การตรวจสอบ CI/CD ที่ตรวจสอบชื่อฟอนต์และจำนวน glyph
  • บริการรับข้อมูลฟอนต์เว็บที่รับหลายรูปแบบอินพุต
  • เครื่องมือออกแบบฟอนต์ที่แสดงเมตาดาต้าโดยไม่ต้องใช้รันไทม์บนเดสก์ท็อป

การเข้าถึง Glyph และการตรวจสอบเส้นทาง

  • ดึง glyphs ตาม ID หรือ Unicode ด้วย GlyphAccessor.get_glyph_by_id() และ get_glyph_by_unicode()
  • แก้ไข glyphs ทั้งหมดสำหรับสตริงที่มี GlyphAccessor.get_glyphs_for_text()
  • ตรวจสอบเส้นร่าง glyph ตามคำสั่งที่พิมพ์: MoveTo, LineTo, QuadraticTo, CurveTo, ClosePath
  • เข้าถึงกล่องขอบเขตของ glyph, advance width, และ side bearings จากคุณสมบัติ Glyph properties
  • อ่านคู่เคอร์นนิงจาก KernPair เพื่อการคำนวณการจัดวางข้อความที่แม่นยำ

กรณีการใช้งานทั่วไป

  • การตรวจสอบการครอบคลุม glyph สำหรับการแสดงผลข้อความหลายภาษา
  • การสกัดโครงร่างสำหรับเส้นทาง SVG หรือการสร้างเวกเตอร์
  • การตรวจสอบตารางเคอร์นนิงในกระบวนการ QA ของฟอนต์
  • การวิจัยการจัดรูปแบบข้อความและการทดลองการจัดวางระดับต่ำ

การแปลงฟอนต์

  • แปลงระหว่าง TTF, OTF, CFF, WOFF, WOFF2, EOT และ Type 1 ด้วย FontConverter.convert()
  • ปรับประเภทเส้นโค้งเบเซียร์ด้วย CurveAdapter.quad_to_cubic() และ cubic_to_quads()
  • แปลงเส้นทาง glyph ระหว่าง quadratic และ cubic ด้วย convert_path_quad_to_cubic() และ convert_path_cubic_to_quad()

กรณีการใช้งานทั่วไป

  • กระบวนการฟอนต์เว็บที่แปลงฟอนต์ต้นแบบ TTF เป็น WOFF2 สำหรับการแจกจ่าย
  • เครื่องมือแบบอักษรที่ส่งออกไปยังหลายรูปแบบเป้าหมายจากแหล่งเดียว
  • การแปลง EOT แบบ Legacy เพื่อสแตกฟอนต์เว็บที่เข้ากันได้ย้อนหลัง
  • การทำให้รูปแบบฟอนต์เป็นมาตรฐานอัตโนมัติในกระบวนการบูรณาการต่อเนื่อง

การย่อยฟอนต์

  • แยกย่อยฟอนต์ตามข้อความ Unicode ด้วย FontSubsetter.subset_by_text()
  • ย่อยโดยรายการ ID ของ glyph ด้วย FontSubsetter.subset_by_gids()
  • สร้างชุดย่อยที่ปรับให้เหมาะกับเว็บด้วย FontSubsetter.subset_for_web()
  • ใช้โปรไฟล์พรีเซ็ตที่ตั้งชื่อด้วย FontSubsetter.subset_by_presets() และ available_presets()
  • วิเคราะห์การครอบคลุมของชุดย่อยด้วย FontSubsetter.analyze_coverage() และ analyze_web_coverage()

กรณีการใช้งานทั่วไป

  • การลดขนาด payload ของ WOFF2 สำหรับหน้าเว็บที่มีชุดอักขระจำกัด
  • การผลิตชุดย่อยของฟอนต์ตามภาษาเพื่อการปรับใช้ i18n
  • กระบวนการให้สิทธิ์ฟอนต์ที่แจกจ่ายชุดย่อยต่อหน้า
  • การเพิ่มประสิทธิภาพของแอปพลิเคชันเว็บบนมือถือ

การเพิ่มประสิทธิภาพเว็บและการแสดงตัวอย่างฟอนต์แบบแปรผัน

  • ลบตารางเก่าและบันทึกชื่อ Mac ด้วย FontCleaner.clean_for_web()
  • ตรวจสอบความเข้ากันได้ของแกนฟอนต์แบบแปรผันกับ CompatibilityChecker.compare_fonts() และ compare_variable_instances()
  • สร้างการสวิงแกน APNG แบบเคลื่อนไหวด้วย AnimationPreviewBuilder.build_axis_sweep()
  • สร้างเส้นทางแอนิเมชันหลายขั้นตอนด้วย AnimationPreviewBuilder.build_path()

กรณีการใช้งานทั่วไป

  • หน้าตัวอย่างแบบอักษรและเครื่องมือสำรวจแกนแบบโต้ตอบสำหรับโรงงานแบบอักษร
  • CI pipelines ที่ตรวจสอบพฤติกรรมของฟอนต์แบบแปรผันก่อนการจัดจำหน่าย
  • ไพป์ไลน์ประสิทธิภาพเว็บที่ละทิ้งตารางไบนารีที่ไม่จำเป็น
  • ภาพย่อการแสดงตัวอย่างฟอนต์สำหรับแอปพลิเคชันจัดการฟอนต์

โหลดไฟล์ฟอนต์

เปิดแบบอักษร TrueType หรือ OpenType จากเส้นทางไฟล์และอ่านข้อมูลเมตาเบื้องต้นของมัน.

from aspose_font.loader import FontLoader
font = FontLoader.open("Roboto-Regular.ttf")
print(font.font_name)    # e.g. "Roboto"
print(font.font_family)  # e.g. "Roboto"
print(font.num_glyphs)   # e.g. 1294

เข้าถึง glyphs ของสตริงข้อความ

ดึง glyphs ทั้งหมดสำหรับจุดรหัส Unicode และตรวจสอบเส้นร่างของพวกมัน.

from aspose_font.loader import FontLoader
font = FontLoader.open("OpenSans-Regular.otf")
glyph_id = font.encoding.unicode_to_gid(0x41)  # Unicode for A
glyph = font.glyph_accessor.get_glyph_by_id(glyph_id)
for cmd in glyph.path.commands:
    print(type(cmd).__name__, cmd)

สร้างแอนิเมชันการสไลด์แกนของ Variable Font

สร้าง APNG แบบเคลื่อนไหวที่สไลด์แกนฟอนต์แบบตัวแปรจากค่าต้นจนถึงค่าปลาย

from aspose_font.loader import FontLoader
from aspose_font.animation import AnimationPreviewBuilder

font = FontLoader.open("Roboto-VariableFont_wdth,wght.ttf")

asset = AnimationPreviewBuilder.build_axis_sweep(
    font,
    axis_tag="wdth",
    start_val=75.0,
    end_val=100.0,
    frames=3,
    fps=10,
    text="A",
    size=10.0,
    bounce=True,
)

asset.write_to("roboto-sweep-wdth.png")

ทำความสะอาดฟอนต์สำหรับการปรับใช้บนเว็บ

ลบตารางเก่าและบันทึกชื่อ Mac เพื่อลดขนาดไบนารีก่อนให้บริการเว็บ.

from aspose_font.loader import FontLoader
from aspose_font.cleaner import FontCleaner
font = FontLoader.open("Roboto-Regular.ttf")
cleaned = FontCleaner.clean_for_web(font)
# DSIG, FFTM, meta tables removed; Mac platform name records stripped

คำถามที่พบบ่อย

อะไรคือ Aspose.Font FOSS สำหรับ Python?

เป็นไลบรารี pure-Python ฟรีที่มีสัญญาอนุญาต MIT สำหรับโหลด, ตรวจสอบ, แปลงและทำ subset ฟอนต์ในรูปแบบ TTF, OTF, CFF, Type 1, WOFF, WOFF2 และ EOT ไม่ต้องพึ่งพาไลบรารีเนทีฟใดๆ

ฉันจะติดตั้ง Aspose.Font FOSS สำหรับ Python ได้อย่างไร?

เรียกใช้ pip install "aspose-font>=1.0.0". ไม่จำเป็นต้องมีการพึ่งพาระดับระบบใดๆ ไลบรารีทำงานบน Windows, macOS และ Linux พร้อมกับ Python 3.10 หรือใหม่กว่า

รูปแบบฟอนต์ใดบ้างที่รองรับ?

FontLoader.open() อ่าน TTF, OTF, CFF, Type 1, WOFF, WOFF2 และ EOT. FontConverter.convert() เขียน TTF, CFF, WOFF, และ WOFF2. EOT เป็นแบบอ่านอย่างเดียว

Font.to_bytes() มีให้ใช้งานหรือไม่?

ไม่. Font.to_bytes() ยังไม่ได้ถูกนำไปใช้ในคลาสฐาน ใช้ FontConverter.convert() เพื่อสร้าง Font ใหม่ในรูปแบบที่ต้องการ

ฉันสามารถทำ subset ฟอนต์เพื่อการส่งบนเว็บได้หรือไม่?

ใช่. FontSubsetter.subset_by_text(font, text) คืนค่า Font ใหม่ที่มีเฉพาะ glyph ที่จำเป็นสำหรับข้อความที่ระบุ FontSubsetter.subset(font, codepoints) และ subset_by_gids(font, gids) ให้การควบคุมที่ละเอียดขึ้น

  

ทรัพยากรสนับสนุนและการเรียนรู้

 ภาษาไทย