Beispiel #1
0
        public static string GetDisplayFile(WorkLogStuff logStuff)
        {
            string filePath = SaveStuffFile(logStuff);

            if (!OfficeConverter.IsValidOfficeFile(filePath))
            {
                return(filePath);
            }
            else
            {
                string xpsFilePath = System.IO.Path.Combine(basePath, string.Format("{0}.xps", logStuff.Key));
                OfficeConverter.ConvertToXps(filePath, xpsFilePath);
                return(xpsFilePath);
            }
        }
Beispiel #2
0
        private void dgList_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (SelectFileAttachment == null)
            {
                return; //防止单击空白或标题等触发该事件
            }
            string xpspath = FileManageHelper.GetPath() + SelectFileAttachment.AttName.Substring(0, SelectFileAttachment.AttName.LastIndexOf(".")) + ".xps";

            if (System.IO.File.Exists(xpspath))
            {
                //已经存xps文件,直接加载
                using (XpsDocument xpsDoc = new XpsDocument(xpspath, FileAccess.Read))
                {
                    var fsxps = xpsDoc.GetFixedDocumentSequence();
                    xpsDocViewr.Document = fsxps;
                }
            }
            else
            {
                string filepath    = FileManageHelper.ByteConvertDocService(SelectFileAttachment.AttContent, SelectFileAttachment.AttName);
                string xpsfilepath = filepath.Substring(0, filepath.LastIndexOf(".")).ToString() + ".xps";

                try
                {
                    if (OfficeConverter.IsValidOfficeFile(filepath))
                    {
                        OfficeConverter.ConvertToXps(filepath, xpsfilepath);
                        using (XpsDocument xpsDoc = new XpsDocument(xpsfilepath, FileAccess.Read))
                        {
                            var fsxps = xpsDoc.GetFixedDocumentSequence();
                            xpsDocViewr.Document = fsxps;
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.GetExceptionMessage());
                }
            }
        }
        private void dgList_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            #region 加载基本信息
            if (SummarizeDocSelected == null)
            {
                return;//防止单击空白或标题等触发该事件
            }
            currentsummarize = dgList.SelectedItem as SummarizeDoc;
            isAddOrUpdate    = 1;//可以进行修改操作
            //if (currentsummarize.IsChecked == true)
            //{
            //    currentsummarize.IsChecked = false;
            //    summarizeList.Remove(currentsummarize);
            //}
            //else
            //{
            //    currentsummarize.IsChecked = true;
            //    summarizeList.Add(currentsummarize);
            //}
            bool checkedState = currentsummarize.IsChecked;

            #endregion

            #region //预览文件
            //
            string isxpsPath = GetPath() + currentsummarize.FILEFORM.Substring(0, currentsummarize.FILEFORM.LastIndexOf(".")).ToString() + ".xps";
            if (System.IO.File.Exists(isxpsPath))
            {
                //已经存xps文件,直接加载
                using (XpsDocument xpsDoc = new XpsDocument(isxpsPath, FileAccess.Read))
                {
                    var fsxps = xpsDoc.GetFixedDocumentSequence();
                    xpsDocViewr.Document = fsxps;
                }
            }
            else
            {
                //创建xps文件,启动进程耗时
                string serviceDocPathXPS = ByteConvertDocService(currentsummarize.FILEPATH, currentsummarize.FILEFORM);
                string xpsFilePath       = serviceDocPathXPS.Substring(0, serviceDocPathXPS.LastIndexOf(".")).ToString() + ".xps";

                try
                {
                    if (OfficeConverter.IsValidOfficeFile(serviceDocPathXPS))
                    {
                        OfficeConverter.ConvertToXps(serviceDocPathXPS, xpsFilePath);
                        using (XpsDocument xpsDoc = new XpsDocument(xpsFilePath, FileAccess.Read))
                        {
                            var fsxps = xpsDoc.GetFixedDocumentSequence();
                            xpsDocViewr.Document = fsxps;
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.GetExceptionMessage());
                }

                //var convertResults = OfficeToXps.ConvertToXps(serviceDocPathXPS, ref xpsFilePath);
                //switch (convertResults.Result)
                //{
                //    case ConversionResult.OK:
                //        try
                //        {
                //            using (XpsDocument xpsDoc = new XpsDocument(xpsFilePath, FileAccess.Read))
                //            {
                //                var fsxps = xpsDoc.GetFixedDocumentSequence();
                //                xpsDocViewr.Document = fsxps;
                //            }
                //        }
                //        catch (Exception ex)
                //        {

                //        }
                //        break;
                //    case ConversionResult.InvalidFilePath:
                //        // 处理文件路径错误或文件不存在
                //        break;
                //    case ConversionResult.UnexpectedError:

                //        break;
                //    case ConversionResult.ErrorUnableToInitializeOfficeApp:
                //        // Office 未安装会出现这个异常
                //        break;
                //    case ConversionResult.ErrorUnableToOpenOfficeFile:
                //        // 文件被占用会出现这个异常
                //        break;
                //    case ConversionResult.ErrorUnableToAccessOfficeInterop:
                //        // Office 未安装会出现这个异常
                //        break;
                //    case ConversionResult.ErrorUnableToExportToXps:
                //        // 微软 OFFICE Save As PDF 或 XPS  插件未安装异常
                //        break;
                //}
            }
            #endregion

            #region 判断全选和保存状态
            int ischeckCount = (dgList.ItemsSource as List <SummarizeDoc>).Count(p => p.IsChecked == true);
            if (ischeckCount == 1 || ischeckCount == 0)
            {
                //if (ischeckCount == 1)
                //{
                //    //SummarizeDocSelected = (dgList.ItemsSource as List<SummarizeDoc>).Where(p => p.IsChecked == true).FirstOrDefault();

                //    //RuleName.Text = SummarizeDocSelected.SUMMARIZENAME;
                //    //Sender.Text = SummarizeDocSelected.SENDPERSON;
                //    //dpSendDate.SelectedDate = Convert.ToDateTime(SummarizeDocSelected.SENDDATE);
                //    //tbSynopsis.Text = SummarizeDocSelected.SUMMARY;
                //}
                //btnSave.IsEnabled = true;
                isAddOrUpdate = 1;//可以进行修改操作
            }
            else
            {
                //RuleName.Text = "";
                //Sender.Text = "";
                //dpSendDate.SelectedDate = Convert.ToDateTime(DateTime.Now);
                //tbSynopsis.Text = "";
                //btnSave.IsEnabled = false;
                isAddOrUpdate = 0;
            }
            foreach (SummarizeDoc result in dgList.ItemsSource)
            {
                if (result.IsChecked != checkedState)
                {
                    this.chkAll.IsChecked = null;
                    return;
                }
            }
            chkAll.IsChecked = checkedState;
            #endregion
        }
        /// <summary>
        /// 上传附件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnAdd_Click_1(object sender, RoutedEventArgs e)
        {
            isAddOrUpdate = 0;//上传即新建
            upfilestr     = "";
            OpenFileDialog dlg = new OpenFileDialog();

            dlg.CheckFileExists = true;  //检查文件是否存在
            dlg.Multiselect     = false; //是否允许多选,false表示单选
            dlg.CheckPathExists = true;
            //只限制上传word和excel
            dlg.Filter = "Office Files|*.doc;*.docx;*.xls;*.xlsx";
            if ((bool)dlg.ShowDialog())
            {
                string filePath = dlg.FileName;
                upfilestr = dlg.FileName;

                if (UpLodeEnclouseFolder(filePath) == true)
                //if (UpLoadFile(filePath,true) == true)
                {
                    //MessageBox.Show("文件上传成功!");

                    //新增
                    currentsummarize.GUID          = CO_IA.Client.Utility.NewGuid();
                    currentsummarize.ACTIVITY_GUID = activityId;//活动id
                    PT_BS_Service.Client.Framework.BeOperationInvoker.Invoke <I_CO_IA.ActivitySummarize.I_CO_IA_SummarizeDoc>
                        (channel =>
                    {
                        bool monitorResult = channel.SaveSummarizeDoc(currentsummarize);
                        if (monitorResult == true)
                        {
                            MessageBox.Show("保存成功!");
                            BindDatGrid();
                        }
                        else
                        {
                            MessageBox.Show("保存失败!");
                        }
                    });
                    //btnSave.IsEnabled = true;

                    //string xpsFilePath = filePath.Substring(0, filePath.LastIndexOf(".")).ToString() + ".xps";
                    string xpsFilePath = GetPath() + filePath.Substring(filePath.LastIndexOf('\\') + 1, filePath.LastIndexOf(".") - filePath.LastIndexOf('\\') - 1).ToString() + ".xps";

                    try
                    {
                        if (OfficeConverter.IsValidOfficeFile(filePath))
                        {
                            OfficeConverter.ConvertToXps(filePath, xpsFilePath);
                            using (XpsDocument xpsDoc = new XpsDocument(xpsFilePath, FileAccess.Read))
                            {
                                var fsxps = xpsDoc.GetFixedDocumentSequence();
                                xpsDocViewr.Document = fsxps;
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.GetExceptionMessage());
                    }
                    //var convertResults = OfficeToXps.ConvertToXps(filePath, ref xpsFilePath);
                    //switch (convertResults.Result)
                    //{
                    //    case ConversionResult.OK:
                    //        try
                    //        {
                    //            using (XpsDocument xpsDoc = new XpsDocument(xpsFilePath, FileAccess.Read))
                    //            {
                    //                var fsxps = xpsDoc.GetFixedDocumentSequence();
                    //                xpsDocViewr.Document = fsxps;
                    //            }
                    //        }
                    //        catch (Exception ex)
                    //        {

                    //        }
                    //        break;
                    //    case ConversionResult.InvalidFilePath:
                    //        // 处理文件路径错误或文件不存在
                    //        break;
                    //    case ConversionResult.UnexpectedError:

                    //        break;
                    //    case ConversionResult.ErrorUnableToInitializeOfficeApp:
                    //        MessageBox.Show("未安装打印机或未启动打印机服务,请重新安装打印机或重启机器后尝试。", "消息提示", MessageBoxButton.OK);
                    //        // Office 未安装会出现这个异常
                    //        break;
                    //    case ConversionResult.ErrorUnableToOpenOfficeFile:
                    //        // 文件被占用会出现这个异常
                    //        break;
                    //    case ConversionResult.ErrorUnableToAccessOfficeInterop:
                    //        // Office 未安装会出现这个异常
                    //        break;
                    //    case ConversionResult.ErrorUnableToExportToXps:
                    //        // 微软 OFFICE Save As PDF 或 XPS  插件未安装异常
                    //        break;
                    //}
                }
                else
                {
                    MessageBox.Show("请选择附件!");
                }
            }
        }
Beispiel #5
0
        //Conversion
        private void bwConv_DoWork(object sender, DoWorkEventArgs e)
        {
            var worker = sender as BackgroundWorker;

            var cmpt = 0;

            OfficeConverter.SilentMode = true;

            var drtc     = new List <DataGridViewRow>();
            var newFiles = new List <string>();

            OfficeConverter.KeepOpen = true;

            foreach (DataGridViewRow dr
                     in dgv2003.Rows.Cast <DataGridViewRow>().Where(dr => dr.Cells["Fichier"].Value != null))
            {
                cmpt++;
                if (worker != null)
                {
                    worker.ReportProgress((int)(100 * (cmpt / ((double)dgv2003.RowCount))));
                    if (worker.CancellationPending)
                    {
                        e.Cancel = true;
                        break;
                    }
                }
                var filePath           = dr.Cells["Fichier"].Value.ToString();
                var path               = Path.GetDirectoryName(filePath);
                var parentAnalysisPath = Path.GetDirectoryName(Analyser.Config.Paths[(int)dr.Cells["AnalysisPath"].Value]);

                var relativePath = parentAnalysisPath == null ?
                                   "\\" + Analyser.Config.Paths[(int)dr.Cells["AnalysisPath"].Value].Substring(0, 1) : //drive analysis
                                   path.Substring(parentAnalysisPath.Length);                                          //folder in a drive

                try
                {
                    string destination;
                    if (!OfficeConverter.ConvertToNewOfficeDocument(filePath, out destination))
                    {
                        continue;
                    }
                    var fi = new FileInfo(filePath);

                    if (chkAttributs.Checked)
                    {
                        File.SetCreationTime(destination, fi.CreationTime);
                        File.SetLastAccessTime(destination, fi.LastAccessTime);
                        File.SetLastWriteTime(destination, fi.LastWriteTime);
                    }
                    var newFolder = folderBrowserDialog1.SelectedPath +
                                    relativePath;
                    var di = new DirectoryInfo(newFolder);
                    di.Create();

                    fi.MoveTo(newFolder + "\\" + Path.GetFileName(filePath));
                    drtc.Add(dr);
                    newFiles.Add(destination);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(string.Format(Resources.Languages.Resources.Error_Conversion, filePath, ex.Message),
                                    Resources.Languages.Resources.Erreur, MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }

            OfficeConverter.DisposeOfficesApp();

            for (var a = 0; a < drtc.Count(); a++)
            {
                drtc[a].Cells["Fichier"].Value = newFiles[a];
            }
        }
        private List <string> GetShareFileUrls()
        {
            var ret = new List <string>();

            for (var idx = 0; idx < Request.Files.Count; idx++)
            {
                try
                {
                    HttpPostedFileBase fl = Request.Files.Get(idx);
                    if (fl != null && fl.ContentLength > 0)
                    {
                        var ext = Path.GetExtension(Path.GetFileName(fl.FileName)).ToUpper();
                        if (ext.Contains(".PPT") ||
                            ext.Contains(".DOC") ||
                            ext.Contains(".XLS") ||
                            ext.Contains(".TXT") ||
                            ext.Contains(".MSG") ||
                            ext.Contains(".PDF") ||
                            ext.Contains(".HTML"))
                        {
                            string fn = System.IO.Path.GetFileName(fl.FileName)
                                        .Replace(" ", "_").Replace("#", "").Replace("'", "")
                                        .Replace("&", "").Replace("?", "").Replace("%", "").Replace("+", "");

                            string datestring = DateTime.Now.ToString("yyyyMMdd");
                            string imgdir     = Server.MapPath("~/userfiles") + "\\docs\\" + datestring + "\\";
                            if (!Directory.Exists(imgdir))
                            {
                                Directory.CreateDirectory(imgdir);
                            }
                            fn = Path.GetFileNameWithoutExtension(fn) + "-" + DateTime.Now.ToString("yyyyMMddHHmmss") + Path.GetExtension(fn);
                            fl.SaveAs(imgdir + fn);

                            var wholefn = imgdir + fn;

                            if (ext.Contains(".PDF"))
                            {
                                if (System.IO.File.Exists(imgdir + Path.GetFileNameWithoutExtension(fn) + ".pdf"))
                                {
                                    ret.Add("/userfiles/docs/" + datestring + "/" + Path.GetFileNameWithoutExtension(fn) + ".pdf");
                                }
                            }
                            else if (ext.Contains(".HTML"))
                            {
                                if (System.IO.File.Exists(imgdir + Path.GetFileNameWithoutExtension(fn) + ".html"))
                                {
                                    ret.Add("/userfiles/docs/" + datestring + "/" + Path.GetFileNameWithoutExtension(fn) + ".html");
                                }
                            }
                            else if (ext.Contains(".XLS"))
                            {
                                if (OfficeConverter.ExcelConverter(wholefn))
                                {
                                    if (System.IO.File.Exists(imgdir + Path.GetFileNameWithoutExtension(fn) + ".html"))
                                    {
                                        ret.Add("/userfiles/docs/" + datestring + "/" + Path.GetFileNameWithoutExtension(fn) + ".html");
                                    }
                                }
                            }
                            else if (ext.Contains(".DOC") || ext.Contains(".TXT"))
                            {
                                if (OfficeConverter.DocConverter(wholefn))
                                {
                                    if (System.IO.File.Exists(imgdir + Path.GetFileNameWithoutExtension(fn) + ".html"))
                                    {
                                        ret.Add("/userfiles/docs/" + datestring + "/" + Path.GetFileNameWithoutExtension(fn) + ".html");
                                    }
                                }
                            }
                            else if (ext.Contains(".MSG"))
                            {
                                if (OfficeConverter.OutlookConverter(wholefn))
                                {
                                    if (System.IO.File.Exists(imgdir + Path.GetFileNameWithoutExtension(fn) + ".html"))
                                    {
                                        ret.Add("/userfiles/docs/" + datestring + "/" + Path.GetFileNameWithoutExtension(fn) + ".html");
                                    }
                                }
                            }
                            else if (ext.Contains(".PPT"))
                            {
                                if (OfficeConverter.PPTConverter(wholefn))
                                {
                                    if (System.IO.File.Exists(imgdir + Path.GetFileNameWithoutExtension(fn) + ".pdf"))
                                    {
                                        ret.Add("/userfiles/docs/" + datestring + "/" + Path.GetFileNameWithoutExtension(fn) + ".pdf");
                                    }
                                }
                            }
                        } //end if
                    }     //end if
                }         //end try
                catch (Exception ex)
                {}
            }//end foreach

            return(ret);
        }