Beispiel #1
0
        public static FileResultViewModel ConvertWordtoImage(UserViewModel check, string linkQRImage, string savefilename)
        {
            string       filename1   = "Doc1.docx";
            const string saveFolder  = "/Storage";
            const string saveImage   = "images";
            string       startupPath = System.Web.HttpContext.Current.Server.MapPath("/Storage");

            Microsoft.Office.Interop.Word.Application myWordApp = new Microsoft.Office.Interop.Word.Application();
            //Document myWordDoc = new Document();
            object missing   = System.Type.Missing;
            object path1     = Path.Combine(startupPath, filename1);
            var    myWordDoc = myWordApp.Documents.Add(path1, missing, missing, missing);

            foreach (Bookmark bm in myWordDoc.Bookmarks)
            {
                switch (bm.Name)
                {
                case "Ten":
                    bm.Range.Text = check.HoTen.Trim();
                    break;

                case "GioiTinh":
                    bm.Range.Text = check.GioiTinh == true ? "Nam" : "Nữ";
                    break;

                case "HinhThuc":
                    bm.Range.Text = check.HinhThuc.Trim();;
                    break;

                case "NganhDaoTao":
                    bm.Range.Text = check.NganhDaoTao.Trim();
                    break;

                case "NgaySinh":
                    bm.Range.Text = check.NgaySinhString.Trim();
                    break;

                case "SoHieu":
                    bm.Range.Text = check.SoHieu.ToString();
                    break;

                case "SoBangCap":
                    bm.Range.Text = check.SoBangCap.Trim();
                    break;

                case "XepLoai":
                    bm.Range.Text = check.XepLoai.Trim();
                    break;

                case "QRCode":
                    //var sparePicture = ByteArrayToImage(QRCodeByte);
                    object oRange = bm.Range;
                    //var link_anh = System.Web.HttpContext.Current.Server.MapPath("/images") + "\\no-image.jpg";
                    /*Microsoft.Office.Interop.Word.InlineShape ils  =*/
                    myWordDoc.InlineShapes.AddPicture(linkQRImage, ref missing, ref missing, ref oRange);
                    // ils.Height = 2339 ;
                    //ils.Width = 1654;
                    break;

                case "NgayHienTai":
                    bm.Range.Text = DateTime.Now.Day.ToString();
                    break;

                case "ThangHienTai":
                    bm.Range.Text = DateTime.Now.Month.ToString();
                    break;

                case "NamHienTai":
                    bm.Range.Text = DateTime.Now.Year.ToString();
                    break;
                }
            }
            var target = Path.Combine(startupPath, saveImage);

            if (!Directory.Exists(target))
            {
                Directory.CreateDirectory(target);
            }
            foreach (Microsoft.Office.Interop.Word.Window window in myWordDoc.Windows)
            {
                foreach (Microsoft.Office.Interop.Word.Pane pane in window.Panes)
                {
                    for (var i = 1; i <= pane.Pages.Count; i++)
                    {
                        var bits = pane.Pages[1].EnhMetaFileBits;
                        try
                        {
                            using (var ms = new MemoryStream((byte[])(bits)))
                            {
                                byte[] resizedImage;
                                var    image = System.Drawing.Image.FromStream(ms);
                                image = new Bitmap(image, new System.Drawing.Size(1654, 2339));
                                image = Transparent2Color(image, Color.White);
                                var pngTarget = Path.ChangeExtension(target + "\\" + savefilename, "png");
                                image.Save(pngTarget, ImageFormat.Png);
                                using (MemoryStream streamResized = new MemoryStream())
                                {
                                    image.Save(streamResized, ImageFormat.Png);
                                    resizedImage = streamResized.ToArray();
                                }
                                var fileVm = new FileResultViewModel();
                                fileVm.Content  = Convert.ToBase64String(resizedImage);
                                fileVm.FileName = savefilename + ".png";
                                myWordDoc.Close(WdSaveOptions.wdDoNotSaveChanges, Type.Missing, Type.Missing);
                                myWordApp.Quit(Type.Missing, Type.Missing, Type.Missing);
                                Marshal.ReleaseComObject(myWordDoc);
                                Marshal.ReleaseComObject(myWordApp);
                                return(fileVm);
                            }
                        }
                        catch (System.Exception ex)
                        {
                            myWordDoc.Close(WdSaveOptions.wdDoNotSaveChanges, Type.Missing, Type.Missing);
                            myWordApp.Quit(Type.Missing, Type.Missing, Type.Missing);
                            Marshal.ReleaseComObject(myWordDoc);
                            Marshal.ReleaseComObject(myWordApp);
                            return(null);
                        }
                    }
                }
            }
            //var fileNameTemp = $"ImportDV_{DateTime.Now:yyyyMMddHHmmss}{extension}";
            //var filePathTemp = Path.Combine(fullPath, fileNameTemp);
            //file.SaveAs(filePathTemp);
            //myWordDoc.Close(WdSaveOptions.wdDoNotSaveChanges);
            return(null);
        }
Beispiel #2
0
        public async Task <IActionResult> Browse(string?path, int offset = 0, int count = 50)
        {
            var osUser = _configuration.GetSection("OsUser")["OsUsername"];

            if (string.IsNullOrEmpty(path) ||
                !UnixHelper.HasAccess(osUser,
                                      _fileService.RetrieveAbsoluteFromSystemPath(path)))
            {
                path = Path.DirectorySeparatorChar.ToString();
            }

            var contents = GetContents(path);

            ViewData["path"]      = path;
            ViewData["returnUrl"] = UnixHelper.GetParent(path);
            var lrmv = new FileResultViewModel();

            if (null == contents)
            {
                ReturnMessage = "Something went wrong...";
                return(View(lrmv));
            }

            if (!contents.Exists)
            {
                ReturnMessage = "The resource doesn't exist on the filesystem.";
                return(View(lrmv));
            }

            lrmv.Contents     = contents;
            lrmv.ContentsList = contents.ToList();

            await lrmv.SortContents();

            var fileInfosList = lrmv.ContentsList;

            var pageCount = fileInfosList.Count / count;

            SetPagingParams(offset, count, pageCount);

            Set("Offset", offset.ToString(), 3600);
            Set("Count", count.ToString(), 3600);
            Set("PageCount", pageCount.ToString(), 3600);

            if (fileInfosList.Count > count)
            {
                lrmv.ApplyPaging(offset, count);
            }

            if (!HttpContext.User.IsInRole("Admin"))
            {
                try
                {
                    lrmv.ApplyAcl(osUser);
                }
                catch (InvalidOperationException ex)
                {
                    Log.Error(ex, "StorageController#Browse");
                }
            }

            var fileInfo = _fileService.RetrieveFileInfoFromSystemPath(path);

            if (fileInfo.Exists &&
                !fileInfo.IsDirectory)
            {
                return(RedirectToAction(nameof(Download), new { @id = fileInfo.Name, @z = true }));
            }

            return(View(lrmv));
        }