コード例 #1
0
 private void gsPageRendered(int width, int height, int raster,
                             IntPtr data, gsParamState_t state)
 {
     MainPageCallback(width, height, raster, state.zoom, state.currpage, data);
 }
コード例 #2
0
        public void GSResult(gsParamState_t gs_result)
        {
            TempFile tempfile = null;

            if (gs_result.outputfile != null)
            {
                tempfile = new TempFile(gs_result.outputfile);
            }

            if (gs_result.result == GS_Result_t.gsCANCELLED)
            {
                xaml_DistillGrid.Visibility = System.Windows.Visibility.Collapsed;
                if (tempfile != null)
                {
                    try
                    {
                        tempfile.DeleteFile();
                    }
                    catch
                    {
                        ShowMessage(NotifyType_t.MESS_STATUS, "Problem Deleting Temp File");
                    }
                }
                return;
            }
            if (gs_result.result == GS_Result_t.gsFAILED)
            {
                xaml_DistillGrid.Visibility = System.Windows.Visibility.Collapsed;
                ShowMessage(NotifyType_t.MESS_STATUS, "GS Failed Conversion");
                if (tempfile != null)
                {
                    try
                    {
                        tempfile.DeleteFile();
                    }
                    catch
                    {
                        ShowMessage(NotifyType_t.MESS_STATUS, "Problem Deleting Temp File");
                    }
                }
                return;
            }
            switch (gs_result.task)
            {
            case GS_Task_t.CREATE_XPS:
                /* Always do print all from xps conversion as it will do
                 * the page range handling for us */
                /* Add file to temp file list */
                m_tempfiles.Add(tempfile);
                PrintXPS(gs_result.outputfile, true, -1, -1, true);
                break;

            case GS_Task_t.PS_DISTILL:
                xaml_DistillGrid.Visibility = System.Windows.Visibility.Collapsed;
                m_origfile = gs_result.inputfile;

                /* Save distilled result */
                SaveFileDialog dlg = new SaveFileDialog();
                dlg.Filter   = "PDF file (*.pdf)|*.pdf";
                dlg.FileName = System.IO.Path.GetFileNameWithoutExtension(m_origfile) + ".pdf";
                if (dlg.ShowDialog() == true)
                {
                    try
                    {
                        if (File.Exists(dlg.FileName))
                        {
                            File.Delete(dlg.FileName);
                        }
                        File.Copy(tempfile.Filename, dlg.FileName);
                    }
                    catch (Exception except)
                    {
                        ShowMessage(NotifyType_t.MESS_ERROR, "Exception Saving Distilled Result:" + except.Message);
                    }
                }
                tempfile.DeleteFile();
                m_viewer_state = ViewerState_t.NO_FILE;
                break;

            case GS_Task_t.SAVE_RESULT:
                /* Don't delete file in this case as this was our output! */
                ShowMessage(NotifyType_t.MESS_STATUS, "GS Completed Conversion");
                break;
            }
        }
コード例 #3
0
        /* GS Result*/
        public void GSResult(gsParamState_t gs_result)
        {
            TempFile tempfile = null;

            if (gs_result.outputfile != null)
            {
                tempfile = new TempFile(gs_result.outputfile);
            }

            if (gs_result.result == GS_Result_t.gsCANCELLED)
            {
                if (tempfile != null)
                {
                    try
                    {
                        tempfile.DeleteFile();
                    }
                    catch
                    {
                        ShowMessage(NotifyType_t.MESS_STATUS, "Problem Deleting Temp File");
                    }
                }
                return;
            }
            if (gs_result.result == GS_Result_t.gsFAILED)
            {
                ShowMessage(NotifyType_t.MESS_STATUS, "GS Failed Conversion");
                if (tempfile != null)
                {
                    try
                    {
                        tempfile.DeleteFile();
                    }
                    catch
                    {
                        ShowMessage(NotifyType_t.MESS_STATUS, "Problem Deleting Temp File");
                    }
                }
                return;
            }

            switch (gs_result.task)
            {
            case GS_Task_t.PS_DISTILL:
                m_origfile = gs_result.inputfile;

                Gtk.FileChooserDialog dialog = new Gtk.FileChooserDialog("Save Document",
                                                                         (Gtk.Window) this.Toplevel,
                                                                         Gtk.FileChooserAction.Save);
                dialog.LocalOnly = true;
                dialog.AddButton(Gtk.Stock.Cancel, Gtk.ResponseType.Cancel);
                dialog.AddButton(Gtk.Stock.Save, Gtk.ResponseType.Yes);
                dialog.SetFilename(System.IO.Path.GetFileNameWithoutExtension(m_origfile) + ".pdf");

                Gtk.FileFilter filter = new Gtk.FileFilter();
                filter.Name = "doc/pdf";
                filter.AddMimeType("application/pdf");
                filter.AddPattern("*.pdf");
                dialog.Filter = filter;

                int response = dialog.Run();
                if (response == (int)Gtk.ResponseType.Yes)
                {
                    m_currfile = dialog.Filename;
                    try
                    {
                        if (System.IO.File.Exists(m_currfile))
                        {
                            System.IO.File.Delete(m_currfile);
                        }

                        var res = System.IO.File.Exists(tempfile.Filename);
                        System.IO.File.Copy(tempfile.Filename, dialog.Filename);
                    }
                    catch (Exception except)
                    {
                        ShowMessage(NotifyType_t.MESS_ERROR, "Exception Saving Distilled Result:" + except.Message);
                    }
                }

                dialog.Destroy();
                tempfile.DeleteFile();
                break;
            }
        }