Made demo files into typescript files
This commit is contained in:
@ -1,20 +0,0 @@
|
|||||||
const docx = require('../build');
|
|
||||||
const fs = require('fs');
|
|
||||||
|
|
||||||
var doc = new docx.Document();
|
|
||||||
|
|
||||||
var paragraph = new docx.Paragraph("Hello World");
|
|
||||||
var institutionText = new docx.TextRun("University College London").bold();
|
|
||||||
var dateText = new docx.TextRun("5th Dec 2015").tab().bold();
|
|
||||||
paragraph.addRun(institutionText);
|
|
||||||
paragraph.addRun(dateText);
|
|
||||||
|
|
||||||
doc.addParagraph(paragraph);
|
|
||||||
|
|
||||||
var packer = new docx.Packer();
|
|
||||||
|
|
||||||
packer.toBuffer(doc).then((buffer) => {
|
|
||||||
fs.writeFileSync('My Document.docx', buffer);
|
|
||||||
});
|
|
||||||
|
|
||||||
console.log('Document created successfully at project root!');
|
|
20
demo/demo1.ts
Normal file
20
demo/demo1.ts
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
// Simple example to add text to a document
|
||||||
|
// Import from 'docx' rather than '../build' if you install from npm
|
||||||
|
import * as fs from "fs";
|
||||||
|
import { Document, Packer, Paragraph, TextRun } from "../build";
|
||||||
|
|
||||||
|
const doc = new Document();
|
||||||
|
|
||||||
|
const paragraph = new Paragraph("Hello World");
|
||||||
|
const institutionText = new TextRun("Foo Bar").bold();
|
||||||
|
const dateText = new TextRun("Github is the best").tab().bold();
|
||||||
|
paragraph.addRun(institutionText);
|
||||||
|
paragraph.addRun(dateText);
|
||||||
|
|
||||||
|
doc.addParagraph(paragraph);
|
||||||
|
|
||||||
|
const packer = new Packer();
|
||||||
|
|
||||||
|
packer.toBuffer(doc).then((buffer) => {
|
||||||
|
fs.writeFileSync("My Document.docx", buffer);
|
||||||
|
});
|
@ -1,8 +1,11 @@
|
|||||||
const docx = require("../build");
|
// Add images to header and footer
|
||||||
|
// Import from 'docx' rather than '../build' if you install from npm
|
||||||
|
import * as fs from "fs";
|
||||||
|
import { Document, Packer, Paragraph, TextRun } from "../build";
|
||||||
|
|
||||||
const PHONE_NUMBER = "07534563401";
|
const PHONE_NUMBER = "07534563401";
|
||||||
const PROFILE_URL = "https://www.linkedin.com/in/dolan1";
|
const PROFILE_URL = "https://www.linkedin.com/in/dolan1";
|
||||||
const EMAIL = "docx@docx.com";
|
const EMAIL = "docx@com";
|
||||||
|
|
||||||
const experiences = [
|
const experiences = [
|
||||||
{
|
{
|
||||||
@ -122,13 +125,13 @@ const achievements = [
|
|||||||
];
|
];
|
||||||
|
|
||||||
class DocumentCreator {
|
class DocumentCreator {
|
||||||
create(data) {
|
public create(data): Document {
|
||||||
const experiences = data[0];
|
const experiences = data[0];
|
||||||
const educations = data[1];
|
const educations = data[1];
|
||||||
const skills = data[2];
|
const skills = data[2];
|
||||||
const achivements = data[3];
|
const achivements = data[3];
|
||||||
const document = new docx.Document();
|
const document = new Document();
|
||||||
document.addParagraph(new docx.Paragraph("Dolan Miu").title());
|
document.addParagraph(new Paragraph("Dolan Miu").title());
|
||||||
|
|
||||||
document.addParagraph(this.createContactInfo(PHONE_NUMBER, PROFILE_URL, EMAIL));
|
document.addParagraph(this.createContactInfo(PHONE_NUMBER, PROFILE_URL, EMAIL));
|
||||||
document.addParagraph(this.createHeading("Education"));
|
document.addParagraph(this.createHeading("Education"));
|
||||||
@ -181,23 +184,23 @@ class DocumentCreator {
|
|||||||
document.addParagraph(this.createHeading("References"));
|
document.addParagraph(this.createHeading("References"));
|
||||||
|
|
||||||
document.addParagraph(
|
document.addParagraph(
|
||||||
new docx.Paragraph(
|
new Paragraph(
|
||||||
"Dr. Dean Mohamedally Director of Postgraduate Studies Department of Computer Science, University College London Malet Place, Bloomsbury, London WC1E d.mohamedally@ucl.ac.uk",
|
"Dr. Dean Mohamedally Director of Postgraduate Studies Department of Computer Science, University College London Malet Place, Bloomsbury, London WC1E d.mohamedally@ucl.ac.uk",
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
document.addParagraph(new docx.Paragraph("More references upon request"));
|
document.addParagraph(new Paragraph("More references upon request"));
|
||||||
document.addParagraph(
|
document.addParagraph(
|
||||||
new docx.Paragraph(
|
new Paragraph(
|
||||||
"This CV was generated in real-time based on my Linked-In profile from my personal website www.dolan.bio.",
|
"This CV was generated in real-time based on my Linked-In profile from my personal website www.dolan.bio.",
|
||||||
).center(),
|
).center(),
|
||||||
);
|
);
|
||||||
return document;
|
return document;
|
||||||
}
|
}
|
||||||
|
|
||||||
createContactInfo(phoneNumber, profileUrl, email) {
|
createContactInfo(phoneNumber: string, profileUrl: string, email: string) {
|
||||||
const paragraph = new docx.Paragraph().center();
|
const paragraph = new Paragraph().center();
|
||||||
const contactInfo = new docx.TextRun(`Mobile: ${phoneNumber} | LinkedIn: ${profileUrl} | Email: ${email}`);
|
const contactInfo = new TextRun(`Mobile: ${phoneNumber} | LinkedIn: ${profileUrl} | Email: ${email}`);
|
||||||
const address = new docx.TextRun("Address: 58 Elm Avenue, Kent ME4 6ER, UK").break();
|
const address = new TextRun("Address: 58 Elm Avenue, Kent ME4 6ER, UK").break();
|
||||||
|
|
||||||
paragraph.addRun(contactInfo);
|
paragraph.addRun(contactInfo);
|
||||||
paragraph.addRun(address);
|
paragraph.addRun(address);
|
||||||
@ -206,17 +209,17 @@ class DocumentCreator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
createHeading(text) {
|
createHeading(text) {
|
||||||
return new docx.Paragraph(text).heading1().thematicBreak();
|
return new Paragraph(text).heading1().thematicBreak();
|
||||||
}
|
}
|
||||||
|
|
||||||
createSubHeading(text) {
|
createSubHeading(text) {
|
||||||
return new docx.Paragraph(text).heading2();
|
return new Paragraph(text).heading2();
|
||||||
}
|
}
|
||||||
|
|
||||||
createInstitutionHeader(institutionName, dateText) {
|
createInstitutionHeader(institutionName, dateText) {
|
||||||
const paragraph = new docx.Paragraph().maxRightTabStop();
|
const paragraph = new Paragraph().maxRightTabStop();
|
||||||
const institution = new docx.TextRun(institutionName).bold();
|
const institution = new TextRun(institutionName).bold();
|
||||||
const date = new docx.TextRun(dateText).tab().bold();
|
const date = new TextRun(dateText).tab().bold();
|
||||||
|
|
||||||
paragraph.addRun(institution);
|
paragraph.addRun(institution);
|
||||||
paragraph.addRun(date);
|
paragraph.addRun(date);
|
||||||
@ -225,8 +228,8 @@ class DocumentCreator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
createRoleText(roleText) {
|
createRoleText(roleText) {
|
||||||
const paragraph = new docx.Paragraph();
|
const paragraph = new Paragraph();
|
||||||
const role = new docx.TextRun(roleText).italic();
|
const role = new TextRun(roleText).italic();
|
||||||
|
|
||||||
paragraph.addRun(role);
|
paragraph.addRun(role);
|
||||||
|
|
||||||
@ -234,32 +237,32 @@ class DocumentCreator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
createBullet(text) {
|
createBullet(text) {
|
||||||
return new docx.Paragraph(text).bullet();
|
return new Paragraph(text).bullet();
|
||||||
}
|
}
|
||||||
|
|
||||||
createSkillList(skills) {
|
createSkillList(skills) {
|
||||||
const paragraph = new docx.Paragraph();
|
const paragraph = new Paragraph();
|
||||||
const skillConcat = skills.map((skill) => skill.name).join(", ") + ".";
|
const skillConcat = skills.map((skill) => skill.name).join(", ") + ".";
|
||||||
|
|
||||||
paragraph.addRun(new docx.TextRun(skillConcat));
|
paragraph.addRun(new TextRun(skillConcat));
|
||||||
|
|
||||||
return paragraph;
|
return paragraph;
|
||||||
}
|
}
|
||||||
|
|
||||||
createAchivementsList(achivements) {
|
public createAchivementsList(achivements): Paragraph {
|
||||||
const arr = [];
|
const arr = [];
|
||||||
|
|
||||||
for (const achievement of achivements) {
|
for (const achievement of achivements) {
|
||||||
arr.push(new docx.Paragraph(achievement.name).bullet());
|
arr.push(new Paragraph(achievement.name).bullet());
|
||||||
}
|
}
|
||||||
|
|
||||||
return arr;
|
return arr;
|
||||||
}
|
}
|
||||||
|
|
||||||
createInterests(interests) {
|
createInterests(interests) {
|
||||||
const paragraph = new docx.Paragraph();
|
const paragraph = new Paragraph();
|
||||||
|
|
||||||
paragraph.addRun(new docx.TextRun(interests));
|
paragraph.addRun(new TextRun(interests));
|
||||||
return paragraph;
|
return paragraph;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -308,7 +311,8 @@ const documentCreator = new DocumentCreator();
|
|||||||
|
|
||||||
const doc = documentCreator.create([experiences, education, skills, achievements]);
|
const doc = documentCreator.create([experiences, education, skills, achievements]);
|
||||||
|
|
||||||
var exporter = new docx.LocalPacker(doc);
|
const packer = new Packer();
|
||||||
exporter.pack("Dolan Miu CV");
|
|
||||||
|
|
||||||
console.log("Document created successfully at project root!");
|
packer.toBuffer(doc).then((buffer) => {
|
||||||
|
fs.writeFileSync("My Document.docx", buffer);
|
||||||
|
});
|
@ -1,7 +1,9 @@
|
|||||||
const docx = require("../build");
|
// Setting styles with JavaScript configuration
|
||||||
const fs = require('fs');
|
// Import from 'docx' rather than '../build' if you install from npm
|
||||||
|
import * as fs from "fs";
|
||||||
|
import { Document, Packer, Paragraph, Table } from "../build";
|
||||||
|
|
||||||
const doc = new docx.Document(undefined, {
|
const doc = new Document(undefined, {
|
||||||
top: 700,
|
top: 700,
|
||||||
right: 700,
|
right: 700,
|
||||||
bottom: 700,
|
bottom: 700,
|
||||||
@ -52,7 +54,7 @@ doc.Styles.createParagraphStyle("normalPara", "Normal Para")
|
|||||||
.font("Calibri")
|
.font("Calibri")
|
||||||
.quickFormat()
|
.quickFormat()
|
||||||
.leftTabStop(453.543307087)
|
.leftTabStop(453.543307087)
|
||||||
.maxRightTabStop(453.543307087)
|
.maxRightTabStop()
|
||||||
.size(26)
|
.size(26)
|
||||||
.spacing({ line: 276, before: 20 * 72 * 0.1, after: 20 * 72 * 0.05 });
|
.spacing({ line: 276, before: 20 * 72 * 0.1, after: 20 * 72 * 0.05 });
|
||||||
|
|
||||||
@ -70,7 +72,7 @@ doc.Styles.createParagraphStyle("aside", "Aside")
|
|||||||
.next("Normal")
|
.next("Normal")
|
||||||
.color("999999")
|
.color("999999")
|
||||||
.italics()
|
.italics()
|
||||||
.indent(720)
|
.indent({ left: 720 })
|
||||||
.spacing({ line: 276 });
|
.spacing({ line: 276 });
|
||||||
|
|
||||||
doc.Styles.createParagraphStyle("wellSpaced", "Well Spaced")
|
doc.Styles.createParagraphStyle("wellSpaced", "Well Spaced")
|
||||||
@ -105,29 +107,35 @@ doc.createParagraph("Sir,").style("normalPara");
|
|||||||
|
|
||||||
doc.createParagraph("BRIEF DESCRIPTION").style("normalPara");
|
doc.createParagraph("BRIEF DESCRIPTION").style("normalPara");
|
||||||
|
|
||||||
var table = new docx.Table(4, 4);
|
const table = new Table(4, 4);
|
||||||
var contentParagraph = table
|
table
|
||||||
.getRow(0)
|
.getRow(0)
|
||||||
.getCell(0)
|
.getCell(0)
|
||||||
.addContent(new docx.Paragraph("Pole No."));
|
.addContent(new Paragraph("Pole No."));
|
||||||
table.properties.width = 10000;
|
table.Properties.width = 10000;
|
||||||
doc.addTable(table);
|
doc.addTable(table);
|
||||||
|
|
||||||
var arrboth = [{
|
const arrboth = [
|
||||||
|
{
|
||||||
image: "./demo/images/pizza.gif",
|
image: "./demo/images/pizza.gif",
|
||||||
comment: "Test"
|
comment: "Test",
|
||||||
}, {
|
},
|
||||||
|
{
|
||||||
image: "./demo/images/pizza.gif",
|
image: "./demo/images/pizza.gif",
|
||||||
comment: "Test 2"
|
comment: "Test 2",
|
||||||
}];
|
},
|
||||||
|
];
|
||||||
|
|
||||||
arrboth.forEach(function(item) {
|
arrboth.forEach((item) => {
|
||||||
const para = doc.createParagraph();
|
const para = doc.createParagraph();
|
||||||
para.createTextRun(doc.createImage(fs.readFileSync(item.image)));
|
para.addImage(doc.createImage(fs.readFileSync(item.image)));
|
||||||
para.properties.width = 60;
|
para.Properties.width = 60;
|
||||||
para.properties.height = 90;
|
para.Properties.height = 90;
|
||||||
doc.createParagraph(item.comment).style("normalPara2");
|
doc.createParagraph(item.comment).style("normalPara2");
|
||||||
});
|
});
|
||||||
|
|
||||||
var exporter = new docx.LocalPacker(doc);
|
const packer = new Packer();
|
||||||
exporter.pack("My Document");
|
|
||||||
|
packer.toBuffer(doc).then((buffer) => {
|
||||||
|
fs.writeFileSync("My Document.docx", buffer);
|
||||||
|
});
|
@ -1,9 +1,11 @@
|
|||||||
const docx = require("../build");
|
// Scaling images
|
||||||
const fs = require('fs');
|
// Import from 'docx' rather than '../build' if you install from npm
|
||||||
|
import * as fs from "fs";
|
||||||
|
import { Document, Packer, Paragraph } from "../build";
|
||||||
|
|
||||||
var doc = new docx.Document();
|
const doc = new Document();
|
||||||
|
|
||||||
var paragraph = new docx.Paragraph("Hello World");
|
const paragraph = new Paragraph("Hello World");
|
||||||
doc.addParagraph(paragraph);
|
doc.addParagraph(paragraph);
|
||||||
|
|
||||||
const image = doc.createImage(fs.readFileSync("./demo/images/pizza.gif"));
|
const image = doc.createImage(fs.readFileSync("./demo/images/pizza.gif"));
|
||||||
@ -12,11 +14,12 @@ const image3 = doc.createImage(fs.readFileSync("./demo/images/pizza.gif"));
|
|||||||
const image4 = doc.createImage(fs.readFileSync("./demo/images/pizza.gif"));
|
const image4 = doc.createImage(fs.readFileSync("./demo/images/pizza.gif"));
|
||||||
|
|
||||||
image.scale(0.5);
|
image.scale(0.5);
|
||||||
image2.scale(1)
|
image2.scale(1);
|
||||||
image3.scale(2.5);
|
image3.scale(2.5);
|
||||||
image4.scale(4);
|
image4.scale(4);
|
||||||
|
|
||||||
var exporter = new docx.LocalPacker(doc);
|
const packer = new Packer();
|
||||||
exporter.pack("My Document");
|
|
||||||
|
|
||||||
console.log("Document created successfully at project root!");
|
packer.toBuffer(doc).then((buffer) => {
|
||||||
|
fs.writeFileSync("My Document.docx", buffer);
|
||||||
|
});
|
@ -1,26 +0,0 @@
|
|||||||
// This example shows 3 styles
|
|
||||||
const fs = require('fs');
|
|
||||||
const docx = require('../build');
|
|
||||||
|
|
||||||
const styles = fs.readFileSync('./demo/assets/custom-styles.xml', 'utf-8');
|
|
||||||
const doc = new docx.Document({
|
|
||||||
title: 'Title',
|
|
||||||
externalStyles: styles
|
|
||||||
});
|
|
||||||
|
|
||||||
doc.createParagraph('Cool Heading Text').heading1();
|
|
||||||
|
|
||||||
let paragraph = new docx.Paragraph('This is a custom named style from the template "MyFancyStyle"');
|
|
||||||
paragraph.style('MyFancyStyle');
|
|
||||||
doc.addParagraph(paragraph);
|
|
||||||
|
|
||||||
doc.createParagraph('Some normal text')
|
|
||||||
|
|
||||||
doc.createParagraph('MyFancyStyle again').style('MyFancyStyle');
|
|
||||||
paragraph.style('MyFancyStyle');
|
|
||||||
doc.addParagraph(paragraph);
|
|
||||||
|
|
||||||
var exporter = new docx.LocalPacker(doc);
|
|
||||||
exporter.pack('My Document');
|
|
||||||
|
|
||||||
console.log('Document created successfully at project root!');
|
|
28
demo/demo13.ts
Normal file
28
demo/demo13.ts
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
// This example shows 3 styles using XML styles
|
||||||
|
// Import from 'docx' rather than '../build' if you install from npm
|
||||||
|
import * as fs from "fs";
|
||||||
|
import { Document, Packer, Paragraph } from "../build";
|
||||||
|
|
||||||
|
const styles = fs.readFileSync("./demo/assets/custom-styles.xml", "utf-8");
|
||||||
|
const doc = new Document({
|
||||||
|
title: "Title",
|
||||||
|
externalStyles: styles,
|
||||||
|
});
|
||||||
|
|
||||||
|
doc.createParagraph("Cool Heading Text").heading1();
|
||||||
|
|
||||||
|
const paragraph = new Paragraph('This is a custom named style from the template "MyFancyStyle"');
|
||||||
|
paragraph.style("MyFancyStyle");
|
||||||
|
doc.addParagraph(paragraph);
|
||||||
|
|
||||||
|
doc.createParagraph("Some normal text");
|
||||||
|
|
||||||
|
doc.createParagraph("MyFancyStyle again").style("MyFancyStyle");
|
||||||
|
paragraph.style("MyFancyStyle");
|
||||||
|
doc.addParagraph(paragraph);
|
||||||
|
|
||||||
|
const packer = new Packer();
|
||||||
|
|
||||||
|
packer.toBuffer(doc).then((buffer) => {
|
||||||
|
fs.writeFileSync("My Document.docx", buffer);
|
||||||
|
});
|
@ -1,24 +0,0 @@
|
|||||||
const docx = require('../build');
|
|
||||||
|
|
||||||
var doc = new docx.Document();
|
|
||||||
|
|
||||||
doc.createParagraph("First Page").pageBreak()
|
|
||||||
doc.createParagraph("Second Page");
|
|
||||||
|
|
||||||
var pageNumber = new docx.TextRun().pageNumber()
|
|
||||||
|
|
||||||
var pageoneheader = new docx.Paragraph("First Page Header ").right();
|
|
||||||
|
|
||||||
pageoneheader.addRun(pageNumber);
|
|
||||||
var firstPageHeader = doc.createFirstPageHeader();
|
|
||||||
firstPageHeader.addParagraph(pageoneheader);
|
|
||||||
|
|
||||||
var pagetwoheader = new docx.Paragraph("My Title ").right();
|
|
||||||
|
|
||||||
pagetwoheader.addRun(pageNumber)
|
|
||||||
doc.Header.addParagraph(pagetwoheader)
|
|
||||||
|
|
||||||
var exporter = new docx.LocalPacker(doc);
|
|
||||||
exporter.pack('My Document');
|
|
||||||
|
|
||||||
console.log('Document created successfully at project root!');
|
|
28
demo/demo14.ts
Normal file
28
demo/demo14.ts
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
// Page numbers
|
||||||
|
// Import from 'docx' rather than '../build' if you install from npm
|
||||||
|
import * as fs from "fs";
|
||||||
|
import { Document, Packer, Paragraph, TextRun } from "../build";
|
||||||
|
|
||||||
|
const doc = new Document();
|
||||||
|
|
||||||
|
doc.createParagraph("First Page").pageBreak();
|
||||||
|
doc.createParagraph("Second Page");
|
||||||
|
|
||||||
|
const pageNumber = new TextRun("Page ").pageNumber();
|
||||||
|
|
||||||
|
const pageoneheader = new Paragraph("First Page Header ").right();
|
||||||
|
|
||||||
|
pageoneheader.addRun(pageNumber);
|
||||||
|
const firstPageHeader = doc.createFirstPageHeader();
|
||||||
|
firstPageHeader.addParagraph(pageoneheader);
|
||||||
|
|
||||||
|
const pagetwoheader = new Paragraph("My Title ").right();
|
||||||
|
|
||||||
|
pagetwoheader.addRun(pageNumber);
|
||||||
|
doc.Header.addParagraph(pagetwoheader);
|
||||||
|
|
||||||
|
const packer = new Packer();
|
||||||
|
|
||||||
|
packer.toBuffer(doc).then((buffer) => {
|
||||||
|
fs.writeFileSync("My Document.docx", buffer);
|
||||||
|
});
|
@ -1,14 +0,0 @@
|
|||||||
const docx = require('../build');
|
|
||||||
|
|
||||||
var doc = new docx.Document();
|
|
||||||
|
|
||||||
var paragraph = new docx.Paragraph("Hello World");
|
|
||||||
var paragraph2 = new docx.Paragraph("Hello World on another page").pageBreakBefore();
|
|
||||||
|
|
||||||
doc.addParagraph(paragraph);
|
|
||||||
doc.addParagraph(paragraph2);
|
|
||||||
|
|
||||||
var exporter = new docx.LocalPacker(doc);
|
|
||||||
exporter.pack('My Document');
|
|
||||||
|
|
||||||
console.log('Document created successfully at project root!');
|
|
18
demo/demo15.ts
Normal file
18
demo/demo15.ts
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
// Page break before example
|
||||||
|
// Import from 'docx' rather than '../build' if you install from npm
|
||||||
|
import * as fs from "fs";
|
||||||
|
import { Document, Packer, Paragraph } from "../build";
|
||||||
|
|
||||||
|
const doc = new Document();
|
||||||
|
|
||||||
|
const paragraph = new Paragraph("Hello World");
|
||||||
|
const paragraph2 = new Paragraph("Hello World on another page").pageBreakBefore();
|
||||||
|
|
||||||
|
doc.addParagraph(paragraph);
|
||||||
|
doc.addParagraph(paragraph2);
|
||||||
|
|
||||||
|
const packer = new Packer();
|
||||||
|
|
||||||
|
packer.toBuffer(doc).then((buffer) => {
|
||||||
|
fs.writeFileSync("My Document.docx", buffer);
|
||||||
|
});
|
@ -1,36 +0,0 @@
|
|||||||
const docx = require("../build");
|
|
||||||
|
|
||||||
var doc = new docx.Document();
|
|
||||||
|
|
||||||
var paragraph = new docx.Paragraph("Hello World").pageBreak();
|
|
||||||
|
|
||||||
doc.addParagraph(paragraph);
|
|
||||||
|
|
||||||
var header = doc.createHeader();
|
|
||||||
header.createParagraph("Header on another page");
|
|
||||||
var footer = doc.createFooter();
|
|
||||||
footer.createParagraph("Footer on another page");
|
|
||||||
|
|
||||||
doc.addSection({
|
|
||||||
headerId: header.Header.ReferenceId,
|
|
||||||
footerId: footer.Footer.ReferenceId,
|
|
||||||
pageNumberStart: 1,
|
|
||||||
pageNumberFormatType: docx.PageNumberFormat.DECIMAL,
|
|
||||||
});
|
|
||||||
|
|
||||||
doc.createParagraph("hello");
|
|
||||||
|
|
||||||
doc.addSection({
|
|
||||||
headerId: header.Header.ReferenceId,
|
|
||||||
footerId: footer.Footer.ReferenceId,
|
|
||||||
pageNumberStart: 1,
|
|
||||||
pageNumberFormatType: docx.PageNumberFormat.DECIMAL,
|
|
||||||
orientation: docx.PageOrientation.LANDSCAPE,
|
|
||||||
});
|
|
||||||
|
|
||||||
doc.createParagraph("hello in landscape");
|
|
||||||
|
|
||||||
var exporter = new docx.LocalPacker(doc);
|
|
||||||
exporter.pack("My Document");
|
|
||||||
|
|
||||||
console.log("Document created successfully at project root!");
|
|
40
demo/demo16.ts
Normal file
40
demo/demo16.ts
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
// Multiple sections and headers
|
||||||
|
// Import from 'docx' rather than '../build' if you install from npm
|
||||||
|
import * as fs from "fs";
|
||||||
|
import { Document, Packer, PageNumberFormat, PageOrientation, Paragraph } from "../build";
|
||||||
|
|
||||||
|
const doc = new Document();
|
||||||
|
|
||||||
|
const paragraph = new Paragraph("Hello World").pageBreak();
|
||||||
|
|
||||||
|
doc.addParagraph(paragraph);
|
||||||
|
|
||||||
|
const header = doc.createHeader();
|
||||||
|
header.createParagraph("Header on another page");
|
||||||
|
const footer = doc.createFooter();
|
||||||
|
footer.createParagraph("Footer on another page");
|
||||||
|
|
||||||
|
doc.addSection({
|
||||||
|
headerId: header.Header.ReferenceId,
|
||||||
|
footerId: footer.Footer.ReferenceId,
|
||||||
|
pageNumberStart: 1,
|
||||||
|
pageNumberFormatType: PageNumberFormat.DECIMAL,
|
||||||
|
});
|
||||||
|
|
||||||
|
doc.createParagraph("hello");
|
||||||
|
|
||||||
|
doc.addSection({
|
||||||
|
headerId: header.Header.ReferenceId,
|
||||||
|
footerId: footer.Footer.ReferenceId,
|
||||||
|
pageNumberStart: 1,
|
||||||
|
pageNumberFormatType: PageNumberFormat.DECIMAL,
|
||||||
|
orientation: PageOrientation.LANDSCAPE,
|
||||||
|
});
|
||||||
|
|
||||||
|
doc.createParagraph("hello in landscape");
|
||||||
|
|
||||||
|
const packer = new Packer();
|
||||||
|
|
||||||
|
packer.toBuffer(doc).then((buffer) => {
|
||||||
|
fs.writeFileSync("My Document.docx", buffer);
|
||||||
|
});
|
@ -1,17 +0,0 @@
|
|||||||
const docx = require('../build');
|
|
||||||
|
|
||||||
var doc = new docx.Document();
|
|
||||||
|
|
||||||
var paragraph = new docx.Paragraph("Hello World").referenceFootnote(1);
|
|
||||||
var paragraph2 = new docx.Paragraph("Hello World").referenceFootnote(2);
|
|
||||||
|
|
||||||
doc.addParagraph(paragraph);
|
|
||||||
doc.addParagraph(paragraph2);
|
|
||||||
|
|
||||||
doc.createFootnote(new docx.Paragraph("Test"));
|
|
||||||
doc.createFootnote(new docx.Paragraph("My amazing reference"));
|
|
||||||
|
|
||||||
var exporter = new docx.LocalPacker(doc);
|
|
||||||
exporter.pack('My Document');
|
|
||||||
|
|
||||||
console.log('Document created successfully at project root!');
|
|
21
demo/demo17.ts
Normal file
21
demo/demo17.ts
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
// Footnotes
|
||||||
|
// Import from 'docx' rather than '../build' if you install from npm
|
||||||
|
import * as fs from "fs";
|
||||||
|
import { Document, Packer, Paragraph } from "../build";
|
||||||
|
|
||||||
|
const doc = new Document();
|
||||||
|
|
||||||
|
const paragraph = new Paragraph("Hello World").referenceFootnote(1);
|
||||||
|
const paragraph2 = new Paragraph("Hello World").referenceFootnote(2);
|
||||||
|
|
||||||
|
doc.addParagraph(paragraph);
|
||||||
|
doc.addParagraph(paragraph2);
|
||||||
|
|
||||||
|
doc.createFootnote(new Paragraph("Test"));
|
||||||
|
doc.createFootnote(new Paragraph("My amazing reference"));
|
||||||
|
|
||||||
|
const packer = new Packer();
|
||||||
|
|
||||||
|
packer.toBuffer(doc).then((buffer) => {
|
||||||
|
fs.writeFileSync("My Document.docx", buffer);
|
||||||
|
});
|
@ -1,15 +1,17 @@
|
|||||||
// Insert image from a buffer
|
// Insert image from a buffer
|
||||||
const docx = require('../build');
|
// Import from 'docx' rather than '../build' if you install from npm
|
||||||
|
import * as fs from "fs";
|
||||||
|
import { Document, Packer } from "../build";
|
||||||
|
|
||||||
var doc = new docx.Document();
|
const doc = new Document();
|
||||||
|
|
||||||
|
const imageBase64Data = `iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAMAAAD04JH5AAACzVBMVEUAAAAAAAAAAAAAAAA/AD8zMzMqKiokJCQfHx8cHBwZGRkuFxcqFSonJyckJCQiIiIfHx8eHh4cHBwoGhomGSYkJCQhISEfHx8eHh4nHR0lHBwkGyQjIyMiIiIgICAfHx8mHh4lHh4kHR0jHCMiGyIhISEgICAfHx8lHx8kHh4jHR0hHCEhISEgICAlHx8kHx8jHh4jHh4iHSIhHCEhISElICAkHx8jHx8jHh4iHh4iHSIhHSElICAkICAjHx8jHx8iHh4iHh4hHiEhHSEkICAjHx8iHx8iHx8hHh4hHiEkHSEjHSAjHx8iHx8iHx8hHh4kHiEkHiEjHSAiHx8hHx8hHh4kHiEjHiAjHSAiHx8iHx8hHx8kHh4jHiEjHiAjHiAiICAiHx8kHx8jHh4jHiEjHiAiHiAiHSAiHx8jHx8jHx8jHiAiHiAiHiAiHSAiHx8jHx8jHx8iHiAiHiAiHiAjHx8jHx8jHx8jHx8iHiAiHiAiHiAjHx8jHx8jHx8iHx8iHSAiHiAjHiAjHx8jHx8hHx8iHx8iHyAiHiAjHiAjHiAjHh4hHx8iHx8iHx8iHyAjHSAjHiAjHiAjHh4hHx8iHx8iHx8jHyAjHiAhHh4iHx8iHx8jHyAjHSAjHSAhHiAhHh4iHx8iHx8jHx8jHyAjHSAjHSAiHh4iHh4jHx8jHx8jHyAjHyAhHSAhHSAiHh4iHh4jHx8jHx8jHyAhHyAhHSAiHSAiHh4jHh4jHx8jHx8jHyAhHyAhHSAiHSAjHR4jHh4jHx8jHx8hHyAhHyAiHSAjHSAjHR4jHh4jHx8hHx8hHyAhHyAiHyAjHSAjHR4jHR4hHh4hHx8hHyAiHyAjHyAjHSAjHR4jHR4hHh4hHx8hHyAjHyAjHyAjHSAjHR4hHR4hHR4hHx8iHyAjHyAjHyAjHSAhHR4hHR4hHR4hHx8jHyAjHyAjHyAjHyC9S2xeAAAA7nRSTlMAAQIDBAUGBwgJCgsMDQ4PEBESExQVFxgZGhscHR4fICEiIyQlJicoKSorLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZISUpLTE1OUFFSU1RVVllaW1xdXmBhYmNkZWZnaGprbG1ub3Byc3R1dnd4eXp8fn+AgYKDhIWGiImKi4yNj5CRkpOUlZaXmJmam5ydnp+goaKjpKaoqqusra6vsLGys7S1tri5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+fkZpVQAABcBJREFUGBntwftjlQMcBvDnnLNL22qzJjWlKLHFVogyty3SiFq6EZliqZGyhnSxsLlMRahYoZKRFcul5dKFCatYqWZaNKvWtrPz/A2+7/b27qRzec/lPfvl/XxgMplMJpPJZDKZAtA9HJ3ppnIez0KnSdtC0RCNznHdJrbrh85wdSlVVRaEXuoGamYi5K5430HNiTiEWHKJg05eRWgNfKeV7RxbqUhGKPV/207VupQ8is0IoX5vtFC18SqEHaK4GyHTZ2kzVR8PBTCO4oANIZL4ShNVZcOhKKeYg9DoWdhI1ec3os2VFI0JCIUez5+i6st0qJZRrEAIJCw+QdW223BG/EmKwTBc/IJ/qfp2FDrkUnwFo8U9dZyqnaPhxLqfYjyM1S3vb6p+GGOBszsojoTDSDFz6qj66R4LzvYJxVMwUNRjf1H1ywQr/megg2RzLximy8waqvbda8M5iijegVEiHjlM1W/3h+FcXesphsMY4dMOUnUgOxyuPEzxPQwRNvV3qg5Nj4BreyimwADWe/dRVTMjEm6MoGLzGwtystL6RyOY3qSqdlYU3FpLZw1VW0sK5943MvUCKwJ1noNtjs6Ohge76Zq9ZkfpigU5WWkDYuCfbs1U5HWFR8/Qq4a9W0uK5k4ZmdrTCl8spGIePLPlbqqsc1Afe83O0hULc8alDYiBd7ZyitYMeBfR55rR2fOKP6ioPk2dGvZ+UVI0d8rtqT2tcCexlqK2F3wRn5Q+YVbBqrLKOupkr9lZujAOrmS0UpTb4JeIPkNHZ+cXr6uoPk2vyuBSPhWLEKj45PQJuQWryyqP0Z14uGLdROHIRNBEXDR09EP5r62rOHCazhrD4VKPwxTH+sIA3ZPTJ+YuWV22n+IruHFDC8X2CBjnPoolcGc2FYUwzmsUWXDHsoGKLBhmN0VvuBVfTVE/AAbpaid5CB4MbaLY1QXGuIViLTyZQcVyGGMuxWPwaA0Vk2GI9RRp8Ci2iuLkIBjhT5LNUfAspZFiTwyC72KK7+DNg1SsRvCNp3gZXq2k4iEEXSHFJHgVXUlxejCCbTvFAHiXdIJiXxyCK7KJ5FHoMZGK9xBcwyg2QpdlVMxEUM2iyIMuXXZQNF+HswxMsSAAJRQjoE//eoqDCXBSTO6f1xd+O0iyNRY6jaWi1ALNYCocZROj4JdEikroVkjFk9DcStXxpdfCD2MoXodu4RUU9ptxxmXssOfxnvDVcxRTod9FxyhqLoAqis5aPhwTDp9spRgEH2Q6KLbYoKqlaKTm6Isp0C/sJMnjFvhiERXPQvUNRe9p29lhR04CdBpC8Sl8YiuncIxEuzUUg4Dkgj+paVozygY9plPMh28SaymO9kabAopREGF3vt9MzeFFl8G7lRSZ8FFGK8XX4VA8QjEd7XrM3M0OXz8YCy+qKBLgq3wqnofiTorF0Ax56Rg1J1elW+BBAsVe+My6iYq7IK6keBdOIseV2qn5Pb8f3MqkWAXf9ThM8c8lAOIotuFsF875lRrH5klRcG0+xcPwQ1oLxfeRAP4heQTnGL78X2rqlw2DK59SXAV/zKaiGMAuko5InCt68mcOan5+ohf+z1pP8lQY/GHZQMV4YD3FpXDp4qerqbF/lBWBswyi+AL+ia+maLgcRRQj4IYlY/UpauqKBsPJAxQF8NM1TRQ/RudSPAD34rK3scOuR8/HGcspxsJfOVS8NZbiGXiUtPgINU3v3WFDmx8pEuG3EiqKKVbCC1vm2iZqap5LAtCtleQf8F9sFYWDohzeJczYyQ4V2bEZFGsQgJRGqqqhS2phHTWn9lDkIhBTqWqxQZ+IsRvtdHY9AvI2VX2hW68nfqGmuQsCEl3JdjfCF8OW1bPdtwhQ0gm2mQzfRE3a7KCYj0BNZJs8+Kxf/r6WtTEI2FIqlsMfFgRB5A6KUnSe/vUkX0AnuvUIt8SjM1m6wWQymUwmk8lkMgXRf5vi8rLQxtUhAAAAAElFTkSuQmCC`;
|
||||||
const imageBase64Data = `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`
|
|
||||||
|
|
||||||
// doc.createImage(Buffer.from(imageBase64Data, 'base64'));
|
// doc.createImage(Buffer.from(imageBase64Data, 'base64'));
|
||||||
doc.createImage(Buffer.from(imageBase64Data, 'base64'), 100, 100);
|
doc.createImage(Buffer.from(imageBase64Data, "base64"), 100, 100);
|
||||||
|
|
||||||
var exporter = new docx.LocalPacker(doc);
|
const packer = new Packer();
|
||||||
exporter.pack('My Document');
|
|
||||||
|
|
||||||
console.log('Document created successfully at project root!');
|
packer.toBuffer(doc).then((buffer) => {
|
||||||
|
fs.writeFileSync("My Document.docx", buffer);
|
||||||
|
});
|
@ -1,20 +0,0 @@
|
|||||||
const fs = require("fs");
|
|
||||||
const docx = require("../build");
|
|
||||||
|
|
||||||
var doc = new docx.Document();
|
|
||||||
|
|
||||||
var paragraph = new docx.Paragraph("Hello World");
|
|
||||||
var institutionText = new docx.TextRun("Foo").bold();
|
|
||||||
var dateText = new docx.TextRun("Bar").tab().bold();
|
|
||||||
paragraph.addRun(institutionText);
|
|
||||||
paragraph.addRun(dateText);
|
|
||||||
|
|
||||||
doc.addParagraph(paragraph);
|
|
||||||
|
|
||||||
var exporter = new docx.BufferPacker(doc);
|
|
||||||
exporter.pack("My Document").then((buffer) => {
|
|
||||||
// At this point, you can do anything with the buffer, including casting it to a string etc.
|
|
||||||
console.log(buffer);
|
|
||||||
fs.writeFileSync('My Document.docx', buffer);
|
|
||||||
console.log("Document created successfully at project root!");
|
|
||||||
});
|
|
20
demo/demo19.ts
Normal file
20
demo/demo19.ts
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
// Export to base64 string - Useful in a browser environment.
|
||||||
|
// Import from 'docx' rather than '../build' if you install from npm
|
||||||
|
import * as fs from "fs";
|
||||||
|
import { Document, Packer, Paragraph, TextRun } from "../build";
|
||||||
|
|
||||||
|
const doc = new Document();
|
||||||
|
|
||||||
|
const paragraph = new Paragraph("Hello World");
|
||||||
|
const institutionText = new TextRun("Foo").bold();
|
||||||
|
const dateText = new TextRun("Bar").tab().bold();
|
||||||
|
paragraph.addRun(institutionText);
|
||||||
|
paragraph.addRun(dateText);
|
||||||
|
|
||||||
|
doc.addParagraph(paragraph);
|
||||||
|
|
||||||
|
const packer = new Packer();
|
||||||
|
|
||||||
|
packer.toBase64String(doc).then((str) => {
|
||||||
|
fs.writeFileSync("My Document.docx", str);
|
||||||
|
});
|
@ -1,74 +0,0 @@
|
|||||||
const docx = require('../build');
|
|
||||||
|
|
||||||
const doc = new docx.Document({
|
|
||||||
creator: 'Clippy',
|
|
||||||
title: 'Sample Document',
|
|
||||||
description: 'A brief example of using docx',
|
|
||||||
});
|
|
||||||
|
|
||||||
doc.Styles.createParagraphStyle('Heading1', 'Heading 1')
|
|
||||||
.basedOn("Normal")
|
|
||||||
.next("Normal")
|
|
||||||
.quickFormat()
|
|
||||||
.size(28)
|
|
||||||
.bold()
|
|
||||||
.italics()
|
|
||||||
.spacing({after: 120});
|
|
||||||
|
|
||||||
doc.Styles.createParagraphStyle('Heading2', 'Heading 2')
|
|
||||||
.basedOn("Normal")
|
|
||||||
.next("Normal")
|
|
||||||
.quickFormat()
|
|
||||||
.size(26)
|
|
||||||
.bold()
|
|
||||||
.underline('double', 'FF0000')
|
|
||||||
.spacing({before: 240, after: 120});
|
|
||||||
|
|
||||||
doc.Styles.createParagraphStyle('aside', 'Aside')
|
|
||||||
.basedOn('Normal')
|
|
||||||
.next('Normal')
|
|
||||||
.color('999999')
|
|
||||||
.italics()
|
|
||||||
.indent(720)
|
|
||||||
.spacing({line: 276});
|
|
||||||
|
|
||||||
doc.Styles.createParagraphStyle('wellSpaced', 'Well Spaced')
|
|
||||||
.basedOn('Normal')
|
|
||||||
.spacing({line: 276, before: 20 * 72 * .1, after: 20 * 72 * .05});
|
|
||||||
|
|
||||||
doc.Styles.createParagraphStyle('ListParagraph', 'List Paragraph')
|
|
||||||
.quickFormat()
|
|
||||||
.basedOn('Normal');
|
|
||||||
|
|
||||||
|
|
||||||
const numberedAbstract = doc.Numbering.createAbstractNumbering();
|
|
||||||
numberedAbstract.createLevel(0, "lowerLetter", "%1)", "left");
|
|
||||||
|
|
||||||
doc.createParagraph('Test heading1, bold and italicized').heading1();
|
|
||||||
doc.createParagraph('Some simple content');
|
|
||||||
doc.createParagraph('Test heading2 with double red underline').heading2();
|
|
||||||
|
|
||||||
const letterNumbering = doc.Numbering.createConcreteNumbering(numberedAbstract);
|
|
||||||
const letterNumbering5 = doc.Numbering.createConcreteNumbering(numberedAbstract);
|
|
||||||
letterNumbering5.overrideLevel(0, 5);
|
|
||||||
|
|
||||||
doc.createParagraph('Option1').setNumbering(letterNumbering, 0);
|
|
||||||
doc.createParagraph('Option5 -- override 2 to 5').setNumbering(letterNumbering5, 0);
|
|
||||||
doc.createParagraph('Option3').setNumbering(letterNumbering, 0);
|
|
||||||
|
|
||||||
doc.createParagraph()
|
|
||||||
.createTextRun('Some monospaced content')
|
|
||||||
.font('Monospace');
|
|
||||||
|
|
||||||
doc.createParagraph('An aside, in light gray italics and indented').style('aside');
|
|
||||||
doc.createParagraph('This is normal, but well-spaced text').style('wellSpaced');
|
|
||||||
const para = doc.createParagraph();
|
|
||||||
para.createTextRun('This is a bold run,').bold();
|
|
||||||
para.createTextRun(' switching to normal ');
|
|
||||||
para.createTextRun('and then underlined ').underline();
|
|
||||||
para.createTextRun('and back to normal.');
|
|
||||||
|
|
||||||
const exporter = new docx.LocalPacker(doc);
|
|
||||||
exporter.pack('My Document');
|
|
||||||
|
|
||||||
console.log('Document created successfully at project root!');
|
|
78
demo/demo2.ts
Normal file
78
demo/demo2.ts
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
// Example on how to customise the look at feel using Styles
|
||||||
|
// Import from 'docx' rather than '../build' if you install from npm
|
||||||
|
import * as fs from "fs";
|
||||||
|
import { Document, Packer } from "../build";
|
||||||
|
|
||||||
|
const doc = new Document({
|
||||||
|
creator: "Clippy",
|
||||||
|
title: "Sample Document",
|
||||||
|
description: "A brief example of using docx",
|
||||||
|
});
|
||||||
|
|
||||||
|
doc.Styles.createParagraphStyle("Heading1", "Heading 1")
|
||||||
|
.basedOn("Normal")
|
||||||
|
.next("Normal")
|
||||||
|
.quickFormat()
|
||||||
|
.size(28)
|
||||||
|
.bold()
|
||||||
|
.italics()
|
||||||
|
.spacing({ after: 120 });
|
||||||
|
|
||||||
|
doc.Styles.createParagraphStyle("Heading2", "Heading 2")
|
||||||
|
.basedOn("Normal")
|
||||||
|
.next("Normal")
|
||||||
|
.quickFormat()
|
||||||
|
.size(26)
|
||||||
|
.bold()
|
||||||
|
.underline("double", "FF0000")
|
||||||
|
.spacing({ before: 240, after: 120 });
|
||||||
|
|
||||||
|
doc.Styles.createParagraphStyle("aside", "Aside")
|
||||||
|
.basedOn("Normal")
|
||||||
|
.next("Normal")
|
||||||
|
.color("999999")
|
||||||
|
.italics()
|
||||||
|
.indent({ left: 720 })
|
||||||
|
.spacing({ line: 276 });
|
||||||
|
|
||||||
|
doc.Styles.createParagraphStyle("wellSpaced", "Well Spaced")
|
||||||
|
.basedOn("Normal")
|
||||||
|
.spacing({ line: 276, before: 20 * 72 * 0.1, after: 20 * 72 * 0.05 });
|
||||||
|
|
||||||
|
doc.Styles.createParagraphStyle("ListParagraph", "List Paragraph")
|
||||||
|
.quickFormat()
|
||||||
|
.basedOn("Normal");
|
||||||
|
|
||||||
|
const numberedAbstract = doc.Numbering.createAbstractNumbering();
|
||||||
|
numberedAbstract.createLevel(0, "lowerLetter", "%1)", "left");
|
||||||
|
|
||||||
|
doc.createParagraph("Test heading1, bold and italicized").heading1();
|
||||||
|
doc.createParagraph("Some simple content");
|
||||||
|
doc.createParagraph("Test heading2 with double red underline").heading2();
|
||||||
|
|
||||||
|
const letterNumbering = doc.Numbering.createConcreteNumbering(numberedAbstract);
|
||||||
|
const letterNumbering5 = doc.Numbering.createConcreteNumbering(numberedAbstract);
|
||||||
|
letterNumbering5.overrideLevel(0, 5);
|
||||||
|
|
||||||
|
doc.createParagraph("Option1").setNumbering(letterNumbering, 0);
|
||||||
|
doc.createParagraph("Option5 -- override 2 to 5").setNumbering(letterNumbering5, 0);
|
||||||
|
doc.createParagraph("Option3").setNumbering(letterNumbering, 0);
|
||||||
|
|
||||||
|
doc
|
||||||
|
.createParagraph()
|
||||||
|
.createTextRun("Some monospaced content")
|
||||||
|
.font("Monospace");
|
||||||
|
|
||||||
|
doc.createParagraph("An aside, in light gray italics and indented").style("aside");
|
||||||
|
doc.createParagraph("This is normal, but well-spaced text").style("wellSpaced");
|
||||||
|
const para = doc.createParagraph();
|
||||||
|
para.createTextRun("This is a bold run,").bold();
|
||||||
|
para.createTextRun(" switching to normal ");
|
||||||
|
para.createTextRun("and then underlined ").underline();
|
||||||
|
para.createTextRun("and back to normal.");
|
||||||
|
|
||||||
|
const packer = new Packer();
|
||||||
|
|
||||||
|
packer.toBuffer(doc).then((buffer) => {
|
||||||
|
fs.writeFileSync("My Document.docx", buffer);
|
||||||
|
});
|
@ -1,17 +0,0 @@
|
|||||||
const docx = require("../build");
|
|
||||||
|
|
||||||
var doc = new docx.Document();
|
|
||||||
|
|
||||||
const table = doc.createTable(4, 4);
|
|
||||||
table
|
|
||||||
.getCell(2, 2)
|
|
||||||
.addContent(new docx.Paragraph("Hello"))
|
|
||||||
.CellProperties.Borders.addTopBorder(docx.BorderStyle.DASH_DOT_STROKED, 3, "red")
|
|
||||||
.addBottomBorder(docx.BorderStyle.DOUBLE, 3, "blue")
|
|
||||||
.addStartBorder(docx.BorderStyle.DOT_DOT_DASH, 3, "green")
|
|
||||||
.addEndBorder(docx.BorderStyle.DOT_DOT_DASH, 3, "#ff8000");
|
|
||||||
|
|
||||||
var exporter = new docx.LocalPacker(doc);
|
|
||||||
exporter.pack("My Document");
|
|
||||||
|
|
||||||
console.log("Document created successfully at project root!");
|
|
21
demo/demo20.ts
Normal file
21
demo/demo20.ts
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
// Add custom borders to table cell
|
||||||
|
// Import from 'docx' rather than '../build' if you install from npm
|
||||||
|
import * as fs from "fs";
|
||||||
|
import { BorderStyle, Document, Packer, Paragraph } from "../build";
|
||||||
|
|
||||||
|
const doc = new Document();
|
||||||
|
|
||||||
|
const table = doc.createTable(4, 4);
|
||||||
|
table
|
||||||
|
.getCell(2, 2)
|
||||||
|
.addContent(new Paragraph("Hello"))
|
||||||
|
.CellProperties.Borders.addTopBorder(BorderStyle.DASH_DOT_STROKED, 3, "red")
|
||||||
|
.addBottomBorder(BorderStyle.DOUBLE, 3, "blue")
|
||||||
|
.addStartBorder(BorderStyle.DOT_DOT_DASH, 3, "green")
|
||||||
|
.addEndBorder(BorderStyle.DOT_DOT_DASH, 3, "#ff8000");
|
||||||
|
|
||||||
|
const packer = new Packer();
|
||||||
|
|
||||||
|
packer.toBuffer(doc).then((buffer) => {
|
||||||
|
fs.writeFileSync("My Document.docx", buffer);
|
||||||
|
});
|
@ -1,31 +0,0 @@
|
|||||||
/** This demo shows how to create bookmarks then link to them with internal hyperlinks */
|
|
||||||
|
|
||||||
const docx = require("../build");
|
|
||||||
|
|
||||||
const loremIpsum = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam mi velit, convallis convallis scelerisque nec, faucibus nec leo. Phasellus at posuere mauris, tempus dignissim velit. Integer et tortor dolor. Duis auctor efficitur mattis. Vivamus ut metus accumsan tellus auctor sollicitudin venenatis et nibh. Cras quis massa ac metus fringilla venenatis. Proin rutrum mauris purus, ut suscipit magna consectetur id. Integer consectetur sollicitudin ante, vitae faucibus neque efficitur in. Praesent ultricies nibh lectus. Mauris pharetra id odio eget iaculis. Duis dictum, risus id pellentesque rutrum, lorem quam malesuada massa, quis ullamcorper turpis urna a diam. Cras vulputate metus vel massa porta ullamcorper. Etiam porta condimentum nulla nec tristique. Sed nulla urna, pharetra non tortor sed, sollicitudin molestie diam. Maecenas enim leo, feugiat eget vehicula id, sollicitudin vitae ante.";
|
|
||||||
|
|
||||||
const doc = new docx.Document({
|
|
||||||
creator: 'Clippy',
|
|
||||||
title: 'Sample Document',
|
|
||||||
description: 'A brief example of using docx with bookmarks and internal hyperlinks',
|
|
||||||
});
|
|
||||||
|
|
||||||
const anchorId = "anchorID";
|
|
||||||
|
|
||||||
// First create the bookmark
|
|
||||||
const bookmark = doc.createBookmark(anchorId, "Lorem Ipsum");
|
|
||||||
// That has header styling
|
|
||||||
doc.createParagraph().addBookmark(bookmark).heading1();
|
|
||||||
doc.createParagraph("\n");
|
|
||||||
|
|
||||||
doc.createParagraph(loremIpsum);
|
|
||||||
doc.createParagraph().pageBreak();
|
|
||||||
|
|
||||||
// Now the link back up to the bookmark
|
|
||||||
const hyperlink = doc.createInternalHyperLink(anchorId, `Click me!`);
|
|
||||||
doc.createParagraph().addHyperLink(hyperlink);
|
|
||||||
|
|
||||||
var exporter = new docx.LocalPacker(doc);
|
|
||||||
exporter.pack("My Document");
|
|
||||||
|
|
||||||
console.log("Document created successfully at project root!");
|
|
37
demo/demo21.ts
Normal file
37
demo/demo21.ts
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
// This demo shows how to create bookmarks then link to them with internal hyperlinks
|
||||||
|
// Import from 'docx' rather than '../build' if you install from npm
|
||||||
|
import * as fs from "fs";
|
||||||
|
import { Document, Packer } from "../build";
|
||||||
|
|
||||||
|
const loremIpsum =
|
||||||
|
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam mi velit, convallis convallis scelerisque nec, faucibus nec leo. Phasellus at posuere mauris, tempus dignissim velit. Integer et tortor dolor. Duis auctor efficitur mattis. Vivamus ut metus accumsan tellus auctor sollicitudin venenatis et nibh. Cras quis massa ac metus fringilla venenatis. Proin rutrum mauris purus, ut suscipit magna consectetur id. Integer consectetur sollicitudin ante, vitae faucibus neque efficitur in. Praesent ultricies nibh lectus. Mauris pharetra id odio eget iaculis. Duis dictum, risus id pellentesque rutrum, lorem quam malesuada massa, quis ullamcorper turpis urna a diam. Cras vulputate metus vel massa porta ullamcorper. Etiam porta condimentum nulla nec tristique. Sed nulla urna, pharetra non tortor sed, sollicitudin molestie diam. Maecenas enim leo, feugiat eget vehicula id, sollicitudin vitae ante.";
|
||||||
|
|
||||||
|
const doc = new Document({
|
||||||
|
creator: "Clippy",
|
||||||
|
title: "Sample Document",
|
||||||
|
description: "A brief example of using docx with bookmarks and internal hyperlinks",
|
||||||
|
});
|
||||||
|
|
||||||
|
const anchorId = "anchorID";
|
||||||
|
|
||||||
|
// First create the bookmark
|
||||||
|
const bookmark = doc.createBookmark(anchorId, "Lorem Ipsum");
|
||||||
|
// That has header styling
|
||||||
|
doc
|
||||||
|
.createParagraph()
|
||||||
|
.addBookmark(bookmark)
|
||||||
|
.heading1();
|
||||||
|
doc.createParagraph("\n");
|
||||||
|
|
||||||
|
doc.createParagraph(loremIpsum);
|
||||||
|
doc.createParagraph().pageBreak();
|
||||||
|
|
||||||
|
// Now the link back up to the bookmark
|
||||||
|
const hyperlink = doc.createInternalHyperLink(anchorId, `Click me!`);
|
||||||
|
doc.createParagraph().addHyperLink(hyperlink);
|
||||||
|
|
||||||
|
const packer = new Packer();
|
||||||
|
|
||||||
|
packer.toBuffer(doc).then((buffer) => {
|
||||||
|
fs.writeFileSync("My Document.docx", buffer);
|
||||||
|
});
|
@ -1,26 +0,0 @@
|
|||||||
const docx = require('../build');
|
|
||||||
|
|
||||||
var doc = new docx.Document();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var paragraph1 = new docx.Paragraph().bidirectional();
|
|
||||||
var textRun1 = new docx.TextRun("שלום עולם").rightToLeft();
|
|
||||||
paragraph1.addRun(textRun1);
|
|
||||||
doc.addParagraph(paragraph1);
|
|
||||||
|
|
||||||
var paragraph2 = new docx.Paragraph().bidirectional();
|
|
||||||
var textRun2 = new docx.TextRun("שלום עולם").bold().rightToLeft();
|
|
||||||
paragraph2.addRun(textRun2);
|
|
||||||
doc.addParagraph(paragraph2);
|
|
||||||
|
|
||||||
var paragraph3 = new docx.Paragraph().bidirectional();
|
|
||||||
var textRun3 = new docx.TextRun("שלום עולם").italic().rightToLeft();
|
|
||||||
paragraph3.addRun(textRun3);
|
|
||||||
doc.addParagraph(paragraph3);
|
|
||||||
|
|
||||||
|
|
||||||
var exporter = new docx.LocalPacker(doc);
|
|
||||||
exporter.pack('My Document');
|
|
||||||
|
|
||||||
console.log('Document created successfully at project root!');
|
|
27
demo/demo22.ts
Normal file
27
demo/demo22.ts
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
// This demo shows right to left for special languages
|
||||||
|
// Import from 'docx' rather than '../build' if you install from npm
|
||||||
|
import * as fs from "fs";
|
||||||
|
import { Document, Packer, Paragraph, TextRun } from "../build";
|
||||||
|
|
||||||
|
const doc = new Document();
|
||||||
|
|
||||||
|
const paragraph1 = new Paragraph().bidirectional();
|
||||||
|
const textRun1 = new TextRun("שלום עולם").rightToLeft();
|
||||||
|
paragraph1.addRun(textRun1);
|
||||||
|
doc.addParagraph(paragraph1);
|
||||||
|
|
||||||
|
const paragraph2 = new Paragraph().bidirectional();
|
||||||
|
const textRun2 = new TextRun("שלום עולם").bold().rightToLeft();
|
||||||
|
paragraph2.addRun(textRun2);
|
||||||
|
doc.addParagraph(paragraph2);
|
||||||
|
|
||||||
|
const paragraph3 = new Paragraph().bidirectional();
|
||||||
|
const textRun3 = new TextRun("שלום עולם").italic().rightToLeft();
|
||||||
|
paragraph3.addRun(textRun3);
|
||||||
|
doc.addParagraph(paragraph3);
|
||||||
|
|
||||||
|
const packer = new Packer();
|
||||||
|
|
||||||
|
packer.toBuffer(doc).then((buffer) => {
|
||||||
|
fs.writeFileSync("My Document.docx", buffer);
|
||||||
|
});
|
@ -1,19 +1,21 @@
|
|||||||
// This demo adds an image to the Media cache, and then insert to the document afterwards
|
// This demo adds an image to the Media cache, and then insert to the document afterwards
|
||||||
const docx = require("../build");
|
// Import from 'docx' rather than '../build' if you install from npm
|
||||||
|
import * as fs from "fs";
|
||||||
|
import { Document, Media, Packer, Paragraph } from "../build";
|
||||||
|
|
||||||
var doc = new docx.Document();
|
const doc = new Document();
|
||||||
|
|
||||||
var paragraph = new docx.Paragraph("Hello World");
|
const paragraph = new Paragraph("Hello World");
|
||||||
doc.addParagraph(paragraph);
|
doc.addParagraph(paragraph);
|
||||||
|
|
||||||
const image = docx.Media.addImage(doc, "./demo/images/image1.jpeg");
|
const image = Media.addImage(doc, "./demo/images/image1.jpeg");
|
||||||
const image2 = docx.Media.addImage(doc, "./demo/images/dog.png");
|
const image2 = Media.addImage(doc, "./demo/images/dog.png");
|
||||||
const image3 = docx.Media.addImage(doc, "./demo/images/cat.jpg");
|
const image3 = Media.addImage(doc, "./demo/images/cat.jpg");
|
||||||
const image4 = docx.Media.addImage(doc, "./demo/images/parrots.bmp");
|
const image4 = Media.addImage(doc, "./demo/images/parrots.bmp");
|
||||||
const image5 = docx.Media.addImage(doc, "./demo/images/pizza.gif");
|
const image5 = Media.addImage(doc, "./demo/images/pizza.gif");
|
||||||
|
|
||||||
const imageBase64Data = `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`
|
const imageBase64Data = `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`;
|
||||||
const image6 = docx.Media.addImageFromBuffer(doc, Buffer.from(imageBase64Data, 'base64'), 100, 100);
|
const image6 = Media.addImage(doc, Buffer.from(imageBase64Data, "base64"), 100, 100);
|
||||||
|
|
||||||
// I am adding an image to the paragraph rather than the document to make the image inline
|
// I am adding an image to the paragraph rather than the document to make the image inline
|
||||||
paragraph.addImage(image5);
|
paragraph.addImage(image5);
|
||||||
@ -25,7 +27,8 @@ doc.addImage(image4);
|
|||||||
doc.addImage(image5);
|
doc.addImage(image5);
|
||||||
doc.addImage(image6);
|
doc.addImage(image6);
|
||||||
|
|
||||||
var exporter = new docx.LocalPacker(doc);
|
const packer = new Packer();
|
||||||
exporter.pack("My Document");
|
|
||||||
|
|
||||||
console.log("Document created successfully at project root!");
|
packer.toBuffer(doc).then((buffer) => {
|
||||||
|
fs.writeFileSync("My Document.docx", buffer);
|
||||||
|
});
|
@ -1,15 +0,0 @@
|
|||||||
// Add image to table cell
|
|
||||||
const docx = require('../build');
|
|
||||||
|
|
||||||
var doc = new docx.Document();
|
|
||||||
|
|
||||||
const table = doc.createTable(4, 4);
|
|
||||||
table.getCell(2, 2).addContent(new docx.Paragraph('Hello'));
|
|
||||||
|
|
||||||
const image = docx.Media.addImage(doc, "./demo/images/image1.jpeg");
|
|
||||||
table.getCell(1, 1).addContent(image);
|
|
||||||
|
|
||||||
var exporter = new docx.LocalPacker(doc);
|
|
||||||
exporter.pack('My Document');
|
|
||||||
|
|
||||||
console.log('Document created successfully at project root!');
|
|
18
demo/demo24.ts
Normal file
18
demo/demo24.ts
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
// Add image to table cell
|
||||||
|
// Import from 'docx' rather than '../build' if you install from npm
|
||||||
|
import * as fs from "fs";
|
||||||
|
import { Document, Media, Packer, Paragraph } from "../build";
|
||||||
|
|
||||||
|
const doc = new Document();
|
||||||
|
|
||||||
|
const table = doc.createTable(4, 4);
|
||||||
|
table.getCell(2, 2).addContent(new Paragraph("Hello"));
|
||||||
|
|
||||||
|
const image = Media.addImage(doc, "./demo/images/image1.jpeg");
|
||||||
|
table.getCell(1, 1).addContent(image.Paragraph);
|
||||||
|
|
||||||
|
const packer = new Packer();
|
||||||
|
|
||||||
|
packer.toBuffer(doc).then((buffer) => {
|
||||||
|
fs.writeFileSync("My Document.docx", buffer);
|
||||||
|
});
|
@ -1,15 +0,0 @@
|
|||||||
const fs = require("fs");
|
|
||||||
const docx = require("../build");
|
|
||||||
|
|
||||||
var doc = new docx.Document();
|
|
||||||
|
|
||||||
var paragraph = new docx.Paragraph("Hello World");
|
|
||||||
var institutionText = new docx.TextRun("Foo").bold();
|
|
||||||
var dateText = new docx.TextRun("Bar").tab().bold();
|
|
||||||
paragraph.addRun(institutionText);
|
|
||||||
paragraph.addRun(dateText);
|
|
||||||
|
|
||||||
doc.addParagraph(paragraph);
|
|
||||||
|
|
||||||
var exporter = new docx.LocalPacker(doc);
|
|
||||||
exporter.packPdf("My Document");
|
|
@ -1,21 +0,0 @@
|
|||||||
const docx = require('../build');
|
|
||||||
const fs = require('fs');
|
|
||||||
|
|
||||||
var doc = new docx.Document();
|
|
||||||
|
|
||||||
var paragraph = new docx.Paragraph("Hello World");
|
|
||||||
var institutionText = new docx.TextRun("University College London").bold();
|
|
||||||
var dateText = new docx.TextRun("5th Dec 2015").tab().bold();
|
|
||||||
paragraph.addRun(institutionText);
|
|
||||||
paragraph.addRun(dateText);
|
|
||||||
|
|
||||||
doc.addParagraph(paragraph);
|
|
||||||
|
|
||||||
var packer = new docx.PdfPacker();
|
|
||||||
|
|
||||||
packer.toBuffer(doc).then((buffer) => {
|
|
||||||
console.log(buffer);
|
|
||||||
fs.writeFileSync('My Document.pdf', buffer);
|
|
||||||
});
|
|
||||||
|
|
||||||
console.log('Document created successfully at project root!');
|
|
@ -1,45 +0,0 @@
|
|||||||
const docx = require('../build');
|
|
||||||
|
|
||||||
var doc = new docx.Document();
|
|
||||||
|
|
||||||
const numbering = new docx.Numbering();
|
|
||||||
|
|
||||||
const abstractNum = numbering.createAbstractNumbering();
|
|
||||||
abstractNum.createLevel(0, "upperRoman", "%1", "start")
|
|
||||||
.addParagraphProperty(new docx.Indent(720, 260));
|
|
||||||
abstractNum.createLevel(1, "decimal", "%2.", "start")
|
|
||||||
.addParagraphProperty(new docx.Indent(1440, 980));
|
|
||||||
abstractNum.createLevel(2, "lowerLetter", "%3)", "start")
|
|
||||||
.addParagraphProperty(new docx.Indent(2160, 1700));
|
|
||||||
|
|
||||||
const concrete = numbering.createConcreteNumbering(abstractNum);
|
|
||||||
|
|
||||||
var topLevelP = new docx.Paragraph("Hey you");
|
|
||||||
var subP = new docx.Paragraph("What's up fam");
|
|
||||||
var secondSubP = new docx.Paragraph("Hello World 2");
|
|
||||||
var subSubP = new docx.Paragraph("Yeah boi");
|
|
||||||
|
|
||||||
topLevelP.setNumbering(concrete, 0);
|
|
||||||
subP.setNumbering(concrete, 1);
|
|
||||||
secondSubP.setNumbering(concrete, 1);
|
|
||||||
subSubP.setNumbering(concrete, 2);
|
|
||||||
|
|
||||||
doc.addParagraph(topLevelP);
|
|
||||||
doc.addParagraph(subP);
|
|
||||||
doc.addParagraph(secondSubP);
|
|
||||||
doc.addParagraph(subSubP);
|
|
||||||
|
|
||||||
var bullet1 = new docx.Paragraph("Hey you").bullet();
|
|
||||||
var bullet2 = new docx.Paragraph("What's up fam").bullet(1);
|
|
||||||
var bullet3 = new docx.Paragraph("Hello World 2").bullet(2);
|
|
||||||
var bullet4 = new docx.Paragraph("Yeah boi").bullet(3);
|
|
||||||
|
|
||||||
doc.addParagraph(bullet1);
|
|
||||||
doc.addParagraph(bullet2);
|
|
||||||
doc.addParagraph(bullet3);
|
|
||||||
doc.addParagraph(bullet4);
|
|
||||||
|
|
||||||
var exporter = new docx.LocalPacker(doc);
|
|
||||||
exporter.pack('My Document');
|
|
||||||
|
|
||||||
console.log('Document created successfully at project root!');
|
|
46
demo/demo3.ts
Normal file
46
demo/demo3.ts
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
// Numbering and bullet points example
|
||||||
|
// Import from 'docx' rather than '../build' if you install from npm
|
||||||
|
import * as fs from "fs";
|
||||||
|
import { Document, Indent, Numbering, Packer, Paragraph } from "../build";
|
||||||
|
|
||||||
|
const doc = new Document();
|
||||||
|
|
||||||
|
const numbering = new Numbering();
|
||||||
|
|
||||||
|
const abstractNum = numbering.createAbstractNumbering();
|
||||||
|
abstractNum.createLevel(0, "upperRoman", "%1", "start").addParagraphProperty(new Indent({ left: 720, hanging: 260 }));
|
||||||
|
abstractNum.createLevel(1, "decimal", "%2.", "start").addParagraphProperty(new Indent({ left: 1440, hanging: 980 }));
|
||||||
|
abstractNum.createLevel(2, "lowerLetter", "%3)", "start").addParagraphProperty(new Indent({ left: 14402160, hanging: 1700 }));
|
||||||
|
|
||||||
|
const concrete = numbering.createConcreteNumbering(abstractNum);
|
||||||
|
|
||||||
|
const topLevelP = new Paragraph("Hey you");
|
||||||
|
const subP = new Paragraph("What's up fam");
|
||||||
|
const secondSubP = new Paragraph("Hello World 2");
|
||||||
|
const subSubP = new Paragraph("Yeah boi");
|
||||||
|
|
||||||
|
topLevelP.setNumbering(concrete, 0);
|
||||||
|
subP.setNumbering(concrete, 1);
|
||||||
|
secondSubP.setNumbering(concrete, 1);
|
||||||
|
subSubP.setNumbering(concrete, 2);
|
||||||
|
|
||||||
|
doc.addParagraph(topLevelP);
|
||||||
|
doc.addParagraph(subP);
|
||||||
|
doc.addParagraph(secondSubP);
|
||||||
|
doc.addParagraph(subSubP);
|
||||||
|
|
||||||
|
const bullet1 = new Paragraph("Hey you").bullet();
|
||||||
|
const bullet2 = new Paragraph("What's up fam").bullet(1);
|
||||||
|
const bullet3 = new Paragraph("Hello World 2").bullet(2);
|
||||||
|
const bullet4 = new Paragraph("Yeah boi").bullet(3);
|
||||||
|
|
||||||
|
doc.addParagraph(bullet1);
|
||||||
|
doc.addParagraph(bullet2);
|
||||||
|
doc.addParagraph(bullet3);
|
||||||
|
doc.addParagraph(bullet4);
|
||||||
|
|
||||||
|
const packer = new Packer();
|
||||||
|
|
||||||
|
packer.toBuffer(doc).then((buffer) => {
|
||||||
|
fs.writeFileSync("My Document.docx", buffer);
|
||||||
|
});
|
@ -1,12 +0,0 @@
|
|||||||
const docx = require('../build');
|
|
||||||
|
|
||||||
var doc = new docx.Document();
|
|
||||||
|
|
||||||
const table = doc.createTable(4, 4);
|
|
||||||
table.getCell(2, 2).addContent(new docx.Paragraph('Hello'));
|
|
||||||
|
|
||||||
|
|
||||||
var exporter = new docx.LocalPacker(doc);
|
|
||||||
exporter.pack('My Document');
|
|
||||||
|
|
||||||
console.log('Document created successfully at project root!');
|
|
15
demo/demo4.ts
Normal file
15
demo/demo4.ts
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
// Example of how you would create a table and add data to it
|
||||||
|
// Import from 'docx' rather than '../build' if you install from npm
|
||||||
|
import * as fs from "fs";
|
||||||
|
import { Document, Packer, Paragraph } from "../build";
|
||||||
|
|
||||||
|
const doc = new Document();
|
||||||
|
|
||||||
|
const table = doc.createTable(4, 4);
|
||||||
|
table.getCell(2, 2).addContent(new Paragraph("Hello"));
|
||||||
|
|
||||||
|
const packer = new Packer();
|
||||||
|
|
||||||
|
packer.toBuffer(doc).then((buffer) => {
|
||||||
|
fs.writeFileSync("My Document.docx", buffer);
|
||||||
|
});
|
@ -1,18 +0,0 @@
|
|||||||
const docx = require("../build");
|
|
||||||
const fs = require('fs');
|
|
||||||
|
|
||||||
var doc = new docx.Document();
|
|
||||||
|
|
||||||
var paragraph = new docx.Paragraph("Hello World");
|
|
||||||
doc.addParagraph(paragraph);
|
|
||||||
|
|
||||||
doc.createImage(fs.readFileSync("./demo/images/image1.jpeg"));
|
|
||||||
doc.createImage(fs.readFileSync("./demo/images/dog.png"));
|
|
||||||
doc.createImage(fs.readFileSync("./demo/images/cat.jpg"));
|
|
||||||
doc.createImage(fs.readFileSync("./demo/images/parrots.bmp"));
|
|
||||||
doc.createImage(fs.readFileSync("./demo/images/pizza.gif"));
|
|
||||||
|
|
||||||
var exporter = new docx.LocalPacker(doc);
|
|
||||||
exporter.pack("My Document");
|
|
||||||
|
|
||||||
console.log("Document created successfully at project root!");
|
|
21
demo/demo5.ts
Normal file
21
demo/demo5.ts
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
// Example of how to add images to the document - You can use Buffers, UInt8Arrays or Base64 strings
|
||||||
|
// Import from 'docx' rather than '../build' if you install from npm
|
||||||
|
import * as fs from "fs";
|
||||||
|
import { Document, Packer, Paragraph } from "../build";
|
||||||
|
|
||||||
|
const doc = new Document();
|
||||||
|
|
||||||
|
const paragraph = new Paragraph("Hello World");
|
||||||
|
doc.addParagraph(paragraph);
|
||||||
|
|
||||||
|
doc.createImage(fs.readFileSync("./demo/images/image1.jpeg"));
|
||||||
|
doc.createImage(fs.readFileSync("./demo/images/dog.png").toString("base64"));
|
||||||
|
doc.createImage(fs.readFileSync("./demo/images/cat.jpg"));
|
||||||
|
doc.createImage(fs.readFileSync("./demo/images/parrots.bmp"));
|
||||||
|
doc.createImage(fs.readFileSync("./demo/images/pizza.gif"));
|
||||||
|
|
||||||
|
const packer = new Packer();
|
||||||
|
|
||||||
|
packer.toBuffer(doc).then((buffer) => {
|
||||||
|
fs.writeFileSync("My Document.docx", buffer);
|
||||||
|
});
|
@ -1,25 +0,0 @@
|
|||||||
const docx = require("../build");
|
|
||||||
|
|
||||||
var doc = new docx.Document(undefined, {
|
|
||||||
top: 0,
|
|
||||||
right: 0,
|
|
||||||
bottom: 0,
|
|
||||||
left: 0,
|
|
||||||
});
|
|
||||||
|
|
||||||
var paragraph = new docx.Paragraph("Hello World");
|
|
||||||
var institutionText = new docx.TextRun("University College London").bold();
|
|
||||||
var dateText = new docx.TextRun("5th Dec 2015").tab().bold();
|
|
||||||
paragraph.addRun(institutionText);
|
|
||||||
paragraph.addRun(dateText);
|
|
||||||
|
|
||||||
doc.addParagraph(paragraph);
|
|
||||||
|
|
||||||
doc.createParagraph("Hello World").heading1();
|
|
||||||
doc.createParagraph("University College London");
|
|
||||||
doc.createParagraph("5th Dec 2015");
|
|
||||||
|
|
||||||
var exporter = new docx.LocalPacker(doc);
|
|
||||||
exporter.pack("My Document");
|
|
||||||
|
|
||||||
console.log("Document created successfully at project root!");
|
|
29
demo/demo6.ts
Normal file
29
demo/demo6.ts
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
// Example of how to change page borders
|
||||||
|
// Import from 'docx' rather than '../build' if you install from npm
|
||||||
|
import * as fs from "fs";
|
||||||
|
import { Document, Packer, Paragraph, TextRun } from "../build";
|
||||||
|
|
||||||
|
const doc = new Document(undefined, {
|
||||||
|
top: 0,
|
||||||
|
right: 0,
|
||||||
|
bottom: 0,
|
||||||
|
left: 0,
|
||||||
|
});
|
||||||
|
|
||||||
|
const paragraph = new Paragraph("Hello World");
|
||||||
|
const institutionText = new TextRun("Foo bar").bold();
|
||||||
|
const dateText = new TextRun("Github is the best").tab().bold();
|
||||||
|
paragraph.addRun(institutionText);
|
||||||
|
paragraph.addRun(dateText);
|
||||||
|
|
||||||
|
doc.addParagraph(paragraph);
|
||||||
|
|
||||||
|
doc.createParagraph("Hello World").heading1();
|
||||||
|
doc.createParagraph("Foo bar");
|
||||||
|
doc.createParagraph("Github is the best");
|
||||||
|
|
||||||
|
const packer = new Packer();
|
||||||
|
|
||||||
|
packer.toBuffer(doc).then((buffer) => {
|
||||||
|
fs.writeFileSync("My Document.docx", buffer);
|
||||||
|
});
|
@ -1,14 +0,0 @@
|
|||||||
const docx = require("../build");
|
|
||||||
|
|
||||||
var doc = new docx.Document(undefined, {
|
|
||||||
orientation: "landscape",
|
|
||||||
});
|
|
||||||
|
|
||||||
var paragraph = new docx.Paragraph("Hello World");
|
|
||||||
|
|
||||||
doc.addParagraph(paragraph);
|
|
||||||
|
|
||||||
var exporter = new docx.LocalPacker(doc);
|
|
||||||
exporter.pack("My Document");
|
|
||||||
|
|
||||||
console.log("Document created successfully at project root!");
|
|
18
demo/demo7.ts
Normal file
18
demo/demo7.ts
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
// Example of how to set the document to landscape
|
||||||
|
// Import from 'docx' rather than '../build' if you install from npm
|
||||||
|
import * as fs from "fs";
|
||||||
|
import { Document, Packer, PageOrientation, Paragraph } from "../build";
|
||||||
|
|
||||||
|
const doc = new Document(undefined, {
|
||||||
|
orientation: PageOrientation.LANDSCAPE,
|
||||||
|
});
|
||||||
|
|
||||||
|
const paragraph = new Paragraph("Hello World");
|
||||||
|
|
||||||
|
doc.addParagraph(paragraph);
|
||||||
|
|
||||||
|
const packer = new Packer();
|
||||||
|
|
||||||
|
packer.toBuffer(doc).then((buffer) => {
|
||||||
|
fs.writeFileSync("My Document.docx", buffer);
|
||||||
|
});
|
@ -1,13 +0,0 @@
|
|||||||
const docx = require('../build');
|
|
||||||
|
|
||||||
var doc = new docx.Document();
|
|
||||||
|
|
||||||
doc.createParagraph("Hello World");
|
|
||||||
|
|
||||||
doc.Header.createParagraph("Header text");
|
|
||||||
doc.Footer.createParagraph("Footer text");
|
|
||||||
|
|
||||||
var exporter = new docx.LocalPacker(doc);
|
|
||||||
exporter.pack('My Document');
|
|
||||||
|
|
||||||
console.log('Document created successfully at project root!');
|
|
17
demo/demo8.ts
Normal file
17
demo/demo8.ts
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
// Add text to header and footer
|
||||||
|
// Import from 'docx' rather than '../build' if you install from npm
|
||||||
|
import * as fs from "fs";
|
||||||
|
import { Document, Packer } from "../build";
|
||||||
|
|
||||||
|
const doc = new Document();
|
||||||
|
|
||||||
|
doc.createParagraph("Hello World");
|
||||||
|
|
||||||
|
doc.Header.createParagraph("Header text");
|
||||||
|
doc.Footer.createParagraph("Footer text");
|
||||||
|
|
||||||
|
const packer = new Packer();
|
||||||
|
|
||||||
|
packer.toBuffer(doc).then((buffer) => {
|
||||||
|
fs.writeFileSync("My Document.docx", buffer);
|
||||||
|
});
|
@ -1,14 +0,0 @@
|
|||||||
const docx = require('../build');
|
|
||||||
const fs = require('fs');
|
|
||||||
|
|
||||||
var doc = new docx.Document();
|
|
||||||
|
|
||||||
doc.createParagraph("Hello World");
|
|
||||||
|
|
||||||
doc.Header.createImage(fs.readFileSync("./demo/images/pizza.gif"));
|
|
||||||
doc.Footer.createImage(fs.readFileSync("./demo/images/pizza.gif"));
|
|
||||||
|
|
||||||
var exporter = new docx.LocalPacker(doc);
|
|
||||||
exporter.pack('My Document');
|
|
||||||
|
|
||||||
console.log('Document created successfully at project root!');
|
|
17
demo/demo9.ts
Normal file
17
demo/demo9.ts
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
// Add images to header and footer
|
||||||
|
// Import from 'docx' rather than '../build' if you install from npm
|
||||||
|
import * as fs from "fs";
|
||||||
|
import { Document, Packer } from "../build";
|
||||||
|
|
||||||
|
const doc = new Document();
|
||||||
|
|
||||||
|
doc.createParagraph("Hello World");
|
||||||
|
|
||||||
|
doc.Header.createImage(fs.readFileSync("./demo/images/pizza.gif"));
|
||||||
|
doc.Footer.createImage(fs.readFileSync("./demo/images/pizza.gif"));
|
||||||
|
|
||||||
|
const packer = new Packer();
|
||||||
|
|
||||||
|
packer.toBuffer(doc).then((buffer) => {
|
||||||
|
fs.writeFileSync("My Document.docx", buffer);
|
||||||
|
});
|
@ -18,12 +18,16 @@ prompt.start();
|
|||||||
|
|
||||||
prompt.get(schema, function (err, result) {
|
prompt.get(schema, function (err, result) {
|
||||||
var demoNumber = result.number;
|
var demoNumber = result.number;
|
||||||
var filePath = `./demo/demo${demoNumber}.js`;
|
var filePath = `./demo/demo${demoNumber}.ts`;
|
||||||
|
|
||||||
if (!fs.existsSync(filePath)) {
|
if (!fs.existsSync(filePath)) {
|
||||||
console.error(`demo${demoNumber} does not exist: ${filePath}`);
|
console.error(`demo${demoNumber} does not exist: ${filePath}`);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
console.log(`Running demo ${demoNumber}`);
|
console.log(`Running demo ${demoNumber}`);
|
||||||
shelljs.exec(`node ${filePath}`);
|
if (shelljs.exec(`npm run ts-node -- ${filePath}`).code === 0) {
|
||||||
|
console.log("Document created successfully");
|
||||||
|
} else {
|
||||||
|
console.error('Something went wrong with the demo');
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
@ -17,7 +17,8 @@
|
|||||||
"typedoc": "typedoc src/index.ts",
|
"typedoc": "typedoc src/index.ts",
|
||||||
"style": "prettier -l \"src/**/*.ts\"",
|
"style": "prettier -l \"src/**/*.ts\"",
|
||||||
"style.fix": "prettier \"src/**/*.ts\" --write",
|
"style.fix": "prettier \"src/**/*.ts\" --write",
|
||||||
"fix-types": "node types-absolute-fixer.js"
|
"fix-types": "node types-absolute-fixer.js",
|
||||||
|
"ts-node": "ts-node"
|
||||||
},
|
},
|
||||||
"pre-commit": [
|
"pre-commit": [
|
||||||
"style",
|
"style",
|
||||||
@ -76,6 +77,7 @@
|
|||||||
"rimraf": "^2.5.2",
|
"rimraf": "^2.5.2",
|
||||||
"shelljs": "^0.7.7",
|
"shelljs": "^0.7.7",
|
||||||
"sinon": "^5.0.7",
|
"sinon": "^5.0.7",
|
||||||
|
"ts-node": "^7.0.1",
|
||||||
"tslint": "^5.11.0",
|
"tslint": "^5.11.0",
|
||||||
"typedoc": "^0.11.1",
|
"typedoc": "^0.11.1",
|
||||||
"typescript": "2.9.2",
|
"typescript": "2.9.2",
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// http://officeopenxml.com/WPindentation.php
|
// http://officeopenxml.com/WPindentation.php
|
||||||
import { XmlAttributeComponent, XmlComponent } from "file/xml-components";
|
import { XmlAttributeComponent, XmlComponent } from "file/xml-components";
|
||||||
|
|
||||||
interface IIndentAttributesProperties {
|
export interface IIndentAttributesProperties {
|
||||||
left?: number;
|
left?: number;
|
||||||
hanging?: number;
|
hanging?: number;
|
||||||
firstLine?: number;
|
firstLine?: number;
|
||||||
@ -20,7 +20,7 @@ class IndentAttributes extends XmlAttributeComponent<IIndentAttributesProperties
|
|||||||
}
|
}
|
||||||
|
|
||||||
export class Indent extends XmlComponent {
|
export class Indent extends XmlComponent {
|
||||||
constructor(attrs: object) {
|
constructor(attrs: IIndentAttributesProperties) {
|
||||||
super("w:ind");
|
super("w:ind");
|
||||||
this.root.push(new IndentAttributes(attrs));
|
this.root.push(new IndentAttributes(attrs));
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ import { XmlComponent } from "file/xml-components";
|
|||||||
import { Alignment } from "./formatting/alignment";
|
import { Alignment } from "./formatting/alignment";
|
||||||
import { Bidirectional } from "./formatting/bidirectional";
|
import { Bidirectional } from "./formatting/bidirectional";
|
||||||
import { ThematicBreak } from "./formatting/border";
|
import { ThematicBreak } from "./formatting/border";
|
||||||
import { Indent } from "./formatting/indent";
|
import { IIndentAttributesProperties, Indent } from "./formatting/indent";
|
||||||
import { KeepLines, KeepNext } from "./formatting/keep";
|
import { KeepLines, KeepNext } from "./formatting/keep";
|
||||||
import { PageBreak, PageBreakBefore } from "./formatting/page-break";
|
import { PageBreak, PageBreakBefore } from "./formatting/page-break";
|
||||||
import { ISpacingProperties, Spacing } from "./formatting/spacing";
|
import { ISpacingProperties, Spacing } from "./formatting/spacing";
|
||||||
@ -188,7 +188,7 @@ export class Paragraph extends XmlComponent {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public indent(attrs: object): Paragraph {
|
public indent(attrs: IIndentAttributesProperties): Paragraph {
|
||||||
this.properties.push(new Indent(attrs));
|
this.properties.push(new Indent(attrs));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@ -222,4 +222,8 @@ export class Paragraph extends XmlComponent {
|
|||||||
this.properties.push(new Bidirectional());
|
this.properties.push(new Bidirectional());
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public get Properties(): ParagraphProperties {
|
||||||
|
return this.properties;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,8 @@
|
|||||||
"node_modules",
|
"node_modules",
|
||||||
"tests",
|
"tests",
|
||||||
"**/*.spec.ts",
|
"**/*.spec.ts",
|
||||||
"**/_*"
|
"**/_*",
|
||||||
|
"demo"
|
||||||
],
|
],
|
||||||
"typedocOptions": {
|
"typedocOptions": {
|
||||||
"mode": "file",
|
"mode": "file",
|
||||||
|
Reference in New Issue
Block a user