/* ----------------------------------------------------------------- */ /// /// Main /// /// <summary> /// CoReceiver のエントリポイントです。 /// </summary> /// /* ----------------------------------------------------------------- */ static void Main(string[] args) { // ログ出力用の処理です。不要な場合、削除して構いません。 InitLog(args); // まず、プログラム引数を ArgumentCollection クラスを用いて解析します。 // 今回の連携デモでは JSON データの保存されているパスが DocumentName // オプション引数に指定されているため、SettingFolder クラスに対して // Format.Json および DocumentName の値を指定して初期化します。 // その後、Load メソッドを実行する事により JSON 形式の設定内容が読み込まれます。 var src = new ArgumentCollection(args); var settings = new SettingFolder(Format.Json, src.Options["DocumentName"]); settings.Load(); // SettingFolder オブジェクトに対して、プログラム引数の内容を反映させるため // Set メソッドを実行します。 // ただし、Set メソッドは Destination (保存場所)の値を上書きします。 // 今回の連携デモでは、JSON データに記載された場所に PDF ファイルを保存する事を // 想定しているため、ローカル変数にいったん退避させた後、Set メソッド適用後に // 再度その値を反映させる事とします。 var dest = settings.Value.Destination; settings.Set(src); settings.Value.Destination = dest; // 設定が完了したら、Facade クラスで変換処理を実行します。 using (var facade = new Facade(settings)) facade.Invoke(); // 最後に、印刷前プログラムが作成した一時ファイルを削除します。 File.Delete(settings.Location); }
public void Set() { var src = new[] { "/DeleteOnClose", "/DocumentName", "(234)?File.txt - Sample Application", "/InputFile", @"C:\WINDOWS\CubePDF\PS3AEE.tmp", "/MachineName", @"\\APOLLON", "/UserName", "clown", "/Exec", @"C:\Program Files\CubePDF\cubepdf.exe", }; var dest = new SettingFolder(Assembly.GetExecutingAssembly()); dest.Set(src); var path = System.IO.Path.Combine( Environment.GetFolderPath(Environment.SpecialFolder.Desktop), System.IO.Path.ChangeExtension(dest.DocumentName.Value, ".pdf") ); Assert.That(dest.Digest, Is.Null); Assert.That(dest.DocumentName.Source, Is.EqualTo("(234)?File.txt - Sample Application")); Assert.That(dest.DocumentName.Value, Is.EqualTo("(234)_File.txt")); Assert.That(dest.Value.DeleteSource, Is.True); Assert.That(dest.Value.Source, Is.EqualTo(@"C:\WINDOWS\CubePDF\PS3AEE.tmp")); Assert.That(dest.Value.Destination, Is.EqualTo(path)); }
public void Set_Empty() { var dest = new SettingFolder(Assembly.GetExecutingAssembly()); dest.Set(Enumerable.Empty<string>()); Assert.That(dest.Digest, Is.Null); Assert.That(dest.DocumentName.Value, Is.EqualTo("Cube.Pdf.Converter.Tests")); Assert.That(dest.Value.DeleteSource, Is.False); Assert.That(dest.Value.Source, Is.Empty); }
/* ----------------------------------------------------------------- */ /// /// Create /// /// <summary> /// SettingFolder オブジェクトを生成します。 /// </summary> /// /// <param name="args">プログラム引数一覧</param> /// /// <returns>SettingFolder</returns> /// /* ----------------------------------------------------------------- */ protected SettingFolder Create(IEnumerable <string> args) { var asm = typeof(MainWindow).Assembly; var fmt = Cube.DataContract.Format.Registry; var path = $@"CubeSoft\CubePDF\{GetType().Name}"; var dest = new SettingFolder(asm, fmt, path, IO); dest.Load(); dest.Normalize(); dest.Value.Destination = Results; dest.Value.Temp = Get("Temp"); dest.Set(args); return(dest); }
public void Convert_CryptographicException() { var dest = Get($"{nameof(Convert_CryptographicException)}.pdf"); var args = new ArgumentCollection(new[] { "-Digest", "dummy" }, Argument.Windows, true); var settings = new SettingFolder(Assembly.GetExecutingAssembly()); settings.Value.Source = GetSource("Sample.ps"); settings.Value.Destination = dest; settings.Value.PostProcess = PostProcess.None; settings.Set(args); using (var e = new Facade(settings)) { Assert.That(() => e.Invoke(), Throws.TypeOf <CryptographicException>()); } }
/* ----------------------------------------------------------------- */ /// /// Main /// /// <summary> /// CubePDF Lite のエントリポイントです。 /// </summary> /// /* ----------------------------------------------------------------- */ static void Main(string[] args) { Logger.ObserveTaskException(); Logger.Info(typeof(Program), Assembly.GetExecutingAssembly()); Logger.Info(typeof(Program), $"[ {string.Join(" ", args)} ]"); // 1. 初期設定ではレジストリの下記のサブキーが対象となります。 // HKCU\Software\CubeSoft\CubePDF\v2 // 対象とするサブキーを変更したい場合、コンストラクタで設定します。 // 例えば、HKCU\Software\Foo\Bar を対象とするには下記のように記述して下さい。 // // var settings = new SettingFolder( // Assembly.GetExecutingAssembly(), // Cube.DataContract.Format.Registry, // @"Foo\Bar" // ); // // また、SettingFolder はレジストリ以外に JSON 形式にも対応しています。 // JSON ファイルを対象とする場合、第 2 引数を Cube.DataContract.Format.Json とし、 // 対象とする JSON ファイルへの絶対パスを第 3 引数に指定して下さい。 var settings = new SettingFolder(Assembly.GetExecutingAssembly()); // 2. Load() で対象としているレジストリ等から設定内容を読み込み、 // Set(string[]) で仮想プリンターからの引数を解析します。 settings.Load(); // レジストリの設定をロード settings.Set(args); // 仮想プリンターからの引数を解析 // 3. 設定内容は Value プロパティが保持します。 // Value 中の各種プロパティは、手動で変更する事も可能です。 // 例として、ここでは PostProcess を「何もしない」に設定しています。 // 設定可能な内容については、下記も参照下さい。 // https://docs.cube-soft.jp/entry/cubevp/sdk/converter // // 尚、CubePDF SDK 3.0.0 より Set(string[]) 実行時に // Destination から末尾のファイル名を除去(DocumaneName.Value に置換) // する形に変更されました。そのため、1.0.0 時に Destination に対して // 行っていた処理は不要となりました。 settings.Value.PostProcess = PostProcess.None; // 4. 設定内容のロードが完了したら、Facade クラスで変換処理を実行します。 using (var facade = new Facade(settings)) facade.Invoke(); }
/* ----------------------------------------------------------------- */ /// /// Main /// /// <summary> /// CubePDF Lite のエントリポイントです。 /// </summary> /// /* ----------------------------------------------------------------- */ static void Main(string[] args) { // ログ出力用の処理です。不要な場合、削除して構いません。 InitLog(args); // 1. 初期設定ではレジストリの下記のサブキーが対象となります。 // HKCU\Software\CubeSoft\CubePDF\v2 // 対象とするサブキーを変更したい場合、コンストラクタで設定します。 // 例えば、HKCU\Software\Foo\Bar を対象とするには下記のように記述して下さい。 // // var settings = new SettingFolder( // Cube.DataContract.Format.Registry, // @"Foo\Bar" // ); // // また、SettingFolder はレジストリ以外に JSON 形式にも対応しています。 // JSON ファイルを対象とする場合、第 1 引数を Cube.DataContract.Format.Json とし、 // 対象とする JSON ファイルへの絶対パスを第 2 引数に指定して下さい。 var settings = new SettingFolder(); // 2. Load() で対象としているレジストリ等から設定内容を読み込み、 // Set(string[]) で仮想プリンターからの引数を解析します。 // レジストリ等の内容を読み込む必要がない場合、Load() メソッドは省略できます。 settings.Load(); settings.Set(args); // 3. 設定内容は Value プロパティが保持します。 // Value 中の各種プロパティは、手動で変更する事も可能です。 // 例として、ここでは PostProcess を「何もしない」に設定しています。 // 設定可能な内容については、下記も参照下さい。 // https://docs.cube-soft.jp/entry/cubevp/sdk/converter // // 尚、CubePDF SDK 3.0.0 より Set(string[]) 実行時に // Destination から末尾のファイル名を除去(DocumaneName.Value に置換) // する形に変更されました。そのため、1.0.0 時に Destination に対して // 行っていた処理は不要となりました。 settings.Value.PostProcess = PostProcess.None; // 4. 設定内容のロードが完了したら、Facade クラスで変換処理を実行します。 using (var facade = new Facade(settings)) facade.Invoke(); }