Comments (1)
You can directly change the xmlObject.
function setPageNumStyle(slide, style){
let pageNumElement = slide.powerPointFactory.pptFactory.slideFactory.content[`ppt/slides/${slide.name}.xml`]['p:sld']['p:cSld'][0]['p:spTree'][0]['p:sp'][0];
let fld = pageNumElement['p:txBody'][0]['a:p'][0]['a:fld'][0];
let styleData = {$: fld['a:rPr'][0].$};
if(style.fontSize !== undefined) styleData.$.sz = style.fontSize * 100;
if(style.fontBold !== undefined) styleData.$.b = style.fontBold ? 1 : 0;
if(style.fontItalic !== undefined) styleData.$.i = style.fontItalic ? 1 : 0;
if(style.fontUnderline !== undefined) styleData.$.u = style.fontUnderline ? 'sng' : 0;
if(style.textColor) styleData['a:solidFill'] = [{'a:srgbClr': [{$: {val: style.textColor}}]}];
if(style.fontFace){
let fontFaceAttribute = [{$: {typeface: style.fontFace, pitchFamily: 0, charset: 0}}];
styleData['a:latin'] = fontFaceAttribute;
styleData['a:cs'] = fontFaceAttribute;
}
fld['a:rPr'][0] = styleData;
}
Here's how the function works.
const PPTX = require('nodejs-pptx');
let pptx = new PPTX.Composer();
await pptx.compose(async pres => {
await pres.addSlide(slide => {
setPageNumStyle(slide, {
fontFace: 'Abadi',
fontSize: 15,
fontBold: true,
fontItalic: false,
fontUnderline: true,
textColor: '000000',
});
});
});
await pptx.save(`./set-page-num-style.pptx`);
from node-pptx.
Related Issues (20)
- Extract presenter notes?
- Project status HOT 2
- Is it possible to center an image? HOT 1
- Is it possible to duplicate a slide?
- Is it possible to merge two pptx files? HOT 2
- Is there any way to get Slide from one pptx and add it to the current pptx?
- TypeScript definitions? HOT 4
- Would you accept a PR to allow loading pptx from buffer OR file path? HOT 2
- Merging selected slides from two different presentations
- can we edit existing slide element? HOT 2
- Bug when trying to load existing présentation
- with PPT file it's not working. How can i do that?
- TypeError: zip.files.hasOwnProperty is not a function HOT 4
- multi lines was saved as 1 line HOT 2
- Slide Transition & Advance slide
- Find/Replace text, Get list of slides containing some text
- Make text bold
- npm package not updated? HOT 2
- issue
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from node-pptx.