pptx-embed-fonts
v0.0.5
Published
Embed fonts in pptx files
Maintainers
Readme
pptx-embed-fonts
A JavaScript library for embedding fonts in PPTX files, with seamless integration support for pptxgenjs.
✨ Features
- 🎯 Font Embedding: Support for TTF, EOT, OTF and WOFF format font file embedding
- 🔌 pptxgenjs Integration: Seamless integration with pptxgenjs
- 📱 Cross-platform: Support for Node.js and browser environments
- 📦 TypeScript Support: Complete type definitions
Edit on CodeSandbox
📦 Installation
npm install pptx-embed-fonts
# or
yarn add pptx-embed-fonts
# or
pnpm add pptx-embed-fonts🚀 Quick Start
Basic Usage
import PPTXEmbedFonts from "pptx-embed-fonts";
// Create instance
const embedFonts = new PPTXEmbedFonts();
// Load PPTX file
const pptxBuffer = await fetch("presentation.pptx").then((r) =>
r.arrayBuffer()
);
await embedFonts.load(pptxBuffer);
// Add font
const fontBuffer = await fetch("font.ttf").then((r) => r.arrayBuffer());
await embedFonts.addFontFromTTF("MyFont", fontBuffer);
const result = await embedFonts.save();Integration with pptxgenjs
import pptxgenjs from "pptxgenjs";
import { withPPTXEmbedFonts } from "pptx-embed-fonts/pptxgenjs";
// Create enhanced version of pptxgenjs
const EnhancedPPTXGenJS = withPPTXEmbedFonts(pptxgenjs);
const pptx = new EnhancedPPTXGenJS();
// Add font
const fontBuffer = await fetch("font.ttf").then((r) => r.arrayBuffer());
await pptx.addFont({
fontFace: "MyFont",
fontFile: fontBuffer,
fontType: "ttf",
});
// Create slide content
const slide = pptx.addSlide();
slide.addText("Hello World", {
fontFace: "MyFont",
fontSize: 24,
});
// Automatically embed fonts when exporting
const pptxFile = await pptx.writeFile({
fileName: "example.pptx",
});📚 API Reference
PPTXEmbedFonts Class
Constructor
new PPTXEmbedFonts(zip?: JSZip)Methods
load(fileBuffer: ArrayBuffer): Promise<void>
Load PPTX file buffer
loadZip(zip: JSZip): Promise<void>
Load JSZip instance
addFontFromTTF(fontName: string, ttfFile: ArrayBuffer): Promise<void>
Add TTF format font
addFontFromOTF(fontName: string, otfFile: ArrayBuffer): Promise<void>
Add OTF format font
addFontFromEOT(fontName: string, eotFile: ArrayBuffer): Promise<void>
Add EOT format font
addFontFromWOFF(fontName: string, woffFile: ArrayBuffer): Promise<void>
Add WOFF format font
getFontInfo(fontBuffer: ArrayBuffer): any
Get font information
updateFiles(): Promise<void>
Update font-related configurations in PPTX file
save(): Promise<ArrayBuffer | Buffer>
Save and return the updated file
withPPTXEmbedFonts Function
Parameters
pptxgen: typeof pptxgenjs- pptxgenjs class
Return Value
Enhanced version of pptxgenjs class with the following additional methods:
addFont(options): Promise<void>
interface AddFontOptions {
fontFace: string;
fontFile: ArrayBuffer;
fontType: "ttf" | "eot" | "woff" | "otf";
}getFontInfo(fontFile: ArrayBuffer): any
Get font information
🔗 Related Links
- pptxgenjs - PowerPoint file generation library
- JSZip - File compression library
- opentype.js - Font parsing library
