/* ----------------------------------------------------------------- */ /// /// 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); }
/* ----------------------------------------------------------------- */ /// /// 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; }