internal void ApplyFont(SortedDictionary <int, CT_RPrElt> formats, int startIndex, int endIndex, CT_RPrElt fmt) { List <int> intList = new List <int>(); SortedDictionary <int, CT_RPrElt> .KeyCollection.Enumerator enumerator = formats.Keys.GetEnumerator(); while (enumerator.MoveNext()) { int current = enumerator.Current; if (current >= startIndex && current < endIndex) { intList.Add(current); } } foreach (int key in intList) { formats.Remove(key); } if (startIndex > 0 && !formats.ContainsKey(startIndex)) { foreach (KeyValuePair <int, CT_RPrElt> format in formats) { if (format.Key > startIndex) { formats[startIndex] = format.Value; break; } } } formats[endIndex] = fmt; }
private void SetRunAttributes(CT_Font ctFont, CT_RPrElt pr) { if (ctFont.sizeOfBArray() > 0) { pr.AddNewB().val = ctFont.GetBArray(0).val; } if (ctFont.sizeOfUArray() > 0) { pr.AddNewU().val = ctFont.GetUArray(0).val; } if (ctFont.sizeOfIArray() > 0) { pr.AddNewI().val = ctFont.GetIArray(0).val; } if (ctFont.sizeOfColorArray() > 0) { CT_Color colorArray = ctFont.GetColorArray(0); CT_Color ctColor = pr.AddNewColor(); if (colorArray.IsSetAuto()) { ctColor.auto = colorArray.auto; ctColor.autoSpecified = true; } if (colorArray.IsSetIndexed()) { ctColor.indexed = colorArray.indexed; ctColor.indexedSpecified = true; } if (colorArray.IsSetRgb()) { ctColor.SetRgb(colorArray.rgb); ctColor.rgbSpecified = true; } if (colorArray.IsSetTheme()) { ctColor.theme = colorArray.theme; ctColor.themeSpecified = true; } if (colorArray.IsSetTint()) { ctColor.tint = colorArray.tint; ctColor.tintSpecified = true; } } if (ctFont.sizeOfSzArray() > 0) { pr.AddNewSz().val = ctFont.GetSzArray(0).val; } if (ctFont.sizeOfNameArray() > 0) { pr.AddNewRFont().val = ctFont.GetNameArray(0).val; } if (ctFont.sizeOfFamilyArray() > 0) { pr.AddNewFamily().val = ctFont.GetFamilyArray(0).val; } if (ctFont.sizeOfSchemeArray() > 0) { pr.AddNewScheme().val = ctFont.GetSchemeArray(0).val; } if (ctFont.sizeOfCharsetArray() > 0) { pr.AddNewCharset().val = ctFont.GetCharsetArray(0).val; } if (ctFont.sizeOfCondenseArray() > 0) { pr.AddNewCondense().val = ctFont.GetCondenseArray(0).val; } if (ctFont.sizeOfExtendArray() > 0) { pr.AddNewExtend().val = ctFont.GetExtendArray(0).val; } if (ctFont.sizeOfVertAlignArray() > 0) { pr.AddNewVertAlign().val = ctFont.GetVertAlignArray(0).val; } if (ctFont.sizeOfOutlineArray() > 0) { pr.AddNewOutline().val = ctFont.GetOutlineArray(0).val; } if (ctFont.sizeOfShadowArray() > 0) { pr.AddNewShadow().val = ctFont.GetShadowArray(0).val; } if (ctFont.sizeOfStrikeArray() <= 0) { return; } pr.AddNewStrike().val = ctFont.GetStrikeArray(0).val; }
protected static CT_Font ToCTFont(CT_RPrElt pr) { CT_Font ctFont = new CT_Font(); if (pr.sizeOfBArray() > 0) { ctFont.AddNewB().val = pr.GetBArray(0).val; } if (pr.sizeOfUArray() > 0) { ctFont.AddNewU().val = pr.GetUArray(0).val; } if (pr.sizeOfIArray() > 0) { ctFont.AddNewI().val = pr.GetIArray(0).val; } if (pr.sizeOfColorArray() > 0) { CT_Color colorArray = pr.GetColorArray(0); CT_Color ctColor = ctFont.AddNewColor(); if (colorArray.IsSetAuto()) { ctColor.auto = colorArray.auto; ctColor.autoSpecified = true; } if (colorArray.IsSetIndexed()) { ctColor.indexed = colorArray.indexed; ctColor.indexedSpecified = true; } if (colorArray.IsSetRgb()) { ctColor.SetRgb(colorArray.GetRgb()); ctColor.rgbSpecified = true; } if (colorArray.IsSetTheme()) { ctColor.theme = colorArray.theme; ctColor.themeSpecified = true; } if (colorArray.IsSetTint()) { ctColor.tint = colorArray.tint; ctColor.tintSpecified = true; } } if (pr.sizeOfSzArray() > 0) { ctFont.AddNewSz().val = pr.GetSzArray(0).val; } if (pr.sizeOfRFontArray() > 0) { ctFont.AddNewName().val = pr.GetRFontArray(0).val; } if (pr.sizeOfFamilyArray() > 0) { ctFont.AddNewFamily().val = pr.GetFamilyArray(0).val; } if (pr.sizeOfSchemeArray() > 0) { ctFont.AddNewScheme().val = pr.GetSchemeArray(0).val; } if (pr.sizeOfCharsetArray() > 0) { ctFont.AddNewCharset().val = pr.GetCharsetArray(0).val; } if (pr.sizeOfCondenseArray() > 0) { ctFont.AddNewCondense().val = pr.GetCondenseArray(0).val; } if (pr.sizeOfExtendArray() > 0) { ctFont.AddNewExtend().val = pr.GetExtendArray(0).val; } if (pr.sizeOfVertAlignArray() > 0) { ctFont.AddNewVertAlign().val = pr.GetVertAlignArray(0).val; } if (pr.sizeOfOutlineArray() > 0) { ctFont.AddNewOutline().val = pr.GetOutlineArray(0).val; } if (pr.sizeOfShadowArray() > 0) { ctFont.AddNewShadow().val = pr.GetShadowArray(0).val; } if (pr.sizeOfStrikeArray() > 0) { ctFont.AddNewStrike().val = pr.GetStrikeArray(0).val; } return(ctFont); }
public void TestCreateNew() { SharedStringsTable sst = new SharedStringsTable(); CT_Rst st; int idx; // Check defaults Assert.IsNotNull(sst.Items); Assert.AreEqual(0, sst.Items.Count); Assert.AreEqual(0, sst.Count); Assert.AreEqual(0, sst.UniqueCount); st = new CT_Rst(); st.t = ("Hello, World!"); idx = sst.AddEntry(st); Assert.AreEqual(0, idx); Assert.AreEqual(1, sst.Count); Assert.AreEqual(1, sst.UniqueCount); //add the same entry again idx = sst.AddEntry(st); Assert.AreEqual(0, idx); Assert.AreEqual(2, sst.Count); Assert.AreEqual(1, sst.UniqueCount); //and again idx = sst.AddEntry(st); Assert.AreEqual(0, idx); Assert.AreEqual(3, sst.Count); Assert.AreEqual(1, sst.UniqueCount); st = new CT_Rst(); st.t = ("Second string"); idx = sst.AddEntry(st); Assert.AreEqual(1, idx); Assert.AreEqual(4, sst.Count); Assert.AreEqual(2, sst.UniqueCount); //add the same entry again idx = sst.AddEntry(st); Assert.AreEqual(1, idx); Assert.AreEqual(5, sst.Count); Assert.AreEqual(2, sst.UniqueCount); st = new CT_Rst(); CT_RElt r = st.AddNewR(); CT_RPrElt pr = r.AddNewRPr(); pr.AddNewColor().SetRgb(new byte[] { (byte)0xFF, 0, 0 }); //red pr.AddNewI().val = (true); //bold pr.AddNewB().val = (true); //italic r.t = ("Second string"); idx = sst.AddEntry(st); Assert.AreEqual(2, idx); Assert.AreEqual(6, sst.Count); Assert.AreEqual(3, sst.UniqueCount); idx = sst.AddEntry(st); Assert.AreEqual(2, idx); Assert.AreEqual(7, sst.Count); Assert.AreEqual(3, sst.UniqueCount); //OK. the sst table is Filled, check the contents Assert.AreEqual(3, sst.Items.Count); Assert.AreEqual("Hello, World!", new XSSFRichTextString(sst.GetEntryAt(0)).ToString()); Assert.AreEqual("Second string", new XSSFRichTextString(sst.GetEntryAt(1)).ToString()); Assert.AreEqual("Second string", new XSSFRichTextString(sst.GetEntryAt(2)).ToString()); }
/** * org.Openxmlformats.schemas.spreadsheetml.x2006.main.CTRPrElt to * org.Openxmlformats.schemas.Drawingml.x2006.main.CTFont adapter */ private static void ApplyAttributes(CT_RPrElt pr, CT_TextCharacterProperties rPr) { if (pr.SizeOfBArray() > 0) { rPr.b = (/*setter*/ pr.GetBArray(0).val); } if (pr.SizeOfUArray() > 0) { ST_UnderlineValues u1 = pr.GetUArray(0).val; if (u1 == ST_UnderlineValues.single) { rPr.u = (/*setter*/ ST_TextUnderlineType.sng); } else if (u1 == ST_UnderlineValues.@double) { rPr.u = (/*setter*/ ST_TextUnderlineType.dbl); } else if (u1 == ST_UnderlineValues.none) { rPr.u = (/*setter*/ ST_TextUnderlineType.none); } } if (pr.SizeOfIArray() > 0) { rPr.i = (/*setter*/ pr.GetIArray(0).val); } if (pr.SizeOfRFontArray() > 0) { CT_TextFont rFont = rPr.IsSetLatin() ? rPr.latin : rPr.AddNewLatin(); rFont.typeface = (/*setter*/ pr.GetRFontArray(0).val); } if (pr.SizeOfSzArray() > 0) { int sz = (int)(pr.GetSzArray(0).val * 100); rPr.sz = (/*setter*/ sz); } if (pr.SizeOfColorArray() > 0) { CT_SolidColorFillProperties fill = rPr.IsSetSolidFill() ? rPr.solidFill : rPr.AddNewSolidFill(); NPOI.OpenXmlFormats.Spreadsheet.CT_Color xlsColor = pr.GetColorArray(0); if (xlsColor.IsSetRgb()) { CT_SRgbColor clr = fill.IsSetSrgbClr() ? fill.srgbClr : fill.AddNewSrgbClr(); clr.val = (/*setter*/ xlsColor.rgb); } else if (xlsColor.IsSetIndexed()) { HSSFColor indexed = (HSSFColor)HSSFColor.GetIndexHash()[((int)xlsColor.indexed)]; if (indexed != null) { byte[] rgb = new byte[3]; rgb[0] = (byte)indexed.GetTriplet()[0]; rgb[1] = (byte)indexed.GetTriplet()[1]; rgb[2] = (byte)indexed.GetTriplet()[2]; CT_SRgbColor clr = fill.IsSetSrgbClr() ? fill.srgbClr : fill.AddNewSrgbClr(); clr.val = (/*setter*/ rgb); } } } }
/** * Copy font attributes from CTFont bean into CTRPrElt bean */ private void SetRunAttributes(CT_Font ctFont, CT_RPrElt pr) { if (ctFont.sizeOfBArray() > 0) { pr.AddNewB().val = (ctFont.GetBArray(0).val); } if (ctFont.sizeOfUArray() > 0) { pr.AddNewU().val = (ctFont.GetUArray(0).val); } if (ctFont.sizeOfIArray() > 0) { pr.AddNewI().val = (ctFont.GetIArray(0).val); } if (ctFont.sizeOfColorArray() > 0) { CT_Color c1 = ctFont.GetColorArray(0); CT_Color c2 = pr.AddNewColor(); if (c1.IsSetAuto()) { c2.auto = (c1.auto); c2.autoSpecified = true; } if (c1.IsSetIndexed()) { c2.indexed = (c1.indexed); c2.indexedSpecified = true; } if (c1.IsSetRgb()) { c2.SetRgb(c1.rgb); c2.rgbSpecified = true; } if (c1.IsSetTheme()) { c2.theme = (c1.theme); c2.themeSpecified = true; } if (c1.IsSetTint()) { c2.tint = (c1.tint); c2.tintSpecified = true; } } if (ctFont.sizeOfSzArray() > 0) { pr.AddNewSz().val = (ctFont.GetSzArray(0).val); } if (ctFont.sizeOfNameArray() > 0) { pr.AddNewRFont().val = (ctFont.GetNameArray(0).val); } if (ctFont.sizeOfFamilyArray() > 0) { pr.AddNewFamily().val = (ctFont.GetFamilyArray(0).val); } if (ctFont.sizeOfSchemeArray() > 0) { pr.AddNewScheme().val = (ctFont.GetSchemeArray(0).val); } if (ctFont.sizeOfCharsetArray() > 0) { pr.AddNewCharset().val = (ctFont.GetCharsetArray(0).val); } if (ctFont.sizeOfCondenseArray() > 0) { pr.AddNewCondense().val = (ctFont.GetCondenseArray(0).val); } if (ctFont.sizeOfExtendArray() > 0) { pr.AddNewExtend().val = (ctFont.GetExtendArray(0).val); } if (ctFont.sizeOfVertAlignArray() > 0) { pr.AddNewVertAlign().val = (ctFont.GetVertAlignArray(0).val); } if (ctFont.sizeOfOutlineArray() > 0) { pr.AddNewOutline().val = (ctFont.GetOutlineArray(0).val); } if (ctFont.sizeOfShadowArray() > 0) { pr.AddNewShadow().val = (ctFont.GetShadowArray(0).val); } if (ctFont.sizeOfStrikeArray() > 0) { pr.AddNewStrike().val = (ctFont.GetStrikeArray(0).val); } }
internal void ApplyFont(SortedDictionary <int, CT_RPrElt> formats, int startIndex, int endIndex, CT_RPrElt fmt) { // delete format runs that fit between startIndex and endIndex // runs intersecting startIndex and endIndex remain //int runStartIdx = 0; List <int> toRemoveKeys = new List <int>(); for (SortedDictionary <int, CT_RPrElt> .KeyCollection.Enumerator it = formats.Keys.GetEnumerator(); it.MoveNext();) { int runIdx = it.Current; if (runIdx >= startIndex && runIdx < endIndex) { toRemoveKeys.Add(runIdx); } } foreach (int key in toRemoveKeys) { formats.Remove(key); } if (startIndex > 0 && !formats.ContainsKey(startIndex)) { // If there's a format that starts later in the string, make it start now foreach (KeyValuePair <int, CT_RPrElt> entry in formats) { if (entry.Key > startIndex) { formats[startIndex] = entry.Value; break; } } } formats[endIndex] = fmt; // assure that the range [startIndex, endIndex] consists if a single run // there can be two or three runs depending whether startIndex or endIndex // intersected existing format runs //SortedMap<int, CT_RPrElt> sub = formats.subMap(startIndex, endIndex); //while(sub.size() > 1) sub.remove(sub.lastKey()); }
/** * * CTRPrElt --> CTFont adapter */ protected static CT_Font ToCTFont(CT_RPrElt pr) { CT_Font ctFont = new CT_Font(); // Bug 58315: there are files where there is no pr-entry for a RichTextString if (pr == null) { return(ctFont); } if (pr.SizeOfBArray() > 0) { ctFont.AddNewB().val = (pr.GetBArray(0).val); } if (pr.SizeOfUArray() > 0) { ctFont.AddNewU().val = (pr.GetUArray(0).val); } if (pr.SizeOfIArray() > 0) { ctFont.AddNewI().val = (pr.GetIArray(0).val); } if (pr.SizeOfColorArray() > 0) { CT_Color c1 = pr.GetColorArray(0); CT_Color c2 = ctFont.AddNewColor(); if (c1.IsSetAuto()) { c2.auto = (c1.auto); c2.autoSpecified = true; } if (c1.IsSetIndexed()) { c2.indexed = (c1.indexed); c2.indexedSpecified = true; } if (c1.IsSetRgb()) { c2.SetRgb(c1.GetRgb()); c2.rgbSpecified = true; } if (c1.IsSetTheme()) { c2.theme = (c1.theme); c2.themeSpecified = true; } if (c1.IsSetTint()) { c2.tint = (c1.tint); c2.tintSpecified = true; } } if (pr.SizeOfSzArray() > 0) { ctFont.AddNewSz().val = (pr.GetSzArray(0).val); } if (pr.SizeOfRFontArray() > 0) { ctFont.AddNewName().val = (pr.GetRFontArray(0).val); } if (pr.SizeOfFamilyArray() > 0) { ctFont.AddNewFamily().val = (pr.GetFamilyArray(0).val); } if (pr.sizeOfSchemeArray() > 0) { ctFont.AddNewScheme().val = (pr.GetSchemeArray(0).val); } if (pr.sizeOfCharsetArray() > 0) { ctFont.AddNewCharset().val = (pr.GetCharsetArray(0).val); } if (pr.sizeOfCondenseArray() > 0) { ctFont.AddNewCondense().val = (pr.GetCondenseArray(0).val); } if (pr.sizeOfExtendArray() > 0) { ctFont.AddNewExtend().val = (pr.GetExtendArray(0).val); } if (pr.sizeOfVertAlignArray() > 0) { ctFont.AddNewVertAlign().val = (pr.GetVertAlignArray(0).val); } if (pr.sizeOfOutlineArray() > 0) { ctFont.AddNewOutline().val = (pr.GetOutlineArray(0).val); } if (pr.sizeOfShadowArray() > 0) { ctFont.AddNewShadow().val = (pr.GetShadowArray(0).val); } if (pr.sizeOfStrikeArray() > 0) { ctFont.AddNewStrike().val = (pr.GetStrikeArray(0).val); } return(ctFont); }
private static void ApplyAttributes(CT_RPrElt pr, CT_TextCharacterProperties rPr) { if (pr.sizeOfBArray() > 0) { rPr.b = pr.GetBArray(0).val; } if (pr.sizeOfUArray() > 0) { switch (pr.GetUArray(0).val) { case ST_UnderlineValues.none: rPr.u = ST_TextUnderlineType.none; break; case ST_UnderlineValues.single: rPr.u = ST_TextUnderlineType.sng; break; case ST_UnderlineValues.@double: rPr.u = ST_TextUnderlineType.dbl; break; } } if (pr.sizeOfIArray() > 0) { rPr.i = pr.GetIArray(0).val; } if (pr.sizeOfFamilyArray() > 0) { rPr.AddNewLatin().typeface = pr.GetRFontArray(0).val; } if (pr.sizeOfSzArray() > 0) { int num = (int)(pr.GetSzArray(0).val * 100.0); rPr.sz = num; } if (pr.sizeOfColorArray() <= 0) { return; } CT_SolidColorFillProperties colorFillProperties = rPr.IsSetSolidFill() ? rPr.solidFill : rPr.AddNewSolidFill(); NPOI.OpenXmlFormats.Spreadsheet.CT_Color colorArray = pr.GetColorArray(0); if (colorArray.IsSetRgb()) { (colorFillProperties.IsSetSrgbClr() ? colorFillProperties.srgbClr : colorFillProperties.AddNewSrgbClr()).val = colorArray.rgb; } else { if (!colorArray.IsSetIndexed()) { return; } HSSFColor hssfColor = HSSFColor.GetIndexHash()[(object)(int)colorArray.indexed] as HSSFColor; if (hssfColor == null) { return; } byte[] numArray = new byte[3] { (byte)hssfColor.GetTriplet()[0], (byte)hssfColor.GetTriplet()[1], (byte)hssfColor.GetTriplet()[2] }; (colorFillProperties.IsSetSrgbClr() ? colorFillProperties.srgbClr : colorFillProperties.AddNewSrgbClr()).val = numArray; } }
public void Add(CT_RPrElt prop) { this._props.Add(prop); }