Comments (7)
Any updates on this in 2020?
Any news in 2023? :)
from officegen.
Concur, it'd be awesome to construct a new PPTX object from an existing .pptx file.
from officegen.
There are two ways to frame this question:
- Narrow: can we import themes from an existing pres?
- Broad: can we use use an existing pres as the starting point (including existing slides, layouts, etc.)
The broad one would be great. Starting small, it's technically possible to import the theme from an existing presentation. As a quick hack, if we modify the source code to lib/msofficegen.js
to add the following line:
function cbMakeTheme ( data ) {
if (options.theme) return options.theme; // add this line
var theme = ... <long XML string>
return gen_private.plugs.type.msoffice.cbMakeMsOfficeBasicXml ( data ) + theme ;
}
We can then extract a theme from an existing presentation and pass it as an option:
var AdmZip = require('adm-zip'); // need to install this module
var zip = new AdmZip("/Users/me/MyTemplate.potx");
var theme = zip.readAsText("ppt/theme/theme1.xml");
var pptx = officegen({type: 'pptx', theme:theme });
Looking at the code, it's not immediately clear to me how to extend an entire document. The basic logic is to generate the entire XML as a catenation of various resource objects described as XML snippets returned by various cbMakeSomething()
callbacks.
I wonder if we can iteratively apply this narrow approach, and extend all the various such that they can either provide stock code (as today) or extract their equivalent from an existing doc.
Thinking out loud, one approach might be to unzip the file, extract each component, parse the XML using node-xml2js, and turn those into resources, which can be edited as JS objects (thus addressing issues #25 and #50) and which get turned back into XML using xmlbuilderhttps://github.com/oozcitak/xmlbuilder-js.
The risk is that maybe existing docs have components that we're not expecting, so either we're okay with these being dropped or we have a general way to iterate and turn components into resources.
from officegen.
@gradualstudent @Ziv-Barber There's a project by @edi9999 called docxtemplater:
https://github.com/edi9999/docxtemplater
which also has a work-in-progress pptx templater part.
I have tried docx templater and it works well. Haven't tried the pptx templater yet because I think @edi9999 is still working on it.
I would love to see some integration of these projects - especially the powerpoint templating and creation.
Go do some magic @Ziv-Barber
from officegen.
The base of the pptx templater is working (in docxtemplater), however you can't yet add more slides.
from officegen.
Any updates on this in 2020?
from officegen.
Any news on this? @Ziv-Barber
from officegen.
Related Issues (20)
- How to set the first line indentation for a paragraph in word?
- Can i remove Header and Footer from First page ( Title Page ) and some more queries
- Why does the table fill color not work?
- Cannot generate word file in render process for one Electron app
- How to add repeat header in table docx
- How to insert image into tableceil in docx
- how to open a word document ?
- Is addImage with svg supported for pptx file?
- How to assign color property to newline in table cell in word document ?
- 如何将word转换html,html里面的style css可以转换?
- Embedded File is still being accessed by createReadStream asynchronously even after deletion in officegen for Word Document
- Make the generated document read-only of password protected?
- Can I set a password to access Word
- How to add Number Bullet lists and Sub Number Bullet list
- How can i set auto-warp attribute to a column or cell in Excel file?
- Suggestion:Footer supports inserting tables
- May I ask if it is possible to add a background color to the Word document
- Can a transformation map be created with this library?
- How to Add Subscripts to Table Cells?
- does officegen for docx supports adding shapes ?
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 officegen.