IsImageType() 공개 정적인 메소드

ファイルの種類がビットマップイメージかどうかを判別します。
public static IsImageType ( FileTypes id ) : bool
id FileTypes
리턴 bool
예제 #1
0
        /* ----------------------------------------------------------------- */
        ///
        /// Configure
        ///
        /// <summary>
        /// Ghostscript オブジェクトを生成し、必要な設定を行います。
        /// </summary>
        ///
        /* ----------------------------------------------------------------- */
        private Ghostscript.Converter Configure(UserSetting setting, string src, string dest)
        {
            var gs = new Ghostscript.Converter(_messages);

            if (!string.IsNullOrEmpty(setting.LibPath))
            {
                gs.AddInclude(IoEx.Path.Combine(setting.LibPath, "lib"));
            }
            gs.Device     = Parameter.GetDevice(setting.FileType, setting.Grayscale);
            gs.Resolution = Parameter.ToValue(setting.Resolution);
            if (setting.Orientation == Parameter.Orientations.Auto)
            {
                gs.AutoRotatePages = true;
            }
            else
            {
                gs.Orientation = (int)setting.Orientation;
            }

            ConfigureCommonImage(setting, gs);
            if (Parameter.IsImageType(setting.FileType))
            {
                ConfigureBitmap(setting, gs);
            }
            else
            {
                ConfigureDocument(setting, gs);
            }

            gs.AddSource(src);
            gs.Destination = dest;

            return(gs);
        }
예제 #2
0
        /* ----------------------------------------------------------------- */
        ///
        /// Run
        ///
        /// <summary>
        /// ファイル変換処理を実行します。
        /// </summary>
        ///
        /// <remarks>
        /// 文書プロパティ、パスワード関連とファイル結合は iTextSharp
        /// を利用します。出力パスに指定されたファイルが既に存在する場合、
        /// ExistedFile プロパティの指定(上書き、先頭に結合、末尾に結合、
        /// リネーム)に従います。
        /// </remarks>
        ///
        /* ----------------------------------------------------------------- */
        public bool Run(UserSetting setting)
        {
            // Ghostscript に指定するパスに日本語が入るとエラーが発生する
            // 場合があるので,作業ディレクトリを変更する.
            this.CreateWorkingDirectory(setting);

            Ghostscript.Converter gs = new Ghostscript.Converter(_messages);
            gs.Device = Parameter.Device(setting.FileType, setting.Grayscale);
            bool status = true;

            try {
                gs.AddInclude(setting.LibPath + @"\lib");
                gs.PageRotation = setting.PageRotation;
                gs.Resolution   = Parameter.ResolutionValue(setting.Resolution);

                this.ConfigImageOperations(setting, gs);
                if (Parameter.IsImageType(setting.FileType))
                {
                    this.ConfigImage(setting, gs);
                }
                else
                {
                    this.ConfigDocument(setting, gs);
                }
                this.EscapeExistedFile(setting);

                gs.AddSource(setting.InputPath);
                gs.Destination = setting.OutputPath;
                gs.Run();

                if (setting.FileType == Parameter.FileTypes.PDF)
                {
                    PdfModifier modifier = new PdfModifier(_escaped, _messages);
                    status = modifier.Run(setting);
                    _messages.Add(new Message(Message.Levels.Info, String.Format("CubePdf.PDFModifier.Run: {0}", status.ToString())));
                }

                if (status)
                {
                    PostProcess postproc = new PostProcess(_messages);
                    status = postproc.Run(setting);
                    _messages.Add(new Message(Message.Levels.Info, String.Format("CubePdf.PostProcess.Run: {0}", status.ToString())));
                }
            }
            catch (Exception err) {
                _messages.Add(new Message(Message.Levels.Error, err));
                _messages.Add(new Message(Message.Levels.Debug, err));
                status = false;
            }
            finally {
                if (Directory.Exists(Utility.WorkingDirectory))
                {
                    Directory.Delete(Utility.WorkingDirectory, true);
                }
                if (setting.DeleteOnClose && File.Exists(setting.InputPath))
                {
                    _messages.Add(new Message(Message.Levels.Debug, String.Format("{0}: delete on close", setting.InputPath)));
                    File.Delete(setting.InputPath);
                }
            }

            return(status);
        }