Merge pull request #114 from amitm02/complex-font-bold
add bold and italic formatting support for complex font (e.g Hebrew)
This commit is contained in:
@ -2,11 +2,23 @@ const docx = require('../build');
|
||||
|
||||
var doc = new docx.Document();
|
||||
|
||||
var textRun = new docx.TextRun("שלום עולם").rtl();
|
||||
var paragraph = new docx.Paragraph().bidi();
|
||||
paragraph.addRun(textRun);
|
||||
|
||||
doc.addParagraph(paragraph);
|
||||
|
||||
var paragraph1 = new docx.Paragraph().bidi();
|
||||
var textRun1 = new docx.TextRun("שלום עולם").rtl();
|
||||
paragraph1.addRun(textRun1);
|
||||
doc.addParagraph(paragraph1);
|
||||
|
||||
var paragraph2 = new docx.Paragraph().bidi();
|
||||
var textRun2 = new docx.TextRun("שלום עולם").bold().rtl();
|
||||
paragraph2.addRun(textRun2);
|
||||
doc.addParagraph(paragraph2);
|
||||
|
||||
var paragraph3 = new docx.Paragraph().bidi();
|
||||
var textRun3 = new docx.TextRun("שלום עולם").italic().rtl();
|
||||
paragraph3.addRun(textRun3);
|
||||
doc.addParagraph(paragraph3);
|
||||
|
||||
|
||||
var exporter = new docx.LocalPacker(doc);
|
||||
exporter.pack('My Document');
|
||||
|
@ -14,6 +14,17 @@ export class Bold extends XmlComponent {
|
||||
}
|
||||
}
|
||||
|
||||
export class BoldCs extends XmlComponent {
|
||||
constructor() {
|
||||
super("w:bCs");
|
||||
this.root.push(
|
||||
new Attributes({
|
||||
val: true,
|
||||
}),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export class Italics extends XmlComponent {
|
||||
constructor() {
|
||||
super("w:i");
|
||||
@ -25,6 +36,17 @@ export class Italics extends XmlComponent {
|
||||
}
|
||||
}
|
||||
|
||||
export class ItalicsCs extends XmlComponent {
|
||||
constructor() {
|
||||
super("w:iCs");
|
||||
this.root.push(
|
||||
new Attributes({
|
||||
val: true,
|
||||
}),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export class Caps extends XmlComponent {
|
||||
constructor() {
|
||||
super("w:caps");
|
||||
|
@ -16,6 +16,7 @@ describe("Run", () => {
|
||||
run.bold();
|
||||
const newJson = Utility.jsonify(run);
|
||||
assert.equal(newJson.root[0].root[0].rootKey, "w:b");
|
||||
assert.equal(newJson.root[0].root[1].rootKey, "w:bCs");
|
||||
});
|
||||
});
|
||||
|
||||
@ -24,6 +25,7 @@ describe("Run", () => {
|
||||
run.italic();
|
||||
const newJson = Utility.jsonify(run);
|
||||
assert.equal(newJson.root[0].root[0].rootKey, "w:i");
|
||||
assert.equal(newJson.root[0].root[1].rootKey, "w:iCs");
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
// http://officeopenxml.com/WPtext.php
|
||||
import { Break } from "./break";
|
||||
import { Caps, SmallCaps } from "./caps";
|
||||
import { Bold, Color, DoubleStrike, Italics, RTL, Size, SizeCs, Strike } from "./formatting";
|
||||
import { Bold, BoldCs, Color, DoubleStrike, Italics, ItalicsCs, RTL, Size, SizeCs, Strike } from "./formatting";
|
||||
import { Begin, End, Page, Separate } from "./page-number";
|
||||
import { RunProperties } from "./properties";
|
||||
import { RunFonts } from "./run-fonts";
|
||||
@ -23,11 +23,13 @@ export class Run extends XmlComponent {
|
||||
|
||||
public bold(): Run {
|
||||
this.properties.push(new Bold());
|
||||
this.properties.push(new BoldCs());
|
||||
return this;
|
||||
}
|
||||
|
||||
public italic(): Run {
|
||||
this.properties.push(new Italics());
|
||||
this.properties.push(new ItalicsCs());
|
||||
return this;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user