Ejemplo n.º 1
0
        /// <summary>
        /// Set text of specific TextFrame
        /// </summary>
        /// <param name="FrameID">FrameID</param>
        /// <param name="Text">Text to set</param>
        public void SetTextFrame(string FrameID, string Text)
        {
            if (!FramesInfo.IsValidFrameID(FrameID))
            {
                return;
            }

            TextFrame[] TF = TextFrames.ToArray();
            for (int i = 0; i < TextFrames.Count - 1; i++)
            {
                if (TF[i].FrameID == FrameID)
                {
                    TextFrames.RemoveAt(i);
                    break;
                }
            }

            if (Text != "")
            {
                HaveTag = true;
                TextFrames.Add(FrameID, new TextFrame(FrameID, new FrameFlags(),
                                                      Text, (StaticMethods.IsAscii(Text) ? TextEncodings.Ascii : _DefaultUnicodeEncoding),
                                                      _Version.Minor, TStream.FS));
            }
        }
Ejemplo n.º 2
0
        private void ReadLayer()
        {
            Layers layers = m_doc.Layers;

            for (int layIndex = 1; layIndex <= layers.Count; layIndex++)
            {
                try
                {
                    Console.WriteLine(layIndex);
                    Layer layer = layers[layIndex];

                    if (layer.Name.Trim().ToLower().Equals("translate"))
                    {
                        m_xmlProcess.ProcessLayer(layIndex);
                        TextFrames textFrames = layer.TextFrames;
                        ReadTextFrames(textFrames);
                        error = "0";
                    }
                }


                catch (Exception e)
                {
                    CloseFile();
                    m_app.restartApp();
                    throw new Exception();
                }
            }
            if (error == null)
            {
                error = "There is no layer named for translation ";
            }
        }
Ejemplo n.º 3
0
 // Multiple values for text tags are separated by ';'.
 void AddTextFrame(string Key, string Value)
 {
     if (TextFrames.ContainsKey(Key))
     {
         TextFrames[Key] += ";" + Value;
     }
     else
     {
         TextFrames.Add(Key, Value);
     }
 }
Ejemplo n.º 4
0
 private void ReadGroupItems(GroupItems groupItems)
 {
     for (int groupItemIndex = 1; groupItemIndex <= groupItems.Count; groupItemIndex++)
     {
         GroupItem groupItem = groupItems[groupItemIndex];
         m_xmlProcess.ProcessGroupItem(groupItemIndex);
         TextFrames textFrames = groupItem.TextFrames;
         ReadTextFrames(textFrames);
         error = "0";
     }
 }
Ejemplo n.º 5
0
 private void ReadTextFrames(TextFrames textFrames)
 {
     for (int textFrameIndex = 1; textFrameIndex <= textFrames.Count; textFrameIndex++)
     {
         TextFrame textFrame = textFrames[textFrameIndex];
         m_xmlProcess.ProcessTextFrame(textFrameIndex);
         TextRange textRange = textFrame.TextRange;
         m_xmlProcess.ProcessTextRange(1);
         ReadParagraphs(textRange);
     }
 }
Ejemplo n.º 6
0
 private void ReadTextFrames(TextFrames textFrames)
 {
     for (int textFrameIndex = 1; textFrameIndex <= textFrames.Count; textFrameIndex++)
     {
         TextFrame textFrame = textFrames[textFrameIndex];
         //if (textFrame.Contents == "") continue;
         m_xmlProcess.ProcessTextFrame(textFrameIndex);
         //TextRanges textRanges = textFrame.TextRanges;
         TextRange textRange = textFrame.TextRange;
         ReadRangeContents(textRange);
     }
 }
Ejemplo n.º 7
0
        void SetupSidebar()
        {
            if (sideBarMax > 0)
            {
                double maxWidth  = 40;
                double height    = GetPage(0).contentBounds.height;
                double topMargin = GetPage(0).contentBounds.top;
                double top;

                if (sideBarCount > sideBarMax)
                {
                    Log("!! sideBarCount is bigger than sideBarMax");
                }

                double spacing = (height - maxWidth) / (sideBarMax - 1);
                if (spacing > maxWidth)
                {
                    spacing = maxWidth;
                }

                top = topMargin + spacing * (sideBarCount - 1);


                MasterSpread master = GetMaster("A-Master");

                TextFrames tfs = master.TextFrames;
                foreach (TextFrame tf in tfs)
                {
                    Bounds b = new Bounds(tf.GeometricBounds);

                    if (tf.Paragraphs.Count > 0)
                    {
                        Paragraph p = (Paragraph)tf.Paragraphs[1];

                        if (((ParagraphStyle)p.AppliedParagraphStyle).Name == "SideBar")
                        {
                            //double h = b.height;
                            b.top              = top;
                            b.height           = maxWidth;
                            tf.GeometricBounds = b.raw;
                        }
                    }
                }
            }
        }
Ejemplo n.º 8
0
        private void ReadLayer()
        {
            Layers layers = m_doc.Layers;

            for (int layIndex = 1; layIndex <= layers.Count; layIndex++)
            {
                try
                {
                    Layer  layer     = layers[layIndex];
                    string layerName = layer.Name.Trim().ToLower();
                    if (layerName.Equals("translation") ||
                        layerName.Equals("translate") ||
                        layerName.Equals("for translation"))
                    {
                        m_xmlProcess.ProcessLayer(layIndex);
                        TextFrames textFrames = layer.TextFrames;
                        ReadTextFrames(textFrames);
                        error = "0";
                        // Sometimes some text is in GroupItems
                        GroupItems groupItems = layer.GroupItems;
                        ReadGroupItems(groupItems);
                    }
                }
                catch (Exception e)
                {
                    m_log.Log(e.ToString());
                    CloseFile();
                    m_app.restartApp();
                    throw new Exception();
                }
            }
            if (error == null)
            {
                error = "There is no layer needed to be translated ";
            }
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Add Frame information to where it must store
        /// </summary>
        /// <param name="Data">FileStream contain Frame</param>
        /// <param name="FrameID">FrameID of frame</param>
        /// <param name="Length">Maximum available length to read</param>
        /// <param name="Flags">Flags of frame</param>
        private bool AddFrame(string FrameID, int Length, FrameFlags Flags, Stream FS)
        {
            // NOTE: All FrameIDs must be capital letters
            if (!FramesInfo.IsValidFrameID(FrameID))
            {
                AddError(new ID3Exception("nonValid Frame found and dropped", FrameID, ExceptionLevels.Repaired));
                return(false);
            }

            int IsText = FramesInfo.IsTextFrame(FrameID, _Version.Minor);

            if (IsText == 1)
            {
                TextFrame TempTextFrame = new TextFrame(FrameID, Flags, Length, FS);
                if (TempTextFrame.IsValid && !TextFrames.ContainsKey(FrameID))
                {
                    TextFrames.Add(FrameID, TempTextFrame);
                    return(true);
                }
                return(false);
            }
            else if (IsText == 2)
            {
                UserTextFrame TempUserTextFrame = new UserTextFrame(FrameID, Flags, Length, FS);
                if (TempUserTextFrame.IsValid && FrameID != "TXXX" && !UserTextFrames.ContainsKey(FrameID))
                {
                    UserTextFrames.Add(FrameID, TempUserTextFrame);
                    return(true);
                }
                return(false);
            }
            else if (FrameID == "LINK")
            {
                LinkFrame LF = new LinkFrame(FrameID, Flags, Length, FS);
                if (LF.IsValid && !LinkFrames.ContainsKey(FrameID))
                {
                    LinkFrames.Add(FrameID, LF);
                    if (_LoadLinkedFrames)
                    {
                        LoadFrameFromFile(LF.FrameIdentifier, LF.URL); return(true);
                    }
                }
                else
                {
                    AddError(LF.Exception);
                }
            }

            Frame F = null;

            if (!FramesInfo.ExcludedList.Any(t => t == FrameID))
            {
                FrameInfo Info = FramesInfo.GetFrame(FrameID);

                if (Info == null || Info.ClassType == null)
                {
                    AddError(new ID3Exception("Unknown Frame found and dropped according to setting", FrameID, ExceptionLevels.Warning));
                    return(true);
                }

                try
                {
                    F = Info.Constuctor(FrameID, Flags, Length, TStream.FS);
                }
                catch { }
                try
                {
                    if (Info.IsSingle)
                    {
                        if (_SingleFrames.Contains(FrameID))
                        {
                            _SingleFrames.Remove(FrameID);
                        }

                        _SingleFrames.Add(FrameID, F);
                        return(true);
                    }
                    else
                    {
                        foreach (FrameCollectionBase Coll in _CollectionFrames.Values)
                        {
                            if (Coll.CollectionType == Info.ClassType)
                            {
                                Coll.Remove(F.FrameID);
                                Coll.Add(F.FrameID, F);
                                return(true);
                            }
                        }
                    }
                    AddError(new ID3Exception("ClassType not found in Collection list", FrameID, ExceptionLevels.Error));
                }
                catch {}
            }

            return(false);
        }