private void gsPageRendered(int width, int height, int raster, IntPtr data, gsParamState_t state) { MainPageCallback(width, height, raster, state.zoom, state.currpage, data); }
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; } }
/* 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; } }