private DataDocumentListItem GetListItem(DataTextElementBase _parent, DataBlockBase _child) { DataDocumentListItem docListItem = new DataDocumentListItem(); _child.Parent = docListItem; docListItem.Blocks.Add(_child); docListItem.Parent = _parent; return(docListItem); }
public static void ConverterListParaToDataDocument(List <DataParaPositionBullet> list, DataDocument dataDocument) { DataParagraph _paraAdd = new DataParagraph(); DataParagraph _para = new DataParagraph(); //TextRange _textRange = new TextRange(); int _countListPara = list.Count; int positionBlock = 0; for (int t = 0; t < _countListPara; t++) { //Trường hợp là Para if (list[t].Position == 0) { list[t].Para.Parent = dataDocument; dataDocument.Blocks.Add(list[t].Para); positionBlock++; } else//Trường hợp là List { //Nếu para trước nó là bullet=null hoặc nó là list đầu tiên thì tạo mới List if (t == 0 || list[t - 1].Position == 0) { DataDocumentList _list = new DataDocumentList(); DataDocumentListItem _listItem = new DataDocumentListItem(); list[t].Para.Parent = _listItem; _listItem.Blocks.Add(list[t].Para); _listItem.TypeWordBullet = list[t].ListType; _listItem.Parent = _list; _list.Items.Add(_listItem); dataDocument.Blocks.Add(_list); positionBlock++; } else { int index = GetIndexList(list, t); if (index != -1) { //Trường hợp không cùng cấp if (list[t].Position - list[index].Position > 0) { list[t].Position = list[index].Position + 1; if (list[index].Para.Parent is DataDocumentListItem) { DataDocumentListItem _listItem = new DataDocumentListItem(); DataDocumentList _listData = new DataDocumentList(); DataDocumentListItem _listItem2 = new DataDocumentListItem(); list[t].Para.Parent = _listItem2; _listItem2.Blocks.Add(list[t].Para); _listItem2.TypeWordBullet = list[t].ListType; _listItem2.Parent = _listData; _listData.Items.Add(_listItem2); _listData.Parent = _listItem; (list[index].Para.Parent as DataDocumentListItem).Blocks.Add(_listData); } } //Trường hợp cùng cấp else { if (list[index].Para.Parent is DataDocumentListItem && list[index].Para.Parent.Parent is DataDocumentList) { DataDocumentListItem _listItem = new DataDocumentListItem(); list[t].Para.Parent = _listItem; _listItem.Blocks.Add(list[t].Para); _listItem.TypeWordBullet = list[t].ListType; _listItem.Parent = list[index].Para.Parent.Parent; (list[index].Para.Parent.Parent as DataDocumentList).Items.Add(_listItem); } } } } } } }
private void ShapeIsText(PageLayer _page, pp.Shape _shape, EAnimation _animation, string _idShape) { //Thiếu textindent và strike words DataDocument document = new DataDocument(); document.Name = "TextEditor"; List <DataParaPositionBullet> ListParaPosition = new List <DataParaPositionBullet>(); DataParaPositionBullet paraPositionBullet = null; document.Blocks.Clear(); document.Container = new DataTextContainer(); if (_shape.Type == office.MsoShapeType.msoTextBox) { document.TypeTextContainer = TypeTextContainer.AutoChangeHeight; } else { document.TypeTextContainer = TypeTextContainer.ChangeSize; } //Lấy nội dung pp.BulletFormat hasBullet = _shape.TextFrame.TextRange.ParagraphFormat.Bullet; if (hasBullet.Visible == office.MsoTriState.msoCTrue || hasBullet.Visible == office.MsoTriState.msoTrue) { foreach (pp.TextRange paragraph in _shape.TextFrame.TextRange.Paragraphs()) { DataDocumentList docList = new DataDocumentList(); int level = paragraph.IndentLevel; DataDocumentListItem docListItem = new DataDocumentListItem(); pp.BulletFormat prgBullet = paragraph.ParagraphFormat.Bullet; docListItem.TypeWordBullet = new Text.ViewModels.Text.TypeWordBullet(); docListItem.TypeWordBullet.StarIndex = prgBullet.StartValue; if (prgBullet.Visible == office.MsoTriState.msoCTrue || prgBullet.Visible == office.MsoTriState.msoTrue) { docListItem.TypeWordBullet = new Text.ViewModels.Text.TypeWordBullet(); docListItem.TypeWordBullet.SizeOffset = 100; if (prgBullet.Type == PpBulletType.ppBulletNumbered) { docListItem.TypeWordBullet.Fontfamily = "Arial"; docListItem.TypeWordBullet.Text = "1."; docListItem.TypeWordBullet.ListType = Text.ListType.Decimal; switch (prgBullet.Style) { case PpNumberedBulletStyle.ppBulletStyleMixed: break; case PpNumberedBulletStyle.ppBulletAlphaLCPeriod: docListItem.TypeWordBullet.Fontfamily = "Arial"; docListItem.TypeWordBullet.Text = "a."; docListItem.TypeWordBullet.ListType = Text.ListType.LowerLatin; break; case PpNumberedBulletStyle.ppBulletAlphaUCPeriod: docListItem.TypeWordBullet.Fontfamily = "Arial"; docListItem.TypeWordBullet.Text = "A."; docListItem.TypeWordBullet.ListType = Text.ListType.UpperLatin; break; case PpNumberedBulletStyle.ppBulletArabicParenRight: docListItem.TypeWordBullet.Fontfamily = "Arial"; docListItem.TypeWordBullet.Text = "1)"; docListItem.TypeWordBullet.ListType = Text.ListType.Decimal2; break; case PpNumberedBulletStyle.ppBulletArabicPeriod: docListItem.TypeWordBullet.Fontfamily = "Arial"; docListItem.TypeWordBullet.Text = "1."; docListItem.TypeWordBullet.ListType = Text.ListType.Decimal; break; case PpNumberedBulletStyle.ppBulletRomanLCParenBoth: break; case PpNumberedBulletStyle.ppBulletRomanLCParenRight: break; case PpNumberedBulletStyle.ppBulletRomanLCPeriod: docListItem.TypeWordBullet.Fontfamily = "Arial"; docListItem.TypeWordBullet.Text = "i."; docListItem.TypeWordBullet.ListType = Text.ListType.LowerRoman; break; case PpNumberedBulletStyle.ppBulletRomanUCPeriod: docListItem.TypeWordBullet.Fontfamily = "Arial"; docListItem.TypeWordBullet.Text = "I."; docListItem.TypeWordBullet.ListType = Text.ListType.UpperRoman; break; case PpNumberedBulletStyle.ppBulletAlphaLCParenBoth: break; case PpNumberedBulletStyle.ppBulletAlphaLCParenRight: docListItem.TypeWordBullet.Fontfamily = "Arial"; docListItem.TypeWordBullet.Text = "a)"; docListItem.TypeWordBullet.ListType = Text.ListType.LowerLatin2; break; case PpNumberedBulletStyle.ppBulletAlphaUCParenBoth: break; case PpNumberedBulletStyle.ppBulletAlphaUCParenRight: break; case PpNumberedBulletStyle.ppBulletArabicParenBoth: break; case PpNumberedBulletStyle.ppBulletArabicPlain: break; case PpNumberedBulletStyle.ppBulletRomanUCParenBoth: break; case PpNumberedBulletStyle.ppBulletRomanUCParenRight: break; case PpNumberedBulletStyle.ppBulletSimpChinPlain: break; case PpNumberedBulletStyle.ppBulletSimpChinPeriod: break; case PpNumberedBulletStyle.ppBulletCircleNumDBPlain: break; case PpNumberedBulletStyle.ppBulletCircleNumWDWhitePlain: break; case PpNumberedBulletStyle.ppBulletCircleNumWDBlackPlain: break; case PpNumberedBulletStyle.ppBulletTradChinPlain: break; case PpNumberedBulletStyle.ppBulletTradChinPeriod: break; case PpNumberedBulletStyle.ppBulletArabicAlphaDash: break; case PpNumberedBulletStyle.ppBulletArabicAbjadDash: break; case PpNumberedBulletStyle.ppBulletHebrewAlphaDash: break; case PpNumberedBulletStyle.ppBulletKanjiKoreanPlain: break; case PpNumberedBulletStyle.ppBulletKanjiKoreanPeriod: break; case PpNumberedBulletStyle.ppBulletArabicDBPlain: break; case PpNumberedBulletStyle.ppBulletArabicDBPeriod: break; case PpNumberedBulletStyle.ppBulletThaiAlphaPeriod: break; case PpNumberedBulletStyle.ppBulletThaiAlphaParenRight: break; case PpNumberedBulletStyle.ppBulletThaiAlphaParenBoth: break; case PpNumberedBulletStyle.ppBulletThaiNumPeriod: break; case PpNumberedBulletStyle.ppBulletThaiNumParenRight: break; case PpNumberedBulletStyle.ppBulletThaiNumParenBoth: break; case PpNumberedBulletStyle.ppBulletHindiAlphaPeriod: break; case PpNumberedBulletStyle.ppBulletHindiNumPeriod: break; case PpNumberedBulletStyle.ppBulletKanjiSimpChinDBPeriod: break; case PpNumberedBulletStyle.ppBulletHindiNumParenRight: break; case PpNumberedBulletStyle.ppBulletHindiAlpha1Period: break; default: break; } } else if (prgBullet.Type == PpBulletType.ppBulletUnnumbered) { if (prgBullet.Character == 8226) { docListItem.TypeWordBullet.Fontfamily = "Wingdings"; docListItem.TypeWordBullet.Text = "l"; docListItem.TypeWordBullet.ListType = Text.ListType.Bullet; } else if (prgBullet.Character == 111) { docListItem.TypeWordBullet.Fontfamily = "Raleway"; docListItem.TypeWordBullet.Text = "o"; docListItem.TypeWordBullet.ListType = Text.ListType.Bullet; } else if (prgBullet.Character == 167) { docListItem.TypeWordBullet.Fontfamily = "Wingdings"; docListItem.TypeWordBullet.Text = ((char)167).ToString(); docListItem.TypeWordBullet.ListType = Text.ListType.Bullet; } else if (prgBullet.Character == 113) { docListItem.TypeWordBullet.Fontfamily = "Wingdings"; docListItem.TypeWordBullet.Text = "q"; docListItem.TypeWordBullet.ListType = Text.ListType.Bullet; } else if (prgBullet.Character == 118) { docListItem.TypeWordBullet.Fontfamily = "Wingdings"; docListItem.TypeWordBullet.Text = "v"; docListItem.TypeWordBullet.ListType = Text.ListType.Bullet; } else if (prgBullet.Character == 216) { docListItem.TypeWordBullet.Fontfamily = "Wingdings"; docListItem.TypeWordBullet.Text = ((char)216).ToString(); docListItem.TypeWordBullet.ListType = Text.ListType.Bullet; } else if (prgBullet.Character == 252) { docListItem.TypeWordBullet.Fontfamily = "Wingdings"; docListItem.TypeWordBullet.Text = ((char)252).ToString(); docListItem.TypeWordBullet.ListType = Text.ListType.Bullet; } else { docListItem.TypeWordBullet.Fontfamily = "Wingdings"; docListItem.TypeWordBullet.Text = "l"; docListItem.TypeWordBullet.ListType = Text.ListType.Bullet; } } } paraPositionBullet = new DataParaPositionBullet(); paraPositionBullet.Para = GetEParagraph(paragraph); paraPositionBullet.ListType = docListItem.TypeWordBullet; paraPositionBullet.Position = level; ListParaPosition.Add(paraPositionBullet); } } else { foreach (pp.TextRange paragraph in _shape.TextFrame.TextRange.Paragraphs()) { /* * var _para = GetEParagraph(paragraph); * if (_para.Inlines?.Count > 0) * { * if ((_para.Inlines.Last() as DataRun)?.Text != null) * (_para.Inlines.Last() as DataRun).Text = (_para.Inlines.Last() as DataRun).Text + "\r"; * } * document.Blocks.Add(_para);*/ paraPositionBullet = new DataParaPositionBullet(); paraPositionBullet.Para = GetEParagraph(paragraph); if (paraPositionBullet.Para?.Inlines?.Count > 0) { if ((paraPositionBullet.Para.Inlines.Last() as DataRun)?.Text != null) { (paraPositionBullet.Para.Inlines.Last() as DataRun).Text = (paraPositionBullet.Para.Inlines.Last() as DataRun).Text + "\r"; } } paraPositionBullet.ListType = null; paraPositionBullet.Position = 0; ListParaPosition.Add(paraPositionBullet); } //goto addToDoc; } if (ListParaPosition?.Count == 0) { paraPositionBullet = new DataParaPositionBullet(); paraPositionBullet.Para = new DataParagraph(); DataRun _run = new DataRun(); _run.Text = "\r"; _run.FontSize = 14; _run.Fontfamily = "Times New Roman"; _run.Parent = paraPositionBullet.Para; paraPositionBullet.Para.Inlines.Add(_run); ListParaPosition.Add(paraPositionBullet); } ConverterListParaToDataDocument(ListParaPosition, document); _page.Children.Add(document); }