/* ----------------------------------------------------------------- */ /// /// CreateDocumentConverter /// /// <summary> /// DocumentConverter オブジェクトを生成します。 /// </summary> /// /* ----------------------------------------------------------------- */ private static Ghostscript.Converter CreateDocumentConverter(SettingsFolder src) => new DocumentConverter(src.Value.Format, src.IO) { ColorMode = src.Value.Grayscale ? ColorMode.Grayscale : ColorMode.Rgb, Compression = src.Value.ImageCompression ? Encoding.Jpeg : Encoding.Flate, Downsampling = src.Value.Downsampling, EmbedFonts = src.Value.EmbedFonts, Version = src.Value.FormatOption.GetVersion(), };
/* ----------------------------------------------------------------- */ /// /// MainViewModel /// /// <summary> /// オブジェクトを初期化します。 /// </summary> /// /// <param name="settings">設定情報</param> /// <param name="context">同期用コンテキスト</param> /// /* ----------------------------------------------------------------- */ public MainViewModel(SettingsFolder settings, SynchronizationContext context) : base(new Messenger(), context) { Model = new MainFacade(settings); Settings = new SettingsViewModel(settings.Value, Messenger, Context); Metadata = new MetadataViewModel(settings.Value.Metadata, Messenger, Context); Encryption = new EncryptionViewModel(settings.Value.Encryption, Messenger, Context); settings.PropertyChanged += WhenPropertyChanged; }
/* ----------------------------------------------------------------- */ /// /// CreateImageConverter /// /// <summary> /// ImageConverter オブジェクトを生成します。 /// </summary> /// /* ----------------------------------------------------------------- */ private static Ghostscript.Converter CreateImageConverter(SettingsFolder src) { var key = KeyValuePair.Create(src.Value.Format, src.Value.Grayscale); var map = GetFormatMap(); Debug.Assert(map.ContainsKey(key)); return(new ImageConverter(GetFormatMap()[key], src.IO) { AntiAlias = true, }); }
/* ----------------------------------------------------------------- */ /// /// Create /// /// <summary> /// Ghostscript.Converter オブジェクトを生成します。 /// </summary> /// /// <param name="src">設定情報</param> /// /// <returns>Ghostscript.Converter オブジェクト</returns> /// /* ----------------------------------------------------------------- */ public static Ghostscript.Converter Create(SettingsFolder src) { var asm = Assembly.GetExecutingAssembly(); var dir = src.IO.Get(asm.Location).DirectoryName; var dest = DocumentConverter.SupportedFormats.Contains(src.Value.Format) ? CreateDocumentConverter(src) : CreateImageConverter(src); dest.Quiet = false; dest.WorkDirectory = src.WorkDirectory; dest.Log = src.IO.Combine(src.WorkDirectory, "console.log"); dest.Resolution = src.Value.Resolution; dest.Orientation = src.Value.Orientation; dest.Resources.Add(src.IO.Combine(dir, "lib")); return(dest); }
/* ----------------------------------------------------------------- */ /// /// MainViewModel /// /// <summary> /// オブジェクトを初期化します。 /// </summary> /// /// <param name="settings">設定情報</param> /// /* ----------------------------------------------------------------- */ public MainViewModel(SettingsFolder settings) : this(settings, SynchronizationContext.Current) { }
/* ----------------------------------------------------------------- */ /// /// ProcessLauncher /// /// <summary> /// オブジェクトを初期化します。 /// </summary> /// /// <param name="settings">設定情報</param> /// /* ----------------------------------------------------------------- */ public ProcessLauncher(SettingsFolder settings) { IO = settings.IO; Value = settings.Value; }
/* ----------------------------------------------------------------- */ /// /// FileDecorator /// /// <summary> /// オブジェクトを初期化します。 /// </summary> /// /// <param name="settings">設定情報</param> /// /* ----------------------------------------------------------------- */ public FileDecorator(SettingsFolder settings) { Settings = settings; }
/* ----------------------------------------------------------------- */ /// /// MainFacade /// /// <summary> /// オブジェクトを初期化します。 /// </summary> /// /// <param name="settings">設定情報</param> /// /* ----------------------------------------------------------------- */ public MainFacade(SettingsFolder settings) { Settings = settings; Locale.Set(settings.Value.Language); }