Exemple #1
0
 /// <summary>
 /// 添加文件到日志。
 /// </summary>
 /// <param name="events">事件类型。</param>
 /// <param name="reason">原因。</param>
 public static void AddLog(string events, string reason)
 {
     Funs.AddLog(events + "\t" + reason + "\t无");
 }
Exemple #2
0
 /// <summary>
 /// 添加文件到日志。
 /// </summary>
 /// <param name="events">事件类型。</param>
 /// <param name="reason">原因。</param>
 /// <param name="file">相关文件。</param>
 public static void AddLog(string events, string reason, string file)
 {
     Funs.AddLog(events + "\t" + reason + "\t" + file);
 }
Exemple #3
0
 private void tiOpenOutputFolder_Click(object sender, EventArgs e)
 {
     Funs.OpenFolderInWindows(pd.OutputFolder);
 }
Exemple #4
0
        private void transduce()
        {
            if (lvInputList.Items.Count == 0)
            {
                MessageBox.Show("请选择输入文件。");
                tbMain.SelectedIndex = 0;
                return;
            }

            //建立输出目录
            if (!Funs.CreateFolder(pd.OutputFolder))
            {
                MessageBox.Show("输出文件夹创建失败。", "路径创建失败", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            //建立临时目录
            if (!Funs.CreateFolder(pd.TempFolder))
            {
                MessageBox.Show("输出文件夹创建失败。", "路径创建失败", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            //如果开启自动转换,那么就会创建对应的备份目录。
            if (pd.ProcessSourceFileType == 0)
            {
                try
                {
                    Directory.CreateDirectory(pd.FolderForSuccessed);
                    Directory.CreateDirectory(pd.FolderForFailed);
                }
                catch
                {
                    MessageBox.Show("备份文件夹设置不正确,未能创建成功,请重新设置。", "备份文件夹设置失败",
                                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
            }

            //复制PdfToTxt.exe文件过去,如果未能复制成功,则同样提示失败。
            if (pd.PdfMode)
            {
                //可执行的转换程序。
                string exepath = pd.PdfDllFolder + "\\PdfToTxt.exe";
                //如果此程序不存在,则从程序中复制过去。
                if (!File.Exists(exepath))
                {
                    Funs.CopyResourceDataFile(exepath);
                }

                //等待复制完成。
                Application.DoEvents();
                Thread.Sleep(100);

                //如果仍然不存在,表示复制失败。
                if (!File.Exists(exepath))
                {
                    MessageBox.Show("PDF转换模块启动失败,请关闭程序重新尝试,如果仍然无法解决,请与技术人员联系。",
                                    "转换模块启动失败", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
            }



            tiStart.Enabled      = false;
            tiStop.Enabled       = true;
            tbMain.SelectedIndex = 0;

            transThread = new Thread(new ThreadStart(processTransducing));
            transThread.IsBackground = true;
            transThread.Start();
        }
Exemple #5
0
        private void processTransducing()
        {
            int transed = 0;

            while (true)
            {
                //这三个时间分别表示当前时间,开始时间和结束时间。
                DateTime dt    = DateTime.Now;
                DateTime start = new DateTime(dt.Year, dt.Month, dt.Day, pd.StartTime.Hour, pd.StartTime.Minute, pd.StartTime.Second);
                DateTime end   = new DateTime(dt.Year, dt.Month, dt.Day, pd.EndTime.Hour, pd.EndTime.Minute, pd.EndTime.Second);

                //只有在开始和结束时间范围内才会开始下一次转换。
                if (pd.SupportAutoTransducer && !(dt >= start && dt <= end))
                {
                    Thread.Sleep(1);
                    continue;
                }

                try
                {
                    for (int i = 0; i < lvInputList.Items.Count; i++)
                    {
                        if (selectedonly && !lvInputList.Items[i].Checked)
                        {
                            continue;
                        }

                        InputPath ip = lvInputList.Items[i].Tag as InputPath;
                        lvInputList.Items[i].BackColor = Color.LightGray;

                        // process transducing.
                        trans.ProcessInput(ip);

                        lvInputList.Items[i].BackColor        = Color.White;
                        ip.LastTranducingTime                 = DateTime.Now;
                        lvInputList.Items[i].SubItems[2].Text = ip.LastTranducingTime.ToString();
                        transed += trans.LogList.Count(l => l.LogType == LogType.Success);
                        //处理完成后,把日志添加到日志列表中去。日志存放在trans.LogList中。
                        for (int j = 0; j < trans.LogList.Count; j++)
                        {
                            TransLog log = trans.LogList[j];
                            //编号,0.时间,1.事件,2.原因,3.输出文件
                            lvLogs.Items.Insert(0, new ListViewItem(log.GetStrings()));
                            //Funs.AddLog(log.LogType.ToString(), log.Content, log.Output);
                            Funs.AddLog(log);
                        }
                    }

                    Thread.Sleep(100);
                    Application.DoEvents();
                }
                catch (Exception e1)
                {
                    Funs.AddLog("TRANS", "NONE", e1.Message);
                }



                if (!pd.SupportAutoTransducer || !pd.AutoTransducerAvaliable)
                {
                    Reset();
                    MessageBox.Show("转换完成。\n共转换 " + transed + "个文件。", "转换完成", MessageBoxButtons.OK);
                    break;
                }

                trans.LogList.Clear();
                Application.DoEvents();
                Thread.Sleep(pd.getCircleInterval() * 1000);
            }
        }