ไลบรารี Python สำหรับการอ่านฟอนต์

API Python แบบโอเพนซอร์สที่ช่วยให้นักพัฒนาซอฟต์แวร์และนักออกแบบสามารถจัดการ แก้ไข และวิเคราะห์ฟอนต์ได้อย่างง่ายดาย

FontTools มีบทบาทสำคัญในด้านการออกแบบ, การสร้างแบรนด์, และการสื่อสาร, และฟอนต์เป็นองค์ประกอบพื้นฐานของความสวยงามทางสายตา ในยุคดิจิทัล การจัดการและการปรับแต่งฟอนต์กลายเป็นสิ่งที่สำคัญมากขึ้น เครื่องมือที่ทรงพลังและได้รับความนิยมในหมู่นักพัฒนาและนักออกแบบคือไลบรารี FontTools FontTools เป็นไลบรารี Python แบบโอเพนซอร์สที่หลากหลายซึ่งให้ชุดเครื่องมือครบวงจรสำหรับการทำงานกับฟอนต์และได้กลายเป็นเครื่องมือที่ทรงพลังสำหรับผู้หลงใหลในฟอนต์, นักออกแบบ, นักพัฒนา, และนักพิมพ์ตัวอักษรเช่นกัน ชุดคุณสมบัติที่กว้างขวางของมันร่วมกับอินเทอร์เฟซที่ใช้ Python ทำให้เป็นตัวเลือกที่ยอดเยี่ยมสำหรับงานและโครงการที่เกี่ยวกับฟอนต์

FontTools เป็นไลบรารีโอเพนซอร์สที่ช่วยให้นักพัฒนาซอฟต์แวร์สามารถโต้ตอบกับไฟล์ฟอนต์ได้โดยโปรแกรม มันมีฟังก์ชันการทำงานหลากหลายสำหรับการจัดการ แก้ไข และวิเคราะห์ฟอนต์ รองรับคุณสมบัติต่าง ๆ เช่น การจัดการฟอนต์ในหลายรูปแบบ การดำเนินการแก้ไข glyph ขั้นพื้นฐาน การรวมฟอนต์ขั้นสูง การลบ glyph เดียว การสนับสนุนตาราง SFNT การระบุและใช้งานค่า SFNT ต่าง ๆ การแก้ไขเส้นโค้งของ glyph การปรับเมตริกของฟอนต์ การเปลี่ยนการเข้ารหัสฟอนต์ การเพิ่มหรือเอาตารางออก การแปลงคำนิยามเลย์เอาต์ระหว่างระบบเลย์เอาต์ต่าง ๆ การค้นหาและแก้ไขสตริงชื่อ ฯลฯ

ไลบรารี FontTools ช่วยให้นักพัฒนาซอฟต์แวร์สามารถเข้าถึง แก้ไข และวิเคราะห์ส่วนต่าง ๆ ของไฟล์ฟอนต์ได้โดยอัตโนมัติ รองรับหลายรูปแบบฟอนต์ รวมถึง TrueType (TTF), OpenType (OTF), AFM, ในระดับหนึ่งของ Type 1, และบางรูปแบบเฉพาะของ Mac ทำให้เป็นตัวเลือกที่หลากหลายสำหรับการทำงานกับฟอนต์ประเภทต่าง ๆ FontTools ได้รับประโยชน์จากชุมชนที่คึกคักและสนับสนุน โครงการเป็นโอเพนซอร์สและได้รับการดูแลอย่างต่อเนื่อง พร้อมอัปเดตและแก้ไขบั๊กเป็นประจำ ไม่ว่าคุณจะทำการอัตโนมัติการจัดการฟอนต์ ปรับแต่งแบบอักษรอย่างละเอียด หรือทำการวิเคราะห์ฟอนต์อย่างละเอียด FontTools มีเครื่องมือและความยืดหยุ่นที่จำเป็นเพื่อให้คุณบรรลุเป้าหมายได้อย่างมีประสิทธิภาพ

Previous Next

เริ่มต้นใช้งาน FontTools

FontTools ต้องการ Python 3.8 หรือใหม่กว่า วิธีที่แนะนำในการติดตั้ง FontTools คือการใช้ PyPI โปรดใช้คำสั่งต่อไปนี้เพื่อการติดตั้งที่ราบรื่น.

ติดตั้ง FontTools ผ่าน NuGet

 pip install fonttools 

คุณยังสามารถติดตั้งด้วยตนเอง; ดาวน์โหลดไฟล์ปล่อยล่าสุดโดยตรงจากที่เก็บ GitHub repository.

การแก้ไขและจัดการฟอนต์ผ่าน API ของ Python

ไลบรารี FontTools แบบเปิดใช้งานง่ายและมีคุณลักษณะสำคัญหลายอย่างที่ช่วยให้นักพัฒนาซอฟต์แวร์สามารถจัดการฟอนต์ในหลายรูปแบบภายในแอปพลิเคชัน Python ของพวกเขา มันอนุญาตให้พวกเขาดึงข้อมูลจากไฟล์ฟอนต์, แก้ไขโครงร่าง glyph, จัดการเมตริก, และแม้กระทั่งสร้างฟอนต์ใหม่ตั้งแต่ต้น, ทำงานอัตโนมัติงานที่ทำซ้ำเกี่ยวกับฟอนต์ เป็นต้น การใช้ไลบรารี FontTools นักพัฒนาซอฟต์แวร์ยังสามารถแก้ไขเส้นโค้ง glyph, ปรับเมตริก, เปลี่ยนการเข้ารหัส, และเพิ่มหรือลบตาราง ความยืดหยุ่นนี้ทำให้ดีไซเนอร์สามารถปรับแต่งฟอนต์ให้ตรงตามความต้องการเฉพาะหรือสร้างเวอร์ชันที่กำหนดเองสำหรับโครงการของพวกเขาได้

วิธีการแก้ไขเส้นทางโครงร่างผ่าน API ของ Python?

path_orig = get_outline(font, "a")
startdraw(200,200)

paths = []
for i in path_orig:
    if i[0] == 'moveTo':
        path = draw.BezierPath()
        path.moveTo((i[1][0]))
    if i[0] == 'lineTo':
        path.lineTo((i[1][0]))
    if i[0] == 'qCurveTo':
        path.qCurveTo(*(i[1]))
    if i[0] == 'closePath':
        path.closePath()
        paths.append(path)

finalpath = paths[0].difference(paths[1])
finalpath.scale(0.3) #let's scale it down!
draw.fill(0.5)
draw.stroke(0)
draw.drawPath(finalpath)
show()

การจัดการ Glyph ผ่าน API ของ Python

ไลบรารี FontTools แบบโอเพนซอร์สทำให้ผู้พัฒนาซอฟต์แวร์สามารถจัดการ glyph แต่ละตัวได้อย่างง่ายดายโดยใช้โปรแกรม มันให้วิธีการเข้าถึงและแก้ไขโครงร่าง glyph, เมตริกส์, และแอตทริบิวต์ต่าง ๆ ทำให้ผู้ใช้มีความยืดหยุ่นในการปรับแต่งฟอนต์ตามความต้องการเฉพาะ ไม่ว่าจะเป็นการปรับคู่เคอร์นนิง, การเปลี่ยนรูปทรง glyph, การเพิ่มลิการ์, หรือการเปรียบเทียบโครงร่าง glyph, FontTools ทำให้กระบวนการจัดการ glyph ง่ายขึ้น ตัวอย่างต่อไปนี้แสดงวิธีเปรียบเทียบโครงร่างของ glyph สองตัวและแสดงผลลัพธ์โดยใช้โค้ด Python.

วิธีเปรียบเทียบโครงร่างของ Glyph สองตัวโดยใช้ API ของ Python?

from fontTools.ttLib import TTFont
from fontTools.pens.recordingPen import RecordingPen

font = TTFont(filename)
cmap = font.getBestCmap()
gs = font.getGlyphSet()

g1 = gs[cmap[ord("A")]]
g2 = gs[cmap[ord("B")]]

p1 = RecordingPen()
p2 = RecordingPen()

g1.draw(p1)
g2.draw(p2)

print(p1.value == p2.value)

การสร้างและแปลงฟอนต์ผ่าน API ของ Python

ไลบรารี FontTools แบบโอเพนซอร์สมีฟังก์ชันการทำงานเพื่อสร้างไฟล์ฟอนต์ใหม่หรือแปลงไฟล์ที่มีอยู่เป็นรูปแบบต่าง ๆ ฟีเจอร์นี้มีประโยชน์อย่างยิ่งสำหรับนักออกแบบและนักพัฒนาที่ต้องการสร้างฟอนต์แบบกำหนดเองหรือปรับฟอนต์ให้เหมาะกับแพลตฟอร์มเฉพาะ ด้วย FontTools ผู้ใช้สามารถสร้างอินสแตนซ์ฟอนต์ที่มีน้ำหนัก, สไตล์, และความแปรผันต่าง ๆ หรือแปลงฟอนต์ระหว่างรูปแบบ TrueType และ OpenType ได้อย่างราบรื่น ตัวอย่างต่อไปนี้แสดงวิธีแปลงรูปแบบ CFF เป็น CFF2 โดยใช้คำสั่ง Python.

 ไทย