กำหนดแบบอักษร PowerPoint ใน Java
ภาพรวม
Aspose.Slides ช่วยให้คุณใช้แบบอักษรกำหนดเองในงานนำเสนอโดยไม่ต้องติดตั้งบนระบบปฏิบัติการ คุณสามารถโหลดแบบอักษรจากโฟลเดอร์ที่กำหนดเอง, จัดหาแบบอักษรสำหรับงานนำเสนอเฉพาะผ่านแหล่งแบบอักษรระดับเอกสาร, หรือโหลดแบบอักษรภายนอกโดยตรงจากข้อมูลไบต์
แบบอักษรที่โหลดแล้วจะถูกใช้เมื่อทำการเรนเดอร์หรือส่งออกงานนำเสนอ เช่น PDF, ภาพ และรูปแบบที่สนับสนุนอื่น ๆ ซึ่งช่วยให้ผลลัพธ์ของงานนำเสนอคงที่ข้ามสภาพแวดล้อมต่าง ๆ บทความนี้ยังอธิบายวิธีตรวจสอบโฟลเดอร์แบบอักษรที่ Aspose.Slides ใช้และวิธีล้างแคชแบบอักษรหลังจากทำงานกับแบบอักษรภายนอก
การลงทะเบียนแบบอักษรกำหนดเองสำหรับการเรนเดอร์เป็นเรื่องแยกจากการฝังแบบอักษรลงในไฟล์ PPTX หากต้องการเก็บแบบอักษรไว้ภายในงานนำเสนอเอง ให้ใช้คุณลักษณะการฝังแบบอักษรอย่างชัดเจน
Aspose Slides อนุญาตให้คุณโหลดแบบอักษรเหล่านี้ด้วยเมธอด loadExternalFonts:
โหลดแบบอักษรกำหนดเอง
Aspose.Slides อนุญาตให้คุณโหลดแบบอักษรที่ใช้ในงานนำเสนอโดยไม่ต้องติดตั้งบนระบบ ซึ่งส่งผลต่อผลลัพธ์การส่งออก เช่น PDF, ภาพ, และรูปแบบที่สนับสนุนอื่น ๆ ทำให้เอกสารที่ได้ดูสอดคล้องกันข้ามสภาพแวดล้อมต่าง ๆ แบบอักษรถูกโหลดจากไดเรกทอรีที่กำหนดเอง
- ระบุโฟลเดอร์หนึ่งหรือหลายโฟลเดอร์ที่มีไฟล์แบบอักษร
- เรียกเมธอดสแตติก FontsLoader.loadExternalFonts เพื่อโหลดแบบอักษรจากโฟลเดอร์เหล่านั้น
- โหลดและเรนเดอร์/ส่งออกงานนำเสนอ
- เรียก FontsLoader.clearCache เพื่อล้างแคชแบบอักษร
ตัวอย่างโค้ดต่อไปนี้แสดงกระบวนการโหลดแบบอักษร:
// กำหนดโฟลเดอร์ที่มีไฟล์แบบอักษรกำหนดเอง.
String[] fontFolders = new String[] { externalFontFolder1, externalFontFolder2 };
// โหลดแบบอักษรกำหนดเองจากโฟลเดอร์ที่ระบุ.
FontsLoader.loadExternalFonts(fontFolders);
Presentation presentation = null;
try {
presentation = new Presentation("sample.pptx");
// เรนเดอร์/ส่งออกงานนำเสนอ (เช่น PDF, ภาพ, หรือรูปแบบอื่น) ด้วยแบบอักษรที่โหลดไว้.
presentation.save("output.pdf", SaveFormat.Pdf);
} finally {
if (presentation != null) presentation.dispose();
// ล้างแคชแบบอักษรหลังจากทำงานเสร็จ.
FontsLoader.clearCache();
}
หมายเหตุ
FontsLoader.loadExternalFonts จะเพิ่มโฟลเดอร์เพิ่มเติมลงในเส้นทางค้นหาแบบอักษร แต่จะไม่เปลี่ยนลำดับการเริ่มต้นแบบอักษร
แบบอักษรถูกเริ่มต้นตามลำดับนี้:
- เส้นทางแบบอักษรเริ่มต้นของระบบปฏิบัติการ
- เส้นทางที่โหลดผ่าน FontsLoader
รับโฟลเดอร์แบบอักษรกำหนดเอง
Aspose.Slides มีเมธอด getFontFolders เพื่อให้คุณค้นหาโฟลเดอร์แบบอักษร เมธอดนี้จะคืนค่าโฟลเดอร์ที่ถูกเพิ่มผ่านเมธอด LoadExternalFonts และโฟลเดอร์แบบอักษรของระบบ
โค้ด Java ต่อไปนี้แสดงวิธีใช้ getFontFolders:
// บรรทัดนี้แสดงโฟลเดอร์ที่ค้นหาไฟล์แบบอักษร.
// เหล่านั้นคือโฟลเดอร์ที่เพิ่มผ่านเมธอด LoadExternalFonts และโฟลเดอร์แบบอักษรของระบบ.
String[] fontFolders = FontsLoader.getFontFolders();
ระบุแบบอักษรกำหนดเองสำหรับงานนำเสนอ
Aspose.Slides มีคุณสมบัติ setDocumentLevelFontSources เพื่อให้คุณระบุแบบอักษรภายนอกที่ใช้ร่วมกับงานนำเสนอ
โค้ด Java ต่อไปนี้แสดงวิธีใช้คุณสมบัติ setDocumentLevelFontSources:
byte[] memoryFont1 = Files.readAllBytes("customfonts/CustomFont1.ttf");
byte[] memoryFont2 = Files.readAllBytes("customfonts/CustomFont2.ttf");
LoadOptions loadOptions = new LoadOptions();
loadOptions.getDocumentLevelFontSources().setFontFolders(new String[] { "assets/fonts", "global/fonts" });
loadOptions.getDocumentLevelFontSources().setMemoryFonts(new byte[][] { memoryFont1, memoryFont2 });
Presentation pres = new Presentation("MyPresentation.pptx", loadOptions);
try {
// ทำงานกับงานนำเสนอ
// CustomFont1, CustomFont2, และแบบอักษรจากโฟลเดอร์ assets\fonts & global\fonts รวมถึงโฟลเดอร์ย่อยของมัน พร้อมใช้งานในงานนำเสนอ
} finally {
if (pres != null) pres.dispose();
}
จัดการแบบอักษรภายนอก
Aspose.Slides มีเมธอด loadExternalFont(byte[] data) เพื่อให้คุณโหลดแบบอักษรภายนอกจากข้อมูลไบต์
โค้ด Java ต่อไปนี้แสดงกระบวนการโหลดแบบอักษรจากอาร์เรย์ไบต์:
FontsLoader.loadExternalFont(Files.readAllBytes(Paths.get("ARIALN.TTF")));
FontsLoader.loadExternalFont(Files.readAllBytes(Paths.get("ARIALNBI.TTF")));
FontsLoader.loadExternalFont(Files.readAllBytes(Paths.get("ARIALNI.TTF")));
try
{
Presentation pres = new Presentation("");
try {
// แบบอักษรภายนอกที่โหลดในช่วงอายุของการนำเสนอ
} finally {
}
}
finally
{
FontsLoader.clearCache();
}
คำถามที่พบบ่อย
แบบอักษรกำหนดเองส่งผลต่อการส่งออกไปยังทุกรูปแบบ (PDF, PNG, SVG, HTML) หรือไม่?
ใช่. แบบอักษรที่เชื่อมต่อจะถูกใช้โดยเรนเดอร์สำหรับทุกรูปแบบการส่งออก
แบบอักษรกำหนดเองจะถูกฝังอัตโนมัติในไฟล์ PPTX ที่ได้หรือไม่?
ไม่. การลงทะเบียนแบบอักษรสำหรับการเรนเดอร์ไม่เท่ากับการฝังลงใน PPTX หากต้องการให้แบบอักษรถูกเก็บอยู่ในไฟล์งานนำเสนอ ต้องใช้คุณลักษณะการ ฝังแบบอักษร
ฉันสามารถควบคุมพฤติกรรม fallback เมื่อแบบอักษรกำหนดเองไม่มี glyph บางตัวได้หรือไม่?
ได้. ตั้งค่า การทดแทนแบบอักษร, กฎการแทนที่, และ ชุด fallback เพื่อกำหนดว่าจะใช้แบบอักษรใดเมื่อ glyph ที่ต้องการขาดหาย
ฉันสามารถใช้แบบอักษรในคอนเทนเนอร์ Linux/Docker โดยไม่ต้องติดตั้งในระบบหรือไม่?
ได้. ชี้ไปยังโฟลเดอร์แบบอักษรของคุณเองหรือโหลดแบบอักษรจากอาร์เรย์ไบต์ วิธีนี้จะลบการพึ่งพาโฟลเดอร์แบบอักษรระบบออกจากอิมเมจคอนเทนเนอร์
เรื่องลิขสิทธิ์—ฉันสามารถฝังแบบอักษรกำหนดเองใด ๆ ได้โดยไม่มีข้อจำกัดหรือไม่?
คุณต้องรับผิดชอบต่อการปฏิบัติตามเงื่อนไขลิขสิทธิ์ของแบบอักษร เงื่อนไขอาจแตกต่างกัน; บางลิขสิทธิ์หากันการฝังหรือการใช้งานเชิงพาณิชย์ ตรวจสอบข้อตกลง EULA ของแบบอักษรก่อนแจกจ่ายผลลัพธ์.