Exemple #1
0
        /* ----------------------------------------------------------------- */
        ///
        /// SaveSetting
        ///
        /// <summary>
        /// 各種 GUI コンポーネントの情報を UserSetting に反映します。
        /// </summary>
        ///
        /* ----------------------------------------------------------------- */
        private void SaveSetting(UserSetting setting)
        {
            string path = this.OutputPathTextBox.Text;

            setting.OutputPath = (path.Length == 0 || Directory.Exists(path)) ? path : Path.GetDirectoryName(path);
            path = this.InputPathTextBox.Text;
            setting.InputPath   = (path.Length == 0 || Directory.Exists(path)) ? path : Path.GetDirectoryName(path);
            setting.UserProgram = this.UserProgramTextBox.Text;

            // コンボボックスのインデックス関連
            setting.FileType     = Translator.IndexToFileType(this.FileTypeCombBox.SelectedIndex);
            setting.PDFVersion   = Translator.IndexToPDFVersion(this.PDFVersionComboBox.SelectedIndex);
            setting.Resolution   = Translator.IndexToResolution(this.ResolutionComboBox.SelectedIndex);
            setting.ExistedFile  = Translator.IndexToExistedFile(this.ExistedFileComboBox.SelectedIndex);
            setting.PostProcess  = Translator.IndexToPostProcess(_postproc.SelectedIndex);
            setting.DownSampling = Translator.IndexToDownSampling(this.DownSamplingComboBox.SelectedIndex);

            // チェックボックスのフラグ関連
            setting.PageRotation = this.PageLotationCheckBox.Checked;
            setting.EmbedFont    = this.EmbedFontCheckBox.Checked;
            setting.Grayscale    = this.GrayscaleCheckBox.Checked;
            setting.ImageFilter  = this.ImageFilterCheckBox.Checked ? Parameter.ImageFilters.DCTEncode : Parameter.ImageFilters.FlateEncode;
            setting.WebOptimize  = this.WebOptimizeCheckBox.Checked;
            setting.CheckUpdate  = this.UpdateCheckBox.Checked;

            // 文書プロパティ
            setting.Document.Title    = this.DocTitleTextBox.Text;
            setting.Document.Author   = this.DocAuthorTextBox.Text;
            setting.Document.Subtitle = this.DocSubtitleTextBox.Text;
            setting.Document.Keyword  = this.DocKeywordTextBox.Text;

            // パスワード
            if (this.OwnerPasswordCheckBox.Checked)
            {
                setting.Permission.Password       = String.Copy(this.OwnerPasswordTextBox.Text);
                setting.Permission.AllowPrint     = this.AllowPrintCheckBox.Checked;
                setting.Permission.AllowCopy      = this.AllowCopyCheckBox.Checked;
                setting.Permission.AllowFormInput = this.AllowFormInputCheckBox.Checked;
                setting.Permission.AllowModify    = this.AllowModifyCheckBox.Checked;

                if (this.RequiredUserPasswordCheckBox.Checked)
                {
                    setting.Password = String.Copy(this.UserPasswordCheckBox.Checked ? this.UserPasswordTextBox.Text : this.OwnerPasswordTextBox.Text);
                }
            }

            // ログ出力
            _messages.Add(new Message(Message.Levels.Debug, "CubePdf.MainForm.SaveSetting"));
            _messages.Add(new Message(Message.Levels.Debug, setting.ToString()));
        }
Exemple #2
0
        /* ----------------------------------------------------------------- */
        ///
        /// CheckOutput
        ///
        /// <summary>
        /// 出力先パスが正しいかどうかをチェックします。出力先パスが指定
        /// されていない場合はエラーメッセージを表示します。また、指定された
        /// 出力先パスが既に存在する場合には確認ダイアログを表示します。
        /// </summary>
        ///
        /* ----------------------------------------------------------------- */
        private bool CheckOutput(int do_existed_file)
        {
            if (this.OutputPathTextBox.Text.Length == 0)
            {
                MessageBox.Show(
                    Properties.Resources.FileNotSpecified,
                    Properties.Resources.Error,
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Error
                    );
                return(false);
            }
            else
            {
                string ext      = Path.GetExtension(this.OutputPathTextBox.Text);
                string compared = Parameter.Extension(Translator.IndexToFileType(this.FileTypeCombBox.SelectedIndex));
                if (ext != compared && !CubePdf.Utility.IsAssociate(ext))
                {
                    this.OutputPathTextBox.Text += compared;
                }

                if (File.Exists(this.OutputPathTextBox.Text) && Translator.IndexToExistedFile(this.ExistedFileComboBox.SelectedIndex) != Parameter.ExistedFiles.Rename)
                {
                    // {0} は既に存在します。{1}しますか?
                    string message = String.Format(Properties.Resources.FileExists,
                                                   this.OutputPathTextBox.Text, Appearance.ExistedFileString((Parameter.ExistedFiles)do_existed_file));
                    if (MessageBox.Show(
                            message,
                            Properties.Resources.OverwritePrompt,
                            MessageBoxButtons.OKCancel,
                            MessageBoxIcon.Warning) == DialogResult.Cancel)
                    {
                        return(false);
                    }
                }
            }
            return(true);
        }