Example #1
0
        /// <summary>
        /// ファイルの変換処理を行います。
        /// </summary>
        protected override void ConvertFile(FileConvertParameter parameter)
        {
            //作成するショートカットのパス
            string shortcutPath = parameter.DestConvertFileName;

            //ショートカットのリンク先
            string targetPath = Parent.Parameter.DestFileName;

            //WshShellを作成
            Type    t     = Type.GetTypeFromCLSID(new Guid("72C24DD5-D70A-438B-8A42-98424B88AFB8"));
            dynamic shell = Activator.CreateInstance(t);

            //WshShortcutを作成
            var shortcut = shell.CreateShortcut(shortcutPath);

            //リンク先
            shortcut.TargetPath = targetPath;
            //アイコンのパス
            shortcut.IconLocation = Parent.Parameter.DestFileName + ",0";

            //作業フォルダ
            shortcut.WorkingDirectory = Path.GetDirectoryName(Parent.Parameter.DestFileName);

            //その他のプロパティも同様に設定できるため、省略

            //ショートカットを作成
            shortcut.Save();

            //後始末
            System.Runtime.InteropServices.Marshal.FinalReleaseComObject(shortcut);
            System.Runtime.InteropServices.Marshal.FinalReleaseComObject(shell);
        }
Example #2
0
        /// <summary>
        /// ファイルの変換処理を行います。
        /// </summary>
        protected override void ConvertFile(FileConvertParameter parameter)
        {
            dynamic xlApp   = null;
            dynamic xlBooks = null;
            dynamic xlBook  = null;

            try
            {
                xlApp   = Activator.CreateInstance(Type.GetTypeFromProgID("Excel.Application"));
                xlBooks = xlApp.Workbooks;

                try
                {
                    xlBook = xlBooks.Open(parameter.SourceConvertFileName);
                }
                catch
                {
                    throw new FileConvertException(
                              string.Format(MessagesRes.UnreadableSourceFile,
                                            parameter.SourceFileName), parameter);
                }

                var directory = System.IO.Path.GetDirectoryName(parameter.DestConvertFileName);
                if (!Directory.Exists(directory))
                {
                    Directory.CreateDirectory(directory);
                }

                xlBook.ExportAsFixedFormat(XlFixedFormatType.xlTypePDF, parameter.DestConvertFileName);
            }
            catch (Exception e)
            {
                throw new FileConvertException(
                          string.Format(MessagesRes.ConvertFailed,
                                        e.Message), parameter);
            }
            finally
            {
                xlBook?.Close(false);
                xlApp?.Quit();
                if (xlBooks != null)
                {
                    Marshal.FinalReleaseComObject(xlBooks);
                }
                if (xlApp != null)
                {
                    Marshal.FinalReleaseComObject(xlApp);
                }
            }
        }
Example #3
0
 /// <summary>
 /// ExcelToPdf の新しいインスタンスを初期化します。
 /// </summary>
 public ExcelToPdf(FileConvertParameter parameter) : base(parameter)
 {
 }
Example #4
0
 /// <summary>
 /// ファイルの変換処理を行います。
 /// </summary>
 protected override void ConvertFile(FileConvertParameter parameter)
 {
     File.Copy(parameter.SourceConvertFileName, parameter.DestConvertFileName);
 }
Example #5
0
 /// <summary>
 /// FileCopy の新しいインスタンスを初期化します。
 /// </summary>
 public FileCopy(FileConvertParameter parameter) : base(parameter)
 {
 }
Example #6
0
 /// <summary>
 /// Shortcut の新しいインスタンスを初期化します。
 /// </summary>
 public FileShortcut(FileConvertParameter parameter) : base(parameter)
 {
 }