Example #1
0
        /* ----------------------------------------------------------------- */
        ///
        /// 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);
        }
Example #2
0
        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));
        }
Example #3
0
        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);
        }
Example #4
0
        /* ----------------------------------------------------------------- */
        ///
        /// 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);
        }
Example #5
0
        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>());
            }
        }
Example #6
0
        /* ----------------------------------------------------------------- */
        ///
        /// 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();
        }
Example #7
0
        /* ----------------------------------------------------------------- */
        ///
        /// 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();
        }