ParseTeXSourceFile() public static method

public static ParseTeXSourceFile ( TextReader file, string &preamble, string &body ) : bool
file TextReader
preamble string
body string
return bool
Exemplo n.º 1
0
 public static void ImportImageFile(string path, out string preamble, out string body)
 {
     preamble = null; body = null;
     try {
         var text = TeXSource.ReadEmbededSource(path);
         if (text != null)
         {
             using (var sr = new StringReader(text)) {
                 if (!TeXSource.ParseTeXSourceFile(sr, out preamble, out body))
                 {
                     MessageBox.Show(Properties.Resources.ANALYZESOURCEERROR, "TeX2img");
                 }
             }
         }
         else
         {
             throw new IOException();
         }
     }
     catch (NotImplementedException) {
         MessageBox.Show(Properties.Resources.EMBED_IS_ONLY_NTFS);
     }
     catch (Exception) {
         if (File.Exists(path))
         {
             MessageBox.Show(String.Format(Properties.Resources.NO_EMBEDDED_SOURCE, path), "TeX2img");
         }
         else
         {
             MessageBox.Show(String.Format(Properties.Resources.FAIL_OPEN, path), "TeX2img");
         }
     }
 }
Exemplo n.º 2
0
        public static void ImportTeXFile(string path, out string preamble, out string body)
        {
            preamble = null; body = null;
            var extension = Path.GetExtension(path).ToLower();

            byte[] buf;
            using (var fs = new FileStream(path, FileMode.Open, FileAccess.Read)) {
                buf = new byte[fs.Length];
                fs.Read(buf, 0, (int)fs.Length);
            }

            var  GuessedEncoding = KanjiEncoding.CheckBOM(buf);
            bool bom             = false;

            if (GuessedEncoding != null)
            {
                bom = true;
                buf = KanjiEncoding.DeleteBOM(buf, GuessedEncoding);
            }
            else
            {
                var guessed = KanjiEncoding.GuessKajiEncoding(buf);
                if (guessed.Length == 0)
                {
                    GuessedEncoding = null;
                }
                else
                {
                    GuessedEncoding = guessed[0];
                }
            }
            Encoding encoding;

            switch (Properties.Settings.Default.encode)
            {
            case "euc": encoding = Encoding.GetEncoding("euc-jp"); break;

            case "jis": encoding = Encoding.GetEncoding("iso-2022-jp"); break;

            case "utf8": encoding = Encoding.UTF8; break;

            case "sjis": encoding = Encoding.GetEncoding("shift_jis"); break;

            case "_utf8":
                if (GuessedEncoding != null)
                {
                    encoding = GuessedEncoding;
                }
                else
                {
                    encoding = Encoding.UTF8;
                }
                break;

            case "_sjis":
            default:
                if (GuessedEncoding != null)
                {
                    encoding = GuessedEncoding;
                }
                else
                {
                    encoding = Encoding.GetEncoding("shift_jis");
                }
                break;
            }
            if (encoding.CodePage != GuessedEncoding.CodePage)
            {
                if (bom || MessageBox.Show(String.Format(Properties.Resources.CHECK_ENCODEMSG, encoding.EncodingName, GuessedEncoding.EncodingName, GuessedEncoding.EncodingName), "TeX2img", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes)
                {
                    encoding = GuessedEncoding;
                }
            }
            using (var sr = new StringReader(encoding.GetString(buf))) {
                if (!TeXSource.ParseTeXSourceFile(sr, out preamble, out body))
                {
                    MessageBox.Show(Properties.Resources.ANALYZESOURCEERROR, "TeX2img");
                }
            }
        }