Beispiel #1
0
        private void button1_Click(object sender, EventArgs e)
        {
            ShapeRange          OrigSelection = app.ActiveSelectionRange;
            ExportFilter        expflt;
            StructExportOptions expopt = app.CreateStructExportOptions();

            expopt.UseColorProfile = false;
            expopt.ResolutionX     = 72;
            expopt.ResolutionY     = 72;
            expopt.ImageType       = cdrImageType.cdrCMYKColorImage;
            StructPaletteOptions exppopt = app.CreateStructPaletteOptions();

            expflt = app.ActiveDocument.ExportEx("C:\\PStoCurve.eps", cdrFilter.cdrEPS, cdrExportRange.cdrSelection, expopt, exppopt);

            expflt.Finish();
            ImportFilter        impflt;
            StructImportOptions impopt = app.CreateStructImportOptions();

            impopt.MaintainLayers = true;
            impflt = app.ActiveLayer.ImportEx("C:\\PStoCurve.eps", cdrFilter.cdrPSInterpreted, impopt);
            impflt.Finish();
            OrigSelection.Delete();
        }
Beispiel #2
0
        private void CopyToClipboard(bool bCopyAI = true, bool bCopyPDF = true, bool bCopyEPS = true)
        {
            if (application.ActiveDocument == null || application.ActiveShape == null)
            {
                MessageBox.Show("没有选定对象");
                return;
            }
            String              sTempFileAI = null;
            String              sTempFilePDF = null;
            String              sTempFileEPS = null;
            uint                nClipFmtAI = 0, nClipFmtPDF = 0, nClipFmtEPS = 0;
            ExportFilter        ef;
            StructExportOptions seo = application.CreateStructExportOptions();

            if (bCopyAI)
            {
                nClipFmtAI  = RegisterClipboardFormat(AIClipFormat);
                sTempFileAI = GetTempFile("ai");
                ef          = application.ActiveDocument.ExportEx(sTempFileAI, cdrFilter.cdrAI, cdrExportRange.cdrSelection);
                ef.ShowDialog();
                ef.Finish();
            }
            if (bCopyPDF)
            {
                nClipFmtPDF  = RegisterClipboardFormat(PDFClipFormat);
                sTempFilePDF = GetTempFile("pdf");
                ef           = application.ActiveDocument.ExportEx(sTempFilePDF, cdrFilter.cdrPDF, cdrExportRange.cdrSelection);
                ef.Finish();
            }
            if (bCopyEPS)
            {
                nClipFmtEPS  = RegisterClipboardFormat(EPSClipFormat);
                sTempFileEPS = GetTempFile("eps");
                ef           = application.ActiveDocument.ExportEx(sTempFileEPS, cdrFilter.cdrEPS, cdrExportRange.cdrSelection);
                ef.Finish();
            }
            if (bCopyAI || bCopyPDF || bCopyEPS)
            {
                if (OpenClipboard((IntPtr)application.AppWindow.Handle))
                {
                    if (EmptyClipboard())
                    {
                        //Clipboard.Clear();
                        if (bCopyAI)
                        {
                            IntPtr hMem = LoadFile(sTempFileAI);
                            SetClipboardData(nClipFmtAI, hMem);
                        }
                        if (bCopyPDF)
                        {
                            IntPtr hMem = LoadFile(sTempFilePDF);
                            SetClipboardData(nClipFmtPDF, hMem);
                        }
                        if (bCopyEPS)
                        {
                            IntPtr hMem = LoadFile(sTempFileEPS);
                            SetClipboardData(nClipFmtEPS, hMem);
                        }
                    }
                    CloseClipboard();
                }
                if (sTempFileAI != null)
                {
                    File.Delete(sTempFileAI);
                }
                if (sTempFilePDF != null)
                {
                    File.Delete(sTempFilePDF);
                }
                if (sTempFileEPS != null)
                {
                    File.Delete(sTempFileEPS);
                }
            }
        }
Beispiel #3
0
        private void ExportJPG(Page page)
        {
            if (page.Shapes.Count == 0)
            {
                return;
            }
            String namen;

            if (rbDocument.Checked)
            {
                namen = app.ActiveDocument.Name;
            }
            else
            {
                namen = outFileName;
            }
            String              DestDir, FileName;
            ExportFilter        ef;
            StructExportOptions seo = new StructExportOptions();

            seo.AntiAliasingType = cbSmooth.Checked ? cdrAntiAliasingType.cdrNormalAntiAliasing : cdrAntiAliasingType.cdrNoAntiAliasing;
            seo.ImageType        = (cdrImageType)cbCM.SelectedIndex;
            seo.Compression      = (cdrCompressionType)cbYSSF.SelectedIndex;
            seo.UseColorProfile  = cbUseColorProfile.Checked;
            int s = 72;

            if (cboFbl.Text != "")
            {
                int.TryParse(cboFbl.Text, out s);
            }
            seo.ResolutionX = s;
            seo.ResolutionY = s;
            DestDir         = tbPath.Text;
            if (!DestDir.EndsWith("\\"))
            {
                DestDir += "\\";
            }
            if (rbSelection.Checked)
            {
                FileName = DestDir + namen + getPageName(page) + getIndex() + getUnit(0, 0) + ".jpg";
                page.Activate();
                ef = app.ActiveDocument.ExportEx(FileName, cdrFilter.cdrJPEG, cdrExportRange.cdrSelection, seo);
                ef.Finish();
            }
            else if (cbPageScope.Checked)
            {
                Rect rct = new Rect();
                if (cbPageHalf.Checked)
                {
                    bool hz = cbHalfOp.SelectedIndex == 0 ? true : false;
                    rct.x = page.LeftX;
                    rct.y = page.BottomY;
                    if (hz)
                    {
                        rct.Width  = page.SizeWidth;
                        rct.Height = page.SizeHeight / 2;

                        rct.y = page.SizeHeight / 2;
                    }
                    else
                    {
                        rct.Width  = page.SizeWidth / 2;
                        rct.Height = page.SizeHeight;
                    }
                    seo.set_ExportArea(rct);
                    FileName = DestDir + namen + getPageName(page) + "-1前" + getIndex() + getUnit(0, 0) + ".jpg";
                    page.Activate();
                    ef = app.ActiveDocument.ExportEx(FileName, cdrFilter.cdrJPEG, cdrExportRange.cdrCurrentPage, seo);
                    ef.Finish();
                    if (hz)
                    {
                        rct.y = page.BottomY;
                    }
                    else
                    {
                        rct.x = page.SizeWidth / 2;
                    }
                    seo.set_ExportArea(rct);
                    FileName = DestDir + tbName.Text + getPageName(page) + "-2后" + getIndex() + getUnit(0, 0) + ".jpg";
                    page.Activate();
                    ef = app.ActiveDocument.ExportEx(FileName, cdrFilter.cdrJPEG, cdrExportRange.cdrCurrentPage, seo);
                    ef.Finish();
                    return;
                }
                else
                {
                    rct.x      = page.LeftX;
                    rct.y      = page.BottomY;
                    rct.Width  = page.SizeWidth;
                    rct.Height = page.SizeHeight;
                    seo.set_ExportArea(rct);
                    //MessageBox.Show("x:" + rct.x + ",y:" + rct.y + ",width:" + rct.Width + ",height" + rct.Height);
                }
            }
            FileName = DestDir + tbName.Text + getPageName(page) + getIndex() + getUnit(0, 0) + ".jpg";
            page.Activate();
            ef = app.ActiveDocument.ExportEx(FileName, cdrFilter.cdrJPEG, cdrExportRange.cdrCurrentPage, seo);
            ef.Finish();
        }
Beispiel #4
0
        private bool ExportImage(Document d, XmlNode preset, string filePath, cdrFilter filter, cdrExportRange range, StructExportOptions opt)
        {
            try
            {
                Corel.Interop.VGCore.ICorelExportFilter exp;
                exp = d.ExportEx(filePath, filter, range, opt);
                object[] param = new Object[1];

                if (preset.Attributes["format"].Value == "Jpeg")
                {
                    param[0] = ValToBool(preset.Attributes["progressive"].Value);
                    exp.GetType().InvokeMember("Progressive", BindingFlags.SetProperty, null, exp, param);

                    param[0] = ValToBool(preset.Attributes["optimize"].Value);
                    exp.GetType().InvokeMember("Optimized", BindingFlags.SetProperty, null, exp, param);

                    if (preset.Attributes["subformat"].Value == "Standard (4:2:2)")
                    {
                        param[0] = 0;
                    }
                    else
                    {
                        param[0] = 1;
                    }
                    exp.GetType().InvokeMember("SubFormat", BindingFlags.SetProperty, null, exp, param);

                    param[0] = 100 - Convert.ToInt32(preset.Attributes["quality"].Value);
                    exp.GetType().InvokeMember("Compression", BindingFlags.SetProperty, null, exp, param);

                    param[0] = Convert.ToInt32(preset.Attributes["blur"].Value);
                    exp.GetType().InvokeMember("Smoothing", BindingFlags.SetProperty, null, exp, param);
                }
                else
                {
                    param[0] = ValToBool(preset.Attributes["interlaced"].Value);
                    exp.GetType().InvokeMember("Interlaced", BindingFlags.SetProperty, null, exp, param);
                }

                exp.Finish();
                return(true);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
                return(false);
            }
        }
Beispiel #5
0
        private void BtnContextDo(object sender, RoutedEventArgs e)
        {
            try
            {
                if (dApp.Documents.Count == 0)
                {
                    return;
                }

                var mi  = (MenuItem)sender;
                var pid = mi.Tag.ToString();

                var xDoc = new XmlDocument();
                xDoc.Load(sPath);
                var root = xDoc.ChildNodes[1];

                var preset = xDoc.SelectSingleNode("//Preset[@pid = \"" + pid + "\"]");

                if (preset != null)
                {
                    var d = dApp.ActiveDocument;

                    string filePath = "";
                    if (root.Attributes["folder"] != null)
                    {
                        filePath = root.Attributes["folder"].Value + @"\";
                    }
                    else
                    {
                        filePath = d.FilePath;
                        if (filePath == "")
                        {
                            filePath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\";
                        }
                    }
                    filePath += d.Name;

                    cdrFilter filter;
                    string    ext;
                    var       opt = new StructExportOptions();

                    var aat = cdrAntiAliasingType.cdrNoAntiAliasing;
                    if (preset.Attributes["antialiased"].Value == "1")
                    {
                        aat = cdrAntiAliasingType.cdrNormalAntiAliasing;
                    }

                    var imgType = cdrImageType.cdrRGBColorImage;
                    switch (preset.Attributes["colormode"].Value)
                    {
                    case "CMYK Color":
                        imgType = cdrImageType.cdrCMYKColorImage;
                        break;

                    case "Grayscale":
                        imgType = cdrImageType.cdrGrayscaleImage;
                        break;
                    }

                    opt.Overwrite        = true;
                    opt.AntiAliasingType = aat;
                    opt.ImageType        = imgType;
                    opt.MaintainAspect   = true;
                    opt.UseColorProfile  = true;
                    opt.ResolutionX      = Convert.ToInt32(preset.Attributes["resolution"].Value);
                    opt.ResolutionY      = Convert.ToInt32(preset.Attributes["resolution"].Value);
                    opt.Transparent      = false;

                    var format = preset.Attributes["format"].Value;
                    if (format == "Jpeg")
                    {
                        filter          = cdrFilter.cdrJPEG;
                        ext             = ".jpg";
                        opt.Compression = cdrCompressionType.cdrCompressionJPEG;
                    }
                    else
                    {
                        filter = cdrFilter.cdrPNG;
                        ext    = ".png";
                        if (preset.Attributes["transparency"].Value == "1")
                        {
                            opt.Transparent = true;
                        }
                    }

                    switch (preset.Attributes["range"].Value)
                    {
                    case "Selection":
                        if (dApp.ActiveSelectionRange.Count == 0)
                        {
                            MessageBox.Show("No selection");
                            return;
                        }
                        ExportImage(d, preset, filePath + ext, filter, cdrExportRange.cdrSelection, opt);
                        break;

                    case "Active page":
                        if (dApp.ActivePage.Shapes.Count == 0)
                        {
                            MessageBox.Show("No shapes");
                            return;
                        }
                        ExportImage(d, preset, filePath + @"_" + d.ActivePage.Index.ToString(CultureInfo.InvariantCulture) + ext, filter, cdrExportRange.cdrCurrentPage, opt);
                        break;

                    case "All pages":
                        foreach (Page p in d.Pages)
                        {
                            p.Activate();
                            ExportImage(d, preset, filePath + @"_" + p.Index.ToString(CultureInfo.InvariantCulture) + ext, filter, cdrExportRange.cdrCurrentPage, opt);
                        }
                        break;
                    }

                    return;
                }

                MessageBox.Show("Preset not found");
            }
            catch (Exception ex) { MessageBox.Show(ex.ToString()); }
        }
Beispiel #6
0
        private void ExportJPG(Page page)
        {
            if (page.Shapes.Count == 0)
            {
                addMessage("页面无对象");
                return;
            }
            page.Activate();
            String namen;

            if (rbDocument.Checked)
            {
                namen = application.ActiveDocument.Name;
            }
            else
            {
                namen = outFileName;
            }
            application.ActiveDocument.Unit = cdrUnit.cdrPixel;
            cdrFilter           filter = getFilter();
            String              ext = getExt();
            String              DestDir, FileName;
            ExportFilter        ef;
            StructExportOptions seo = application.CreateStructExportOptions();

            seo.AntiAliasingType = cbSmooth.Checked ? cdrAntiAliasingType.cdrSupersampling : cdrAntiAliasingType.cdrNoAntiAliasing;
            seo.ImageType        = (cdrImageType)cbCM.SelectedIndex;
            seo.Compression      = (cdrCompressionType)cbYSSF.SelectedIndex;
            seo.UseColorProfile  = cbUseColorProfile.Checked;

            //特别注意,透明度在jpg等无透明的格式的时候不能为True,不然光滑处理将会失效
            seo.Transparent          = checkBox_trans.Checked;
            seo.AlwaysOverprintBlack = checkBox_OverPrintBlack.Checked;
            seo.MaintainLayers       = checkBox_MaintainLayers.Checked;


            int s = 72;

            if (cboFbl.Text != "")
            {
                int.TryParse(cboFbl.Text, out s);
            }
            seo.ResolutionX = s;
            seo.ResolutionY = s;

            double sc = 1;

            if (comboBox_SC.Text != "")
            {
                double.TryParse(comboBox_SC.Text, out sc);
            }
            if (sc == 0)
            {
                addMessage("放大部数不能为0,取消。。");
                return;
            }
            if (sc != 1)
            {
                double[] dt = getSize(page);

                seo.SizeX = (int)(dt[0] * sc * (s / 300.0));
                seo.SizeY = (int)(dt[1] * sc * (s / 300.0));
            }

            DestDir = tbPath.Text;
            if (!DestDir.EndsWith("\\"))
            {
                DestDir += "\\";
            }
            if (rbSelection.Checked)
            {
                FileName = DestDir + namen + getPageName(page) + getIndex() + getUnit(0, 0) + ext;
                if (CheckFilExists(FileName))
                {
                    addMessage("文件已存在,取消");
                    return;
                }
                page.Activate();
                ef = application.ActiveDocument.ExportEx(FileName, filter, cdrExportRange.cdrSelection, seo);
                ef.Finish();
                return;
            }
            else if (rbSelRge.Checked)
            {
                Rect       rct = application.CreateRect();
                ShapeRange sr  = application.ActiveSelectionRange;
                rct.x      = sr.LeftX;
                rct.y      = sr.BottomY;
                rct.Width  = sr.SizeWidth;
                rct.Height = sr.SizeHeight;
                seo.set_ExportArea(ref rct);
                FileName = DestDir + namen + getPageName(page) + getIndex() + getUnit(0, 0) + ext;
                if (CheckFilExists(FileName))
                {
                    addMessage("文件已存在,取消");
                    return;
                }
                page.Activate();
                ef = application.ActiveDocument.ExportEx(FileName, filter, cdrExportRange.cdrCurrentPage, seo);
                ef.Finish();
                return;
            }
            else if (cbPageScope.Checked)
            {
                Rect rct = application.CreateRect();
                if (cbPageHalf.Checked)
                {
                    bool hz = cbHalfOp.SelectedIndex == 0 ? true : false;
                    rct.x = page.LeftX;
                    rct.y = page.BottomY;
                    if (hz)
                    {
                        rct.Width  = page.SizeWidth;
                        rct.Height = page.SizeHeight / 2;

                        rct.y = page.SizeHeight / 2;
                    }
                    else
                    {
                        rct.Width  = page.SizeWidth / 2;
                        rct.Height = page.SizeHeight;
                    }
                    seo.set_ExportArea(rct);
                    FileName = DestDir + namen + getPageName(page) + "-1前" + getIndex() + getUnit(0, 0) + ext;
                    if (CheckFilExists(FileName))
                    {
                        addMessage("文件已存在,取消");
                        return;
                    }
                    ef = application.ActiveDocument.ExportEx(FileName, filter, cdrExportRange.cdrCurrentPage, seo);
                    ef.Finish();
                    if (hz)
                    {
                        rct.y = page.BottomY;
                    }
                    else
                    {
                        rct.x = page.SizeWidth / 2;
                    }
                    seo.set_ExportArea(rct);
                    FileName = DestDir + namen + getPageName(page) + "-2后" + getIndex() + getUnit(0, 0) + ext;
                    if (CheckFilExists(FileName))
                    {
                        addMessage("文件已存在,取消");
                        return;
                    }
                    ef = application.ActiveDocument.ExportEx(FileName, filter, cdrExportRange.cdrCurrentPage, seo);
                    ef.Finish();
                    return;
                }
                else
                {
                    rct = application.CreateRect(page.LeftX, page.BottomY, page.SizeWidth, page.SizeHeight);
                    //rct.x = page.LeftX;
                    //rct.y = page.BottomY;
                    //rct.Width = page.SizeWidth;
                    //rct.Height = page.SizeHeight;
                    seo.set_ExportArea(rct);
                    //MessageBox.Show("x:" + rct.x + ",y:" + rct.y + ",width:" + rct.Width + ",height" + rct.Height);
                }
            }
            FileName = DestDir + namen + getPageName(page) + getIndex() + getUnit(0, 0) + ext;
            if (CheckFilExists(FileName))
            {
                addMessage("文件已存在,取消");
                return;
            }
            ef = application.ActiveDocument.ExportEx(FileName, filter, cdrExportRange.cdrCurrentPage, seo);
            ef.Finish();
        }
Beispiel #7
0
        private bool ExportImage(Document d, XmlNode preset, string filePath, cdrFilter filter, cdrExportRange range, StructExportOptions opt)
        {
            try
            {

                Corel.Interop.VGCore.ICorelExportFilter exp;
                exp = d.ExportEx(filePath, filter, range, opt);
                object[] param = new Object[1];

                if (preset.Attributes["format"].Value == "Jpeg")
                {
                    param[0] = ValToBool(preset.Attributes["progressive"].Value);
                    exp.GetType().InvokeMember("Progressive", BindingFlags.SetProperty, null, exp, param);

                    param[0] = ValToBool(preset.Attributes["optimize"].Value);
                    exp.GetType().InvokeMember("Optimized", BindingFlags.SetProperty, null, exp, param);

                    if (preset.Attributes["subformat"].Value == "Standard (4:2:2)") param[0] = 0;
                    else param[0] = 1;
                    exp.GetType().InvokeMember("SubFormat", BindingFlags.SetProperty, null, exp, param);

                    param[0] = 100 - Convert.ToInt32(preset.Attributes["quality"].Value);
                    exp.GetType().InvokeMember("Compression", BindingFlags.SetProperty, null, exp, param);

                    param[0] = Convert.ToInt32(preset.Attributes["blur"].Value);
                    exp.GetType().InvokeMember("Smoothing", BindingFlags.SetProperty, null, exp, param);
                }
                else
                {
                    param[0] = ValToBool(preset.Attributes["interlaced"].Value);
                    exp.GetType().InvokeMember("Interlaced", BindingFlags.SetProperty, null, exp, param);
                }

                exp.Finish();
                return true;

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
                return false;
            }
        }
Beispiel #8
0
        private void BtnContextDo(object sender, RoutedEventArgs e)
        {
            try
            {
                if (dApp.Documents.Count == 0) return;

                var mi = (MenuItem) sender;
                var pid = mi.Tag.ToString();

                var xDoc = new XmlDocument();
                xDoc.Load(sPath);
                var root = xDoc.ChildNodes[1];

                var preset = xDoc.SelectSingleNode("//Preset[@pid = \"" + pid + "\"]");

                if (preset != null)
                {
                    var d = dApp.ActiveDocument;

                    string filePath = "";
                    if (root.Attributes["folder"] != null) filePath = root.Attributes["folder"].Value + @"\";
                    else
                    {
                        filePath = d.FilePath;
                        if (filePath == "") filePath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\";
                    }
                    filePath += d.Name;

                    cdrFilter filter;
                    string ext;
                    var opt = new StructExportOptions();

                    var aat = cdrAntiAliasingType.cdrNoAntiAliasing;
                    if (preset.Attributes["antialiased"].Value == "1") aat = cdrAntiAliasingType.cdrNormalAntiAliasing;

                    var imgType = cdrImageType.cdrRGBColorImage;
                    switch (preset.Attributes["colormode"].Value)
                    {
                        case "CMYK Color":
                            imgType = cdrImageType.cdrCMYKColorImage;
                            break;
                        case "Grayscale":
                            imgType = cdrImageType.cdrGrayscaleImage;
                            break;
                    }

                    opt.Overwrite = true;
                    opt.AntiAliasingType = aat;
                    opt.ImageType = imgType;
                    opt.MaintainAspect = true;
                    opt.UseColorProfile = true;
                    opt.ResolutionX = Convert.ToInt32(preset.Attributes["resolution"].Value);
                    opt.ResolutionY = Convert.ToInt32(preset.Attributes["resolution"].Value);
                    opt.Transparent = false;

                    var format = preset.Attributes["format"].Value;
                    if (format == "Jpeg")
                    {
                        filter = cdrFilter.cdrJPEG;
                        ext = ".jpg";
                        opt.Compression = cdrCompressionType.cdrCompressionJPEG;
                    }
                    else
                    {
                        filter = cdrFilter.cdrPNG;
                        ext = ".png";
                        if (preset.Attributes["transparency"].Value == "1") opt.Transparent = true;
                    }

                    switch (preset.Attributes["range"].Value)
                    {
                        case "Selection":
                            if (dApp.ActiveSelectionRange.Count == 0)
                            {
                                MessageBox.Show("No selection");
                                return;
                            }
                            ExportImage(d, preset, filePath + ext, filter, cdrExportRange.cdrSelection, opt);
                            break;

                        case "Active page":
                            if (dApp.ActivePage.Shapes.Count == 0)
                            {
                                MessageBox.Show("No shapes");
                                return;
                            }
                            ExportImage(d, preset, filePath + @"_" + d.ActivePage.Index.ToString(CultureInfo.InvariantCulture) + ext, filter, cdrExportRange.cdrCurrentPage, opt);
                            break;

                        case "All pages":
                            foreach (Page p in d.Pages)
                            {
                                p.Activate();
                                ExportImage(d, preset, filePath + @"_" + p.Index.ToString(CultureInfo.InvariantCulture) + ext, filter, cdrExportRange.cdrCurrentPage, opt);
                            }
                            break;
                    }

                    return;
                }

                MessageBox.Show("Preset not found");
            }
            catch (Exception ex) { MessageBox.Show(ex.ToString()); }
        }