예제 #1
0
        private void DoExportUsingFlexCelImgExportSimple(ImageColorDepth ColorDepth)
        {
            if (!HasFileOpen())
            {
                return;
            }
            if (!LoadPreferences())
            {
                return;
            }

            if (exportImageDialog.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            ImageExportType ImgFormat = ImageExportType.Png;

            if (String.Compare(Path.GetExtension(exportImageDialog.FileName), ".jpg", true) == 0)
            {
                ImgFormat = ImageExportType.Jpeg;
            }

            using (FlexCelImgExport ImgExport = new FlexCelImgExport(flexCelPrintDocument1.Workbook))
            {
                ImgExport.AllVisibleSheets           = cbAllSheets.Checked;
                ImgExport.ResetPageNumberOnEachSheet = cbResetPageNumber.Checked;
                ImgExport.Resolution = 96; //To get a better quality image but with larger file size too, increate this value. (for example to 300 or 600 dpi)
                ImgExport.SaveAsImage(exportImageDialog.FileName, ImgFormat, ColorDepth);
            }
        }
예제 #2
0
        private void DoExportUsingFlexCelImgExportComplex(ImageColorDepth ColorDepth)
        {
            if (!HasFileOpen())
            {
                return;
            }
            if (!LoadPreferences())
            {
                return;
            }

            if (exportImageDialog.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            System.Drawing.Imaging.ImageFormat ImgFormat = System.Drawing.Imaging.ImageFormat.Png;
            if (String.Compare(Path.GetExtension(exportImageDialog.FileName), ".jpg", true) == 0)
            {
                ImgFormat = System.Drawing.Imaging.ImageFormat.Jpeg;
            }

            using (FlexCelImgExport ImgExport = new FlexCelImgExport(flexCelPrintDocument1.Workbook))
            {
                ImgExport.Resolution = 96; //To get a better quality image but with larger file size too, increate this value. (for example to 300 or 600 dpi)

                if (cbAllSheets.Checked)
                {
                    int SaveActiveSheet = ImgExport.Workbook.ActiveSheet;
                    try
                    {
                        ImgExport.Workbook.ActiveSheet = 1;
                        bool Finished = false;
                        while (!Finished)
                        {
                            ExportAllImages(ImgExport, ImgFormat, ColorDepth);
                            if (ImgExport.Workbook.ActiveSheet < ImgExport.Workbook.SheetCount)
                            {
                                ImgExport.Workbook.ActiveSheet++;
                            }
                            else
                            {
                                Finished = true;
                            }
                        }
                    }
                    finally
                    {
                        ImgExport.Workbook.ActiveSheet = SaveActiveSheet;
                    }
                }
                else
                {
                    ExportAllImages(ImgExport, ImgFormat, ColorDepth);
                }
            }
        }
예제 #3
0
        //The methods shows how to use FlexCelImgExport the "hard way", without using SaveAsImage.
        //For normal operation you should only need to call SaveAsImage, but you could use the code here
        //if you need to customize the ImgExport output, or if you need to get all the images as different files.
        private void CreateImg(Stream OutStream, FlexCelImgExport ImgExport, ImageFormat ImgFormat, ImageColorDepth Colors, ref TImgExportInfo ExportInfo)
        {
            TPaperDimensions pd = ImgExport.GetRealPageSize();

            PixelFormat RgbPixFormat = Colors != ImageColorDepth.TrueColor ? PixelFormat.Format32bppPArgb : PixelFormat.Format24bppRgb;
            PixelFormat PixFormat    = PixelFormat.Format1bppIndexed;

            switch (Colors)
            {
            case ImageColorDepth.TrueColor: PixFormat = RgbPixFormat; break;

            case ImageColorDepth.Color256: PixFormat = PixelFormat.Format8bppIndexed; break;
            }

            using (Bitmap OutImg = CreateBitmap(ImgExport.Resolution, pd, PixFormat))
            {
                Bitmap ActualOutImg = Colors != ImageColorDepth.TrueColor ? CreateBitmap(ImgExport.Resolution, pd, RgbPixFormat) : OutImg;
                try
                {
                    using (Graphics Gr = Graphics.FromImage(ActualOutImg))
                    {
                        Gr.FillRectangle(Brushes.White, 0, 0, ActualOutImg.Width, ActualOutImg.Height); //Clear the background
                        ImgExport.ExportNext(Gr, ref ExportInfo);
                    }

                    if (Colors == ImageColorDepth.BlackAndWhite)
                    {
                        FloydSteinbergDither.ConvertToBlackAndWhite(ActualOutImg, OutImg);
                    }
                    else
                    if (Colors == ImageColorDepth.Color256)
                    {
                        OctreeQuantizer.ConvertTo256Colors(ActualOutImg, OutImg);
                    }
                }
                finally
                {
                    if (ActualOutImg != OutImg)
                    {
                        ActualOutImg.Dispose();
                    }
                }

                OutImg.Save(OutStream, ImgFormat);
            }
        }
예제 #4
0
        private void ExportAllImages(FlexCelImgExport ImgExport, ImageFormat ImgFormat, ImageColorDepth ColorDepth)
        {
            TImgExportInfo ExportInfo = null; //For first page.
            int            i          = 0;

            do
            {
                string FileName = Path.GetDirectoryName(exportImageDialog.FileName)
                                  + Path.DirectorySeparatorChar
                                  + Path.GetFileNameWithoutExtension(exportImageDialog.FileName)
                                  + "_" + ImgExport.Workbook.SheetName
                                  + String.Format("_{0:0000}", i) +
                                  Path.GetExtension(exportImageDialog.FileName);
                using (FileStream ImageStream = new FileStream(FileName, FileMode.Create))
                {
                    CreateImg(ImageStream, ImgExport, ImgFormat, ColorDepth, ref ExportInfo);
                }
                i++;
            } while (ExportInfo.CurrentPage < ExportInfo.TotalPages);
        }
예제 #5
0
        //How to create a multipage tiff using FlexCelImgExport.
        //This will create a multipage tiff with the data.
        private void DoExportMultiPageTiff(ImageColorDepth ColorDepth, bool IsFax)
        {
            if (!HasFileOpen())
            {
                return;
            }
            if (!LoadPreferences())
            {
                return;
            }

            if (exportTiffDialog.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            ImageExportType ExportType = ImageExportType.Tiff;

            if (IsFax)
            {
                ExportType = ImageExportType.Fax;
            }

            using (FlexCelImgExport ImgExport = new FlexCelImgExport(flexCelPrintDocument1.Workbook))
            {
                ImgExport.AllVisibleSheets           = cbAllSheets.Checked;
                ImgExport.ResetPageNumberOnEachSheet = cbResetPageNumber.Checked;

                ImgExport.Resolution = 96; //To get a better quality image but with larger file size too, increate this value. (for example to 300 or 600 dpi)
                using (FileStream TiffStream = new FileStream(exportTiffDialog.FileName, FileMode.Create))
                {
                    ImgExport.SaveAsImage(TiffStream, ExportType, ColorDepth);
                }
            }
            if (MessageBox.Show("Do you want to open the generated file?", "Confirm", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                Process.Start(exportTiffDialog.FileName);
            }
        }
        private void LoadUC()
        {
            try
            {
                #region add control de view du lieu tu stream

                FlexCelPreview1 = new FlexCel.Winforms.FlexCelPreview();
                //new System.EventHandler(this.exitToolStripMenuItem_Cli ck);
                FlexCelPreview1.StartPageChanged += new System.EventHandler(this.FlexCelPreview1_StartPageChanged);
                FlexCelPreview1.ZoomChanged      += new System.EventHandler(this.FlexCelPreview1_ZoomChanged);

                //System.EventHandler FlexCelPreview1_StartPageChanged = new System.EventHandler(this.FlexCelPreview1_StartPageChanged);
                flexCelImgExport1           = new FlexCel.Render.FlexCelImgExport();
                FlexCelPreview1.Document    = flexCelImgExport1;
                FlexCelPreview1.Dock        = DockStyle.Fill;
                FlexCelPreview1.MaximumSize = new System.Drawing.Size(1000, 600);
                previewPanel.Controls.Add(FlexCelPreview1);

                #endregion

                #region add control hien thi cac trang cua bao cao thu nho

                thumbs                = new FlexCel.Winforms.FlexCelPreview();
                thumbs.Document       = flexCelImgExport1;
                thumbs.ThumbnailLarge = FlexCelPreview1;
                #endregion

                flexCelPrintDocument1 = new FlexCel.Render.FlexCelPrintDocument();
                flexCelPrintDocument1.AllVisibleSheets = false;
            }

            catch (Exception ex)
            {
                //ErrorLog.log.Error(ex.ToString());
            }
        }