private void DoConvert(string[] filenames)
        {
            foreach (string filename in filenames)
            {
                Logging.Info("Processing {0}", filename);
                if (DocumentConversion.CanConvert(filename))
                {
                    string pdf_filename = TempFile.GenerateTempFilename("pdf");
                    DocumentConversion.Convert(filename, pdf_filename);

                    if (ObjAddToGuest.IsChecked ?? false)
                    {
                        Application.Current.Dispatcher.Invoke(
                            new Action(() =>
                        {
                            PDFDocument pdf_document = WebLibraryManager.Instance.Library_Guest.AddNewDocumentToLibrary_SYNCHRONOUS(pdf_filename, filename, null, null, null, true, false);
                            PDFReadingControl pdf_reading_control = MainWindowServiceDispatcher.Instance.OpenDocument(pdf_document);
                            pdf_reading_control.EnableGuestMoveNotification();
                        }),
                            DispatcherPriority.Background);
                    }

                    if (ObjPromptToSave.IsChecked ?? false)
                    {
                        string recommended_filename = TempFile.GenerateTempFilename("pdf");

                        SaveFileDialog save_file_dialog = new SaveFileDialog();
                        save_file_dialog.AddExtension     = true;
                        save_file_dialog.CheckPathExists  = true;
                        save_file_dialog.DereferenceLinks = true;
                        save_file_dialog.OverwritePrompt  = true;
                        save_file_dialog.ValidateNames    = true;
                        save_file_dialog.DefaultExt       = "pdf";
                        save_file_dialog.Filter           = "PDF files (*.pdf)|*.pdf|All files (*.*)|*.*";
                        save_file_dialog.FileName         = recommended_filename;

                        if (true == save_file_dialog.ShowDialog())
                        {
                            string target_filename = save_file_dialog.FileName;
                            File.Copy(pdf_filename, target_filename);
                        }
                    }

                    File.Delete(pdf_filename);
                }
                else
                {
                    StatusManager.Instance.UpdateStatus("DOC_CONV", String.Format("Unable to convert a file of type {0}", Path.GetExtension(filename)));
                }
            }
        }