Commit f047ee75 authored by Sergey Luzyanin's avatar Sergey Luzyanin

Добавил возможность добавлять заголовки серий и названия категори диаграмм.

Добавлены обертки дял цветов.
parent e8fd4a2d
......@@ -8732,6 +8732,18 @@ function getAbsoluteRectBoundsArr(aDrawings)
return {arrBounds: arrBounds, minX: minX, maxX: maxX, minY: minY, maxY: maxY};
}
function CalcLiterByLength(aAlphaBet, nLength)
{
var modulo = nLength;
var sResultLiter = '';
while(modulo > 0)
{
sResultLiter = aAlphaBet[modulo%aAlphaBet.length] + sResultLiter;
modulo = (modulo/aAlphaBet.length) >> 0;
}
return sResultLiter;
}
//--------------------------------------------------------export----------------------------------------------------
window['AscFormat'] = window['AscFormat'] || {};
window['AscFormat'].HANDLE_EVENT_MODE_HANDLE = HANDLE_EVENT_MODE_HANDLE;
......@@ -8778,4 +8790,5 @@ function getAbsoluteRectBoundsArr(aDrawings)
window['AscFormat'].GetMinSnapDistanceYObject = GetMinSnapDistanceYObject;
window['AscFormat'].GetMinSnapDistanceXObjectByArrays = GetMinSnapDistanceXObjectByArrays;
window['AscFormat'].GetMinSnapDistanceYObjectByArrays = GetMinSnapDistanceYObjectByArrays;
window['AscFormat'].CalcLiterByLength = CalcLiterByLength;
})(window);
......@@ -268,6 +268,66 @@
}
AscCommon.extendClass(ApiChart, ApiDrawing);
/**
* Class representing a base class for color types
* @constructor
*/
function ApiUniColor(Unicolor)
{
this.Unicolor = Unicolor;
}
/**
* Class representing RGB color
*/
function ApiRGBColor(r, g, b)
{
ApiRGBColor.superclass.constructor.call(this, AscFormat.CreateUniColorRGB(r, g, b));
}
AscCommon.extendClass(ApiRGBColor, ApiUniColor);
/**
* Class representing a Scheme Color
* @constructor
*/
function ApiSchemeColor(sColorId)
{
var oUniColor = new AscFormat.CUniColor();
oUniColor.setColor(new CSchemeColor());
switch(sColorId)
{
case "accent1": { oUniColor.color.id = 0; break;}
case "accent2": { oUniColor.color.id = 1; break;}
case "accent3": { oUniColor.color.id = 2; break;}
case "accent4": { oUniColor.color.id = 3; break;}
case "accent5": { oUniColor.color.id = 4; break;}
case "accent6": { oUniColor.color.id = 5; break;}
case "bg1": { oUniColor.color.id = 6; break;}
case "bg2": { oUniColor.color.id = 7; break;}
case "dk1": { oUniColor.color.id = 8; break;}
case "dk2": { oUniColor.color.id = 9; break;}
case "lt1": { oUniColor.color.id = 12; break;}
case "lt2": { oUniColor.color.id = 13; break;}
case "tx1": { oUniColor.color.id = 15; break;}
case "tx2": { oUniColor.color.id = 16; break;}
default: { oUniColor.color.id = 16; break;}
}
ApiSchemeColor.superclass.constructor.call(this, oUniColor);
}
AscCommon.extendClass(ApiSchemeColor, ApiUniColor);
/**
* Class representing a Preset Color
* @constructor
* */
function ApiPresetColor(sPresetColor)
{
var oUniColor = new AscFormat.CUniColor();
oUniColor.setColor(new CPrstColor());
oUniColor.color.id = sPresetColor;
ApiPresetColor.superclass.constructor.call(this, oUniColor);
}
AscCommon.extendClass(ApiPresetColor, ApiUniColor);
/**
* Twentieths of a point (equivalent to 1/1440th of an inch).
* @typedef {number} twips
......@@ -381,10 +441,209 @@
* @typedef {("bar" | "barStacked" | "barStackedPercent" | "bar3D" | "barStacked3D" | "barStackedPercent3D" | "barStackedPercent3DPerspective" | "horizontalBar" | "horizontalBarStacked" | "horizontalBarStackedPercent" | "horizontalBar3D" | "horizontalBarStacked3D" | "horizontalBarStackedPercent3D" | "lineNormal" | "lineStacked" | "lineStackedPercent" | "line3D" | "pie" | "pie3D" | "doughnut" | "scatter" | "stock")} ChartType
*/
/**
* @typedef {("top" | "center" | "bottom")} VerticalTextAlign
* */
/**
* @typedef {("accent1" | "accent2" | "accent3" | "accent4" | "accent5" | "accent6" | "bg1" | "bg2" | "dk1" | "dk2" | "lt1" | "lt2" | "tx1" | "tx2")} SchemeColorId
* */
map_prst_color["aliceBlue"] = 0xF0F8FF;
map_prst_color["antiqueWhite"] = 0xFAEBD7;
map_prst_color["aqua"] = 0x00FFFF;
map_prst_color["aquamarine"] = 0x7FFFD4;
map_prst_color["azure"] = 0xF0FFFF;
map_prst_color["beige"] = 0xF5F5DC;
map_prst_color["bisque"] = 0xFFE4C4;
map_prst_color["black"] = 0x000000;
map_prst_color["blanchedAlmond"] = 0xFFEBCD;
map_prst_color["blue"] = 0x0000FF;
map_prst_color["blueViolet"] = 0x8A2BE2;
map_prst_color["brown"] = 0xA52A2A;
map_prst_color["burlyWood"] = 0xDEB887;
map_prst_color["cadetBlue"] = 0x5F9EA0;
map_prst_color["chartreuse"] = 0x7FFF00;
map_prst_color["chocolate"] = 0xD2691E;
map_prst_color["coral"] = 0xFF7F50;
map_prst_color["cornflowerBlue"] = 0x6495ED;
map_prst_color["cornsilk"] = 0xFFF8DC;
map_prst_color["crimson"] = 0xDC143C;
map_prst_color["cyan"] = 0x00FFFF;
map_prst_color["darkBlue"] = 0x00008B;
map_prst_color["darkCyan"] = 0x008B8B;
map_prst_color["darkGoldenrod"] = 0xB8860B;
map_prst_color["darkGray"] = 0xA9A9A9;
map_prst_color["darkGreen"] = 0x006400;
map_prst_color["darkGrey"] = 0xA9A9A9;
map_prst_color["darkKhaki"] = 0xBDB76B;
map_prst_color["darkMagenta"] = 0x8B008B;
map_prst_color["darkOliveGreen"] = 0x556B2F;
map_prst_color["darkOrange"] = 0xFF8C00;
map_prst_color["darkOrchid"] = 0x9932CC;
map_prst_color["darkRed"] = 0x8B0000;
map_prst_color["darkSalmon"] = 0xE9967A;
map_prst_color["darkSeaGreen"] = 0x8FBC8F;
map_prst_color["darkSlateBlue"] = 0x483D8B;
map_prst_color["darkSlateGray"] = 0x2F4F4F;
map_prst_color["darkSlateGrey"] = 0x2F4F4F;
map_prst_color["darkTurquoise"] = 0x00CED1;
map_prst_color["darkViolet"] = 0x9400D3;
map_prst_color["deepPink"] = 0xFF1493;
map_prst_color["deepSkyBlue"] = 0x00BFFF;
map_prst_color["dimGray"] = 0x696969;
map_prst_color["dimGrey"] = 0x696969;
map_prst_color["dkBlue"] = 0x00008B;
map_prst_color["dkCyan"] = 0x008B8B;
map_prst_color["dkGoldenrod"] = 0xB8860B;
map_prst_color["dkGray"] = 0xA9A9A9;
map_prst_color["dkGreen"] = 0x006400;
map_prst_color["dkGrey"] = 0xA9A9A9;
map_prst_color["dkKhaki"] = 0xBDB76B;
map_prst_color["dkMagenta"] = 0x8B008B;
map_prst_color["dkOliveGreen"] = 0x556B2F;
map_prst_color["dkOrange"] = 0xFF8C00;
map_prst_color["dkOrchid"] = 0x9932CC;
map_prst_color["dkRed"] = 0x8B0000;
map_prst_color["dkSalmon"] = 0xE9967A;
map_prst_color["dkSeaGreen"] = 0x8FBC8B;
map_prst_color["dkSlateBlue"] = 0x483D8B;
map_prst_color["dkSlateGray"] = 0x2F4F4F;
map_prst_color["dkSlateGrey"] = 0x2F4F4F;
map_prst_color["dkTurquoise"] = 0x00CED1;
map_prst_color["dkViolet"] = 0x9400D3;
map_prst_color["dodgerBlue"] = 0x1E90FF;
map_prst_color["firebrick"] = 0xB22222;
map_prst_color["floralWhite"] = 0xFFFAF0;
map_prst_color["forestGreen"] = 0x228B22;
map_prst_color["fuchsia"] = 0xFF00FF;
map_prst_color["gainsboro"] = 0xDCDCDC;
map_prst_color["ghostWhite"] = 0xF8F8FF;
map_prst_color["gold"] = 0xFFD700;
map_prst_color["goldenrod"] = 0xDAA520;
map_prst_color["gray"] = 0x808080;
map_prst_color["green"] = 0x008000;
map_prst_color["greenYellow"] = 0xADFF2F;
map_prst_color["grey"] = 0x808080;
map_prst_color["honeydew"] = 0xF0FFF0;
map_prst_color["hotPink"] = 0xFF69B4;
map_prst_color["indianRed"] = 0xCD5C5C;
map_prst_color["indigo"] = 0x4B0082;
map_prst_color["ivory"] = 0xFFFFF0;
map_prst_color["khaki"] = 0xF0E68C;
map_prst_color["lavender"] = 0xE6E6FA;
map_prst_color["lavenderBlush"] = 0xFFF0F5;
map_prst_color["lawnGreen"] = 0x7CFC00;
map_prst_color["lemonChiffon"] = 0xFFFACD;
map_prst_color["lightBlue"] = 0xADD8E6;
map_prst_color["lightCoral"] = 0xF08080;
map_prst_color["lightCyan"] = 0xE0FFFF;
map_prst_color["lightGoldenrodYellow"] = 0xFAFAD2;
map_prst_color["lightGray"] = 0xD3D3D3;
map_prst_color["lightGreen"] = 0x90EE90;
map_prst_color["lightGrey"] = 0xD3D3D3;
map_prst_color["lightPink"] = 0xFFB6C1;
map_prst_color["lightSalmon"] = 0xFFA07A;
map_prst_color["lightSeaGreen"] = 0x20B2AA;
map_prst_color["lightSkyBlue"] = 0x87CEFA;
map_prst_color["lightSlateGray"] = 0x778899;
map_prst_color["lightSlateGrey"] = 0x778899;
map_prst_color["lightSteelBlue"] = 0xB0C4DE;
map_prst_color["lightYellow"] = 0xFFFFE0;
map_prst_color["lime"] = 0x00FF00;
map_prst_color["limeGreen"] = 0x32CD32;
map_prst_color["linen"] = 0xFAF0E6;
map_prst_color["ltBlue"] = 0xADD8E6;
map_prst_color["ltCoral"] = 0xF08080;
map_prst_color["ltCyan"] = 0xE0FFFF;
map_prst_color["ltGoldenrodYellow"] = 0xFAFA78;
map_prst_color["ltGray"] = 0xD3D3D3;
map_prst_color["ltGreen"] = 0x90EE90;
map_prst_color["ltGrey"] = 0xD3D3D3;
map_prst_color["ltPink"] = 0xFFB6C1;
map_prst_color["ltSalmon"] = 0xFFA07A;
map_prst_color["ltSeaGreen"] = 0x20B2AA;
map_prst_color["ltSkyBlue"] = 0x87CEFA;
map_prst_color["ltSlateGray"] = 0x778899;
map_prst_color["ltSlateGrey"] = 0x778899;
map_prst_color["ltSteelBlue"] = 0xB0C4DE;
map_prst_color["ltYellow"] = 0xFFFFE0;
map_prst_color["magenta"] = 0xFF00FF;
map_prst_color["maroon"] = 0x800000;
map_prst_color["medAquamarine"] = 0x66CDAA;
map_prst_color["medBlue"] = 0x0000CD;
map_prst_color["mediumAquamarine"] = 0x66CDAA;
map_prst_color["mediumBlue"] = 0x0000CD;
map_prst_color["mediumOrchid"] = 0xBA55D3;
map_prst_color["mediumPurple"] = 0x9370DB;
map_prst_color["mediumSeaGreen"] = 0x3CB371;
map_prst_color["mediumSlateBlue"] = 0x7B68EE;
map_prst_color["mediumSpringGreen"] = 0x00FA9A;
map_prst_color["mediumTurquoise"] = 0x48D1CC;
map_prst_color["mediumVioletRed"] = 0xC71585;
map_prst_color["medOrchid"] = 0xBA55D3;
map_prst_color["medPurple"] = 0x9370DB;
map_prst_color["medSeaGreen"] = 0x3CB371;
map_prst_color["medSlateBlue"] = 0x7B68EE;
map_prst_color["medSpringGreen"] = 0x00FA9A;
map_prst_color["medTurquoise"] = 0x48D1CC;
map_prst_color["medVioletRed"] = 0xC71585;
map_prst_color["midnightBlue"] = 0x191970;
map_prst_color["mintCream"] = 0xF5FFFA;
map_prst_color["mistyRose"] = 0xFFE4FF;
map_prst_color["moccasin"] = 0xFFE4B5;
map_prst_color["navajoWhite"] = 0xFFDEAD;
map_prst_color["navy"] = 0x000080;
map_prst_color["oldLace"] = 0xFDF5E6;
map_prst_color["olive"] = 0x808000;
map_prst_color["oliveDrab"] = 0x6B8E23;
map_prst_color["orange"] = 0xFFA500;
map_prst_color["orangeRed"] = 0xFF4500;
map_prst_color["orchid"] = 0xDA70D6;
map_prst_color["paleGoldenrod"] = 0xEEE8AA;
map_prst_color["paleGreen"] = 0x98FB98;
map_prst_color["paleTurquoise"] = 0xAFEEEE;
map_prst_color["paleVioletRed"] = 0xDB7093;
map_prst_color["papayaWhip"] = 0xFFEFD5;
map_prst_color["peachPuff"] = 0xFFDAB9;
map_prst_color["peru"] = 0xCD853F;
map_prst_color["pink"] = 0xFFC0CB;
map_prst_color["plum"] = 0xD3A0D3;
map_prst_color["powderBlue"] = 0xB0E0E6;
map_prst_color["purple"] = 0x800080;
map_prst_color["red"] = 0xFF0000;
map_prst_color["rosyBrown"] = 0xBC8F8F;
map_prst_color["royalBlue"] = 0x4169E1;
map_prst_color["saddleBrown"] = 0x8B4513;
map_prst_color["salmon"] = 0xFA8072;
map_prst_color["sandyBrown"] = 0xF4A460;
map_prst_color["seaGreen"] = 0x2E8B57;
map_prst_color["seaShell"] = 0xFFF5EE;
map_prst_color["sienna"] = 0xA0522D;
map_prst_color["silver"] = 0xC0C0C0;
map_prst_color["skyBlue"] = 0x87CEEB;
map_prst_color["slateBlue"] = 0x6A5AEB;
map_prst_color["slateGray"] = 0x708090;
map_prst_color["slateGrey"] = 0x708090;
map_prst_color["snow"] = 0xFFFAFA;
map_prst_color["springGreen"] = 0x00FF7F;
map_prst_color["steelBlue"] = 0x4682B4;
map_prst_color["tan"] = 0xD2B48C;
map_prst_color["teal"] = 0x008080;
map_prst_color["thistle"] = 0xD8BFD8;
map_prst_color["tomato"] = 0xFF7347;
map_prst_color["turquoise"] = 0x40E0D0;
map_prst_color["violet"] = 0xEE82EE;
map_prst_color["wheat"] = 0xF5DEB3;
map_prst_color["white"] = 0xFFFFFF;
map_prst_color["whiteSmoke"] = 0xF5F5F5;
map_prst_color["yellow"] = 0xFFFF00;
map_prst_color["yellowGreen"] = 0x9ACD32;
/**
* @typedef {("accent1" | "accent2" | "accent3" | "accent4" | "accent5" | "accent6" | "bg1" | "bg2" | "dk1" | "dk2" | "lt1" | "lt2" | "tx1" | "tx2")} PresetColor
* */
//------------------------------------------------------------------------------------------------------------------
//
// Base Api
......@@ -502,11 +761,13 @@
* @memberof Api
* @param {ChartType} [sType="bar"]
* @param {Array} aSeries
* @param {Array} aSeriesNames
* @param {Array} aCatNames
* @param {EMU} nWidth
* @param {EMU} nHeight
* @returns {ApiChart}
* */
Api.prototype.CreateChart = function(sType, aSeries, nWidth, nHeight)
Api.prototype.CreateChart = function(sType, aSeries, aSeriesNames, aCatNames, nWidth, nHeight)
{
var oDrawingDocument = private_GetDrawingDocument();
var oLogicDocument = private_GetLogicDocument();
......@@ -627,22 +888,43 @@
}
}
var aAscSeries = [];
var aAlphaBet = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];
var oCat;
if(aCatNames.length > 0)
{
aCatNames = { Formula: "Sheet1!$B$1:$" + AscFormat.CalcLiterByLength(aAlphaBet, aCatNames.length + 1) + "$1", NumCache: [aCatNames] };
}
for(var i = 0; i < aSeries.length; ++i)
{
var oAscSeries = new AscFormat.asc_CChartSeria();
oAscSeries.Val.NumCache = [];
var aData = aSeries[i];
var sEndLiter = AscFormat.CalcLiterByLength(aAlphaBet, aData.length + 1);
oAscSeries.Val.Formula = 'Sheet1!' + '$B$' + (i + 1) + ':$' + sEndLiter + (i + 1);
if(aSeriesNames[i])
{
oAscSeries.TxCache.Formula = 'Sheet1!' + '$A$' + (i + 1);
oAscSeries.TxCache.Tx = aSeriesNames[i];
}
for(var j = 0; j < aData.length; ++j)
{
oAscSeries.Val.NumCache.push({ numFormatStr: "General", isDateTimeFormat: false, val: value, isHidden: false });
oAscSeries.Val.NumCache.push({ numFormatStr: "General", isDateTimeFormat: false, val: aData[j], isHidden: false });
}
aAscSeries.push(oAscSeries);
}
var chartSeries = {series: aAscSeries, parsedHeaders: {bLeft: true, bTop: true}};
var oDrawing = new AscCommon.ParaDrawing( nW, nH, null, oDrawingDocument, this, null);
var oDrawing = new ParaDrawing( nW, nH, null, oDrawingDocument, null, null);
var oChartSpace = AscFormat.DrawingObjectsController.prototype._getChartSpace(chartSeries, settings, true);
if(!oChartSpace)
{
return null;
}
oChartSpace.setParent(oDrawing);
oDrawing.Set_GraphicObject(oChartSpace);
oChartSpace.extX = nW;
oChartSpace.extY = nH;
AscFormat.CheckSpPrXfrm(oChartSpace);
oDrawing.setExtent( oChartSpace.spPr.xfrm.extX, oChartSpace.spPr.xfrm.extY );
return new ApiChart(oChartSpace);
};
......@@ -3340,8 +3622,15 @@
this.Shape.recalculatePen();
this.Shape.spPr.setLn(this.Shape.pen.createDuplicate());
}
if(nWidth === 0)
{
this.Shape.spPr.ln.setFill(AscFormat.CreateNoFillUniFill());
}
else
{
this.Shape.spPr.ln.setW(nWidth);
}
}
};
/**
......@@ -4201,7 +4490,7 @@ function TEST_BUILDER()
oDrawing.SetHorPosition("page", 155575);
oDrawing.SetVerPosition("page", 201295);
oDrawing.SetFillColor(38, 38, 38);
oDrawing.SetLineColor(38, 38, 38);
oDrawing.SetLineWidth(0);
var oDocContent = oDrawing.GetDocContent();
oDocContent.RemoveAllElements();
......@@ -4259,27 +4548,40 @@ function TEST_BUILDER()
oDrawing.SetHorPosition("page", 5673725);
oDrawing.SetVerPosition("page", 201295);
oDrawing.SetFillColor(255, 104, 0);
oDrawing.SetLineColor(255, 104, 0);
oDrawing.SetLineWidth(0);
oParagraph.AddDrawing(oDrawing);
oDocument.Push(oParagraph);
oParagraph = Api.CreateParagraph();
oParagraph.SetStyle(oNoSpacingStyle);
// TODO: Заполнить aвтофигуру
oDrawing = Api.CreateDrawing(5930900, 395605);
oDrawing = Api.CreateShape("rect", 5930900, 395605);
oDrawing.SetWrappingStyle("topAndBottom");
oDrawing.SetHorAlign("margin", "left");
oDrawing.SetVerPosition("paragraph", 5715);
oDrawing.SetDistances(114300, 0, 114300, 0);
oDrawing.SetFillColor(255, 104, 0);
oDocContent = oDrawing.GetDocContent();
oDocContent.RemoveAllElements();
oParagraph2 = Api.CreateParagraph();
oParagraph2.SetJc("left");
oRun2 = oParagraph2.AddText("Product Launch Revenue Plan");
oRun2.SetFontSize(44);
oRun2.SetColor(0, 0, 0);
oRun2.SetFontFamily("Calibri Light");
oDocContent.Push(oParagraph2);
oParagraph.AddDrawing(oDrawing);
oDocument.Push(oParagraph);
oParagraph = Api.CreateParagraph();
oParagraph.SetStyle(oHeading1Style);
// TODO: Заполнить aвтофигуру
oDrawing = Api.CreateDrawing(720725, 1204595);
oDrawing = Api.CreateImage("data:image/jpeg;base64,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", 720725, 1204595);
oDrawing.SetWrappingStyle("tight");
oDrawing.SetHorAlign("margin", "left");
oDrawing.SetVerPosition("page", 1810470);
......@@ -4301,7 +4603,7 @@ function TEST_BUILDER()
oParagraph.SetSpacingAfter(100, true);
oParagraph.SetSpacingBefore(100, true);
// TODO: Заполнить aвтофигуру
oDrawing = Api.CreateDrawing(2695575, 2276475);
oDrawing = Api.CreateImage("", 2695575, 2276475);
oDrawing.SetWrappingStyle("tight");
oDrawing.SetHorPosition("column", 3756901);
oDrawing.SetVerPosition("paragraph", 473470);
......@@ -4315,12 +4617,61 @@ function TEST_BUILDER()
oParagraph.SetSpacingAfter(100, true);
oParagraph.SetSpacingBefore(100, true);
// TODO: Заполнить автофигуру
oDrawing = Api.CreateDrawing(3212465, 963295);
oDrawing = Api.CreateShape("rect", 3212465, 963295);
oDrawing.SetWrappingStyle("topAndBottom");
oDrawing.SetHorPosition("margin", 370205);
oDrawing.SetVerPosition("paragraph", 1170888);
oDrawing.SetDistances(114300, 0, 114300, 0);
oDrawing.SetFillColor(255, 104, 0);
oDocContent = oDrawing.GetDocContent();
oDocContent.RemoveAllElements();
oParagraph2 = Api.CreateParagraph();
oParagraph2.SetJc("left");
oRun2 = oParagraph2.AddText("Phase 1");
oRun2.SetFontSize(20);
oRun2.SetBold(true);
oRun2.SetColor(0, 0, 0);
oRun2.SetFontFamily("Calibri");
oRun2 = oParagraph2.AddText(": Review market tests, marketing plans, and expected sales goals.");
oRun2.SetFontSize(20);
oRun2.SetColor(0, 0, 0);
oRun2.SetFontFamily("Calibri");
oDocContent.Push(oParagraph2);
oParagraph2 = Api.CreateParagraph();
oParagraph2.SetJc("left");
oRun2 = oParagraph2.AddText("Phase 2");
oRun2.SetFontSize(20);
oRun2.SetBold(true);
oRun2.SetColor(0, 0, 0);
oRun2.SetFontFamily("Calibri");
oRun2 = oParagraph2.AddText(": Developers complete final build of the solution.");
oRun2.SetFontSize(20);
oRun2.SetColor(0, 0, 0);
oRun2.SetFontFamily("Calibri");
oDocContent.Push(oParagraph2);
oParagraph2 = Api.CreateParagraph();
oParagraph2.SetJc("left");
oRun2 = oParagraph2.AddText("Phase 3");
oRun2.SetFontSize(20);
oRun2.SetBold(true);
oRun2.SetColor(0, 0, 0);
oRun2.SetFontFamily("Calibri");
oRun2 = oParagraph2.AddText(": The launch phase.");
oRun2.SetFontSize(20);
oRun2.SetColor(0, 0, 0);
oRun2.SetFontFamily("Calibri");
oDocContent.Push(oParagraph2);
oParagraph.AddDrawing(oDrawing);
oParagraph.AddText("After years of market research and focused creative effort we are in a position to take our “Innovate 1” to market. We have a three phase approach in place to complete the product and take the product to market. The first step of this initiative is to test the market. Once we have identified the market, then we will make any final product product to drive that effectively keeps down costs while meeting sales goals. ");
oDocument.Push(oParagraph);
......@@ -4333,8 +4684,8 @@ function TEST_BUILDER()
oParagraph.SetStyle(oHeading1Style);
oParagraph.SetSpacingAfter(100, true);
oParagraph.SetSpacingBefore(100, true);
// TODO: Заполнить автофигуру
oDrawing = Api.CreateDrawing(4051300, 2347595);
oDrawing = Api.CreateChart("bar3D", [[200, 240, 280, 300, 390],[250, 260, 280, 280, 285]], ["Projected Revenue", "Estimated Costs"], [2014, 2015, 2016, 2017, 2018], 4051300, 2347595);
oDrawing.SetWrappingStyle("tight");
oDrawing.SetHorPosition("column", 2347595);
oDrawing.SetVerPosition("paragraph", 346075);
......@@ -4385,12 +4736,32 @@ function TEST_BUILDER()
oParagraph = Api.CreateParagraph();
oParagraph.SetStyle(oSubtitleStyle);
// TODO: Заполнить автофигуру
oDrawing = Api.CreateDrawing(2718435, 762000);
oDrawing = Api.CreateShape("rect", 2718435, 762000);
oDrawing.SetWrappingStyle("square");
oDrawing.SetHorAlign("margin", "right");
oDrawing.SetVerPosition("paragraph", 17780);
oDrawing.SetDistances(114300, 0, 114300, 0);
oDrawing.SetFillColor(255, 104, 0);
var oContent = oDrawing.GetDocContent();
oContent.RemoveAllElements();
oParagraph2 = Api.CreateParagraph();
oParagraph2.SetJc("left");
oRun2 = oParagraph2.AddText("Innovation. Profit.");
oRun2.SetFontSize(20);
oRun2.SetBold(true);
oRun2.SetColor(0, 0, 0);
oRun2.SetFontFamily("Calibri");
oContent.Push(oParagraph2);
oParagraph2 = Api.CreateParagraph();
oParagraph2.SetJc("left");
oRun2 = oParagraph2.AddText("After years of market research and focused creative effort we are in a position to take our “Innovate 1” to market.");
oRun2.SetFontSize(20);
oRun2.SetColor(0, 0, 0);
oRun2.SetFontFamily("Calibri");
oContent.Push(oParagraph2);
oParagraph.AddDrawing(oDrawing);
oParagraph.AddText("Legal Issues");
oDocument.Push(oParagraph);
......@@ -4398,7 +4769,7 @@ function TEST_BUILDER()
oParagraph = Api.CreateParagraph();
// TODO: Заполнить автофигуру
oDrawing = Api.CreateDrawing(2741295, 2273300);
oDrawing = Api.CreateChart("pie", [[53, 32, 5, 9]], [], ["Enterprise", "Small Business", "Individual", "Government"], 2741295, 2273300);
oDrawing.SetWrappingStyle("square");
oDrawing.SetHorAlign("margin", "right");
oDrawing.SetVerPosition("paragraph", 632460);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment