ปรับแต่งแบบอักษร PowerPoint ใน Python
ภาพรวม
Aspose.Slides for Python ให้คุณระบุแบบอักษรแบบกำหนดเองในขณะทำงาน เพื่อให้การเรนเดอร์งานนำเสนอทำงานได้ถูกต้องแม้ว่าแบบอักษรที่ต้องการจะไม่ได้ถูกติดตั้งบนระบบโฮสต์ ในระหว่างการส่งออกเป็น PDF หรือรูปภาพ คุณสามารถระบุโฟลเดอร์แบบอักษรหรือข้อมูลแบบอักษรในหน่วยความจำเพื่อคงรูปแบบข้อความ, เมตริกซ์ glyph, และการจัดหน้า typography สิ่งนี้ทำให้การเรนเดอร์บนเซิร์ฟเวอร์คาดการณ์ได้ในสภาพแวดล้อมที่ต่างกัน, ลดการพึ่งพาแบบอักษรระดับ OS, และป้องกันการเปลี่ยนเป็นแบบอักษรสำรองหรือการจัดหน้าใหม่ บทความนี้แสดงวิธีลงทะเบียนแหล่งแบบอักษร
Aspose.Slides ให้คุณโหลดแบบอักษรต่อไปนี้โดยใช้เมธอด load_external_font และ load_external_fonts ของคลาส FontsLoader :
- TrueType (.ttf) และ TrueType Collection (.ttc) ดูข้อมูลเพิ่มเติมที่ TrueType .
- OpenType (.otf) ดูข้อมูลเพิ่มเติมที่ OpenType .
โหลดแบบอักษรแบบกำหนดเอง
Aspose.Slides อนุญาตให้คุณโหลดแบบอักษรที่ใช้ในงานนำเสนอโดยไม่ต้องติดตั้งบนระบบ สิ่งนี้มีผลต่อผลลัพธ์การส่งออก—เช่น PDF, รูปภาพ, และรูปแบบที่สนับสนุนอื่น ๆ—เพื่อให้เอกสารที่ได้มีลักษณะสอดคล้องกันในทุกสภาพแวดล้อม แบบอักษรถูกโหลดจากไดเรกทอรีที่กำหนดเอง
- ระบุหนึ่งหรือหลายโฟลเดอร์ที่มีไฟล์แบบอักษร
- เรียกเมธอดแบบคงที่ FontsLoader.load_external_fonts เพื่อโหลดแบบอักษรจากโฟลเดอร์เหล่านั้น
- โหลดและเรนเดอร์/ส่งออกงานนำเสนอ
- เรียก FontsLoader.clear_cache เพื่อล้างแคชแบบอักษร
ตัวอย่างโค้ดต่อไปนี้แสดงกระบวนการโหลดแบบอักษร :
import aspose.slides as slides
# กำหนดโฟลเดอร์ที่มีไฟล์แบบอักษรแบบกำหนดเอง.
font_folders = [ external_font_folder1, external_font_folder2 ]
# โหลดแบบอักษรแบบกำหนดเองจากโฟลเดอร์ที่ระบุ.
slides.FontsLoader.load_external_fonts(font_folders)
with slides.Presentation("sample.pptx") as presentation:
# เรนเดอร์/ส่งออกงานนำเสนอ (เช่น PDF, รูปภาพ หรือรูปแบบอื่น) โดยใช้แบบอักษรที่โหลดไว้.
presentation.save("output.pdf", slides.export.SaveFormat.PDF)
# ล้างแคชแบบอักษรหลังจากทำงานเสร็จ.
slides.FontsLoader.clear_cache()
Note
FontsLoader.load_external_fonts เพิ่มโฟลเดอร์เพิ่มเติมไปยังเส้นทางค้นหาแบบอักษร, แต่ไม่ได้เปลี่ยนลำดับการเริ่มต้นแบบอักษร แบบอักษรถูกเริ่มต้นตามลำดับนี้ :
- เส้นทางแบบอักษรเริ่มต้นของระบบปฏิบัติการ
- เส้นทางที่โหลดผ่าน FontsLoader .
รับโฟลเดอร์แบบอักษรแบบกำหนดเอง
Aspose.Slides มีเมธอด get_font_folders เพื่อดึงรายการโฟลเดอร์แบบอักษร ซึ่งจะคืนค่าโฟลเดอร์ที่เพิ่มด้วย load_external_fonts รวมถึงโฟลเดอร์แบบอักษรของระบบ
โค้ด Python นี้แสดงวิธีใช้ get_font_folders :
import aspose.slides as slides
# การเรียกนี้คืนค่าโฟลเดอร์ที่ตรวจสอบไฟล์แบบอักษร.
# โฟลเดอร์เหล่านี้รวมถึงโฟลเดอร์ที่เพิ่มผ่านเมธอด load_external_fonts และโฟลเดอร์แบบอักษรของระบบ.
font_folders = slides.FontsLoader.get_font_folders()
ระบุแบบอักษรแบบกำหนดเองสำหรับงานนำเสนอ
Aspose.Slides มีคุณสมบัติ document_level_font_sources ที่ให้คุณระบุแบบอักษรภายนอกที่ใช้ร่วมกับงานนำเสนอ
ตัวอย่าง Python ด้านล่างแสดงวิธีใช้ document_level_font_sources :
import aspose.slides as slides
with open("CustomFont1.ttf", "br") as font1_stream:
font1_data = font1_stream.read()
with open("CustomFont2.ttf", "br") as font2_stream:
font2_data = font2_stream.read()
load_options = slides.LoadOptions()
load_options.document_level_font_sources.font_folders = ["assets\\fonts", "global\\fonts"]
load_options.document_level_font_sources.memory_fonts = [font1_data, font2_data]
with slides.Presentation("Fonts.pptx", load_options) as presentation:
# ...
# ทำงานกับงานนำเสนอ.
# CustomFont1, CustomFont2 และแบบอักษรจากโฟลเดอร์ assets\fonts และ global\fonts (รวมถึงโฟลเดอร์ย่อยของพวกมัน) สามารถใช้ได้ในงานนำเสนอ.
# ...
print(len(presentation.slides))
โหลดแบบอักษรภายนอกจากข้อมูลไบต์
Aspose.Slides มีเมธอด load_external_font เพื่อโหลดแบบอักษรภายนอกจากข้อมูลไบต์
ตัวอย่าง Python ต่อไปนี้แสดงการโหลดแบบอักษรจากอาร์เรย์ไบต์ :
import aspose.slides as slides
def read_all_bytes(file_path):
with open(file_path, "rb") as file_stream:
file_data = file_stream.read()
return file_data
# โหลดแบบอักษรภายนอกจากอาเรย์ไบต์.
slides.FontsLoader.load_external_font(read_all_bytes("ARIALN.TTF"))
slides.FontsLoader.load_external_font(read_all_bytes("ARIALNBI.TTF"))
slides.FontsLoader.load_external_font(read_all_bytes("ARIALNI.TTF"))
try:
with slides.Presentation() as presentation:
# แบบอักษรภายนอาจใช้ได้ตลอดอายุของอินสแตนซ์งานนำเสนอนี้.
print("processing")
finally:
slides.FontsLoader.clear_cache()
คำถามที่พบบ่อย
แบบอักษรแบบกำหนดเองมีผลต่อการส่งออกทุกรูปแบบ (PDF, PNG, SVG, HTML) หรือไม่?
ใช่. แบบอักษรที่เชื่อมต่อจะถูกใช้โดยเรนเดอร์ในทุกรูปแบบการส่งออก
แบบอักษรแบบกำหนดเองจะถูกฝังโดยอัตโนมัติใน PPTX ที่ได้หรือไม่?
ไม่. การลงทะเบียนแบบอักษรเพื่อการเรนเดอร์ไม่เท่ากับการฝังลงใน PPTX หากคุณต้องการให้แบบอักษรถูกบรรจุภายในไฟล์งานนำเสนอ ต้องใช้คุณลักษณะการ embedding อย่างชัดเจน
ฉันสามารถควบคุมพฤติกรรมสำรองเมื่อแบบอักษรกำหนดเองไม่มี glyph บางตัวได้หรือไม่?
ได้. ตั้งค่า font substitution, replacement rules, และ fallback sets เพื่อกำหนดว่าแบบอักษรใดจะถูกใช้เมื่อ glyph ที่ร้องขอไม่มีอยู่
ฉันสามารถใช้แบบอักษรในคอนเทนเนอร์ Linux/Docker โดยไม่ต้องติดตั้งบนระบบทั้งหมดได้หรือไม่?
ได้. ชี้ไปยังโฟลเดอร์แบบอักษรของคุณเองหรือโหลดแบบอักษรจากอาร์เรย์ไบต์ สิ่งนี้จะลบการพึ่งพาไดเรกทอรีแบบอักษรของระบบออกจากอิมเมจของคอนเทนเนอร์
เรื่องลิขสิทธิ์—ฉันสามารถฝังแบบอักษรกำหนดเองใดก็ได้โดยไม่มีข้อจำกัดหรือไม่?
คุณต้องรับผิดชอบต่อการปฏิบัติตามเงื่อนไขลิขสิทธิ์ของแบบอักษร เงื่อนไขอาจแตกต่างกัน; บางลิขสิทธิ์ห้ามการฝังหรือการใช้งานเชิงพาณิชย์ ตรวจสอบข้อตกลง EULA ของแบบอักษรก่อนเผยแพร่ผลลัพธ์เสมอ