Exemple #1
0
 void mdxrReader_KonecOdstavce(object sender, ParagraphEventArgs ev)
 {
     if (mblnIgnorovat)
     {
         if (ev.Style.UIName == mstrIgnorovanyOdstavcovyStyl)
         {
             mstrIgnorovanyOdstavcovyStyl = null;
             mblnIgnorovat = false;
         }
     }
     else
     {
         //mstrPredchoziOdstavcovyStyl = ev.StyleID;
         //jak zjistit, který tag se používá?
         VypsatTagProAktualniZnakovyStyl();
         //TODO Proč je někdy mtgAktualniOdstavcovyTag null?
         if (mtgAktualniOdstavcovyTag != null)
         {
             if (!mtgAktualniOdstavcovyTag.BezZnacky)
             {
                 mxwWriter.WriteEndElement();
             }
         }
     }
     //TODO Zjistit, proč někdy konec odstavce neobsahuje žádný styl; v textu predcházel prvek w:pict
     if (ev.Style != null)
     {
         mstrPredchoziOdstavcovyStyl = ev.Style.UIName;
     }
     mtgPredchoziZnakovyTag = null;
 }
Exemple #2
0
        void mdxrReader_ZacatekOdstavce(object sender, ParagraphEventArgs ev)
        {
            //mtrTransformace.tagy[2];
            //je potřeba vygenerovat tag: zjistit IDStylu, na jeho základě název,
            // najít název v Transformacích
            mstrPredchoziZnakovyStyl = null;
            mtreaAktualniTextRun     = null;
            mtgAktualniZnakovyTag    = null;

            string sID = Tag.GetIdentifikator(ev.Style.UIName, mstrPredchoziOdstavcovyStyl);

            if (mtrTransformace.Tagy.ContainsID(sID))
            {
                mtgAktualniOdstavcovyTag = mtrTransformace.Tagy.GetTagByID(sID);
            }
            else
            {
                sID = Tag.GetIdentifikator(ev.Style.UIName, null);
                mtgAktualniOdstavcovyTag = mtrTransformace.Tagy.GetTagByID(sID);
            }
            mstrAktualniOdstavcovyStyl = ev.Style.UIName;

            if (mtgAktualniOdstavcovyTag == null && mtrTransformace.Tagy.ContainsID(csHvezdicka))
            {
                string sId = Tag.GetIdentifikator(csHvezdicka, null);

                if (mtrTransformace.Tagy.ContainsID(sId))
                {
                    mtgAktualniOdstavcovyTag = mtrTransformace.Tagy.GetTagByID(sId);
                }
            }

            if (mtgAktualniOdstavcovyTag == null)
            {
                return;
            }

            mtgAktualniOdstavcovyTag.TypTagu = TypTagu.Odstavec;
            if (mtgAktualniOdstavcovyTag.Ignorovat)
            {
                mblnIgnorovat = true;
                mstrIgnorovanyOdstavcovyStyl = ev.Style.UIName;
            }
            else
            {
                GenerujTag(mtgAktualniOdstavcovyTag, mstrAktualniOdstavcovyStyl, false);
            }
            //mxwWriter.WriteStartElement("p");
        }
        private void mdxrReader_ZacatekOdstavce(object sender, ParagraphEventArgs ev)
        {
            _predchoziUsekZnakovehoStylu        = null;
            _jevyAktualnihoOdstavce             = new SkupinaJevu();
            _usekyAktulanihoOdstravceInContinuo = new List <Usek>(40);

            _aktualniOdstavecStack.Push(ev);
            _aktualniOdstavecEventArgs = _aktualniOdstavecStack.Peek();
            if (_textOdstavceSb != null)
            {
                _nejdelsiOdstavec = _textOdstavceSb.Length > _nejdelsiOdstavec
                    ? _textOdstavceSb.Length
                    : _nejdelsiOdstavec;
            }
            _textOdstavce   = null;
            _textOdstavceSb = new StringBuilder(_nejdelsiOdstavec);
        }
        private void mdxrReader_KonecOdstavce(object sender, ParagraphEventArgs ev)
        {
            _predchoziUsekZnakovehoStylu = null;

            if (!_nastaveni.ZahrnoutTextOdstavce)
            {
                return;
            }
            string sId = Jevy.GetID(ev.Style.Language, ev.Style.ID);

            if (_textOdstavce == null)
            {
                _textOdstavce = "\r\n";
            }
            if (_textOdstavceSb.Length == 0)
            {
                _textOdstavceSb.AppendLine();
            }
            //Jev jv = new Jev(ev.Style.Language, mstrTextOdstavce, null);
            string sText = _nastaveni.OdstranitPocatecniAKoncoveMezery
                ? _textOdstavceSb.ToString().Trim()
                : _textOdstavceSb.ToString();

            StringBuilder jevySb = new StringBuilder(sText.Length);

            if (!_styly.ContainsKey(ev.Style.UIName))
            {
                _styly.Add(ev.Style.UIName, _styly.Count + 1);
            }
            int stylOdstavce = _styly[ev.Style.UIName];

            //jevySb.Append(String.Format("<p i=\"{0}\" s=\"{1}\">", ++poradiOdstavce, ev.Style.UIName));
            //jevySb.Append(String.Format("<p l=\"{0}\" i=\"{1}\" s=\"{2}\">", _aktualniLokace, ++poradiOdstavce, stylOdstavce));

            XElement root = new XElement("p",
                                         new XAttribute("l", _aktualniLokace ?? "0"),
                                         new XAttribute("i", ++_poradiOdstavce),
                                         new XAttribute("s", stylOdstavce)
                                         );


            char[] xmlEscape = new[] { '&', '<', '>' };

            foreach (Usek jev in _usekyAktulanihoOdstravceInContinuo)
            {
                if (!_styly.ContainsKey(jev.Styl))
                {
                    _styly.Add(jev.Styl, _styly.Count + 1);
                }
                int stylZnaku = _styly[jev.Styl];

                //jevySb.Append(String.Format("<r s=\"{0}\">{1}</r>", jev.Styl, jev.Text));
                string text = jev.Text;
                if (text.IndexOfAny(xmlEscape) > -1)
                {
                    text = jev.Text.Replace("&", "&amp;").Replace("<", "&lt;").Replace(">", "&gt;");
                }
                //jevySb.Append(String.Format("<r l=\"{0}\" s=\"{1}\">{2}</r>", jev.Lokace, stylZnaku, text));
                //jevySb.Append(String.Format("<r s=\"{0}\">{1}</r>", stylZnaku, text));

                root.Add(new XElement("r",
                                      new XAttribute("s", stylZnaku),
                                      new XText(text)
                                      ));
            }

            //jevySb.Append("</p>");

            XDocument document = new XDocument();

            document.Add(root);

            string textOdstavce = jevySb.ToString();

            //ObsahDokumentu.Add(textOdstavce);
            textOdstavce = document.ToString(SaveOptions.DisableFormatting);
            ObsahDokumentu.Add(textOdstavce);

            foreach (Jevy jevy in _jevyAktualnihoOdstavce)
            {
                Jevy tmpJevy = GetJevy(jevy.Jazyk, jevy.Identifikator, jevy.Popis, jevy.Druh);
                foreach (Jev jev in jevy)
                {
                    //jev.Kontexty.Add(sText);
                    //jev.Kontexty.Add(textOdstavce);
                    jev.Kontexty.Add(_poradiOdstavce.ToString(CultureInfo.InvariantCulture));
                    //jev.Kontexty.Add(poradiOdstavce.ToString(CultureInfo.InvariantCulture));
                    tmpJevy.Add(jev);
                }
            }


            Jev  jv  = new Jev(ev.Style.Language, sText, null);
            Jevy jvs = GetJevy(ev.Style.Language, ev.Style.ID, ev.Style.UIName, TypJevu.Odstavce);

            jvs.Add(jv);
            _aktualniSkupinaJevu[sId] = jvs;
            if (_aktualniOdstavecStack.Count == 0)
            {
                _aktualniOdstavecEventArgs = null;
            }
            else
            {
                _aktualniOdstavecEventArgs = _aktualniOdstavecStack.Pop();
            }
        }
 public void FireInsertAtVideoPosition(ParagraphEventArgs e)
 {
     if (InsertAtVideoPosition != null)
     {
         InsertAtVideoPosition.Invoke(this, e);
     }
 }
 public void FireOnZoomedChanged(ParagraphEventArgs e)
 {
     if (OnZoomedChanged != null)
     {
         OnZoomedChanged.Invoke(this, e);
     }
 }
 public void FireOnPause(ParagraphEventArgs e)
 {
     if (OnPause != null)
     {
         OnPause.Invoke(this, e);
     }
 }
 public void FireOnDoubleClickNonParagraph(ParagraphEventArgs e)
 {
     if (OnDoubleClickNonParagraph != null)
     {
         OnDoubleClickNonParagraph.Invoke(this, e);
     }
 }
 public void FireOnSingleClick(ParagraphEventArgs e)
 {
     if (OnSingleClick != null)
     {
         OnSingleClick.Invoke(this, e);
     }
 }
 public void FireOnTimeChangedAndOffsetRest(ParagraphEventArgs e)
 {
     if (OnTimeChangedAndOffsetRest != null)
     {
         OnTimeChangedAndOffsetRest.Invoke(this, e);
     }
 }
 public void FireOnPositonSelected(ParagraphEventArgs e)
 {
     if (OnPositionSelected != null)
     {
         OnPositionSelected.Invoke(this, e);
     }
 }
 public void FireOnNonParagraphRightClicked(ParagraphEventArgs e)
 {
     if (OnNonParagraphRightClicked != null)
     {
         OnNonParagraphRightClicked.Invoke(this, e);
     }
 }